74 lines
1.6 KiB
Go
74 lines
1.6 KiB
Go
package boolean
|
|
|
|
import (
|
|
"testing"
|
|
"bufio"
|
|
"strings"
|
|
"fmt"
|
|
"io"
|
|
)
|
|
|
|
func TestTokenize(t *testing.T) {
|
|
stream := bufio.NewReader(strings.NewReader("10.0a + 10.0"))
|
|
token_stream, err := Tokenize(stream)
|
|
if err != nil {
|
|
t.Error(err)
|
|
} else {
|
|
for true {
|
|
tokens, err := token_stream.Read(1)
|
|
if err == io.EOF {
|
|
break
|
|
} else if err != nil {
|
|
t.Error(err)
|
|
} else {
|
|
fmt.Printf("Token: %+v\n", tokens[0])
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestLogicalNot(t *testing.T) {
|
|
expr := LogicalNot{BooleanConstant{true}}
|
|
val := expr.Value(nil)
|
|
fmt.Printf("LogicalNot %+v, Result: %+v\n", expr, val)
|
|
}
|
|
|
|
func TestNumericNegate(t *testing.T) {
|
|
expr := NumericNegate{NumericConstant{2.4}}
|
|
val := expr.Value(nil)
|
|
fmt.Printf("NumericNegate %+v, Result: %+v\n", expr, val)
|
|
}
|
|
|
|
func TestNumericAdd(t *testing.T) {
|
|
expr := NumericAdd{SymbolExpr{"test"}, NumericConstant{1.3}}
|
|
val := expr.Value(map[string]Expr{
|
|
"test": NumericConstant{1.2},
|
|
})
|
|
fmt.Printf("NumericAdd %+v, Result: %+v\n", expr, val)
|
|
}
|
|
|
|
func TestLogicalXor(t *testing.T) {
|
|
expr := LogicalXor{BooleanConstant{false}, BooleanConstant{false}}
|
|
val := expr.Value(nil)
|
|
fmt.Printf("LogicalXor %+v, Result: %+v\n", expr, val)
|
|
}
|
|
|
|
func TestBadLiteral(t *testing.T) {
|
|
stream := bufio.NewReader(strings.NewReader("10.0.0"))
|
|
token_stream, err := Tokenize(stream)
|
|
if err != nil {
|
|
t.Error(err)
|
|
} else {
|
|
for true {
|
|
tokens, err := token_stream.Read(1)
|
|
if err == io.EOF {
|
|
break
|
|
} else if err != nil {
|
|
t.Error(err)
|
|
} else {
|
|
fmt.Printf("Token: %+v\n", tokens[0])
|
|
}
|
|
}
|
|
}
|
|
}
|