Files
chaisql/internal/expr/expr_test.go
2025-09-21 11:28:55 +05:30

47 lines
829 B
Go

package expr_test
import (
"fmt"
"strings"
"testing"
"github.com/chaisql/chai/internal/sql/parser"
"github.com/chaisql/chai/internal/types"
"github.com/stretchr/testify/require"
)
var nullLiteral = types.NewNullValue()
func TestString(t *testing.T) {
var operands = []string{
`10.4`,
"true",
"500",
`foo`,
`'hello'`,
"CAST(10 AS integer)",
}
var operators = []string{
"=", ">", ">=", "<", "<=",
"+", "-", "*", "/", "%", "&", "|", "^",
"AND", "OR",
}
testFn := func(s string, want string) {
t.Helper()
e, err := parser.NewParser(strings.NewReader(s)).ParseExpr()
require.NoError(t, err)
require.Equal(t, want, fmt.Sprintf("%v", e))
}
for _, op := range operands {
testFn(op, op)
}
for _, op := range operators {
want := fmt.Sprintf("10.4 %s foo", op)
testFn(want, want)
}
}