1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
package main
import (
"testing"
require "github.com/alecthomas/assert/v2"
"github.com/alecthomas/repr"
)
func TestExe(t *testing.T) {
expr, err := parser.ParseString("", `1 + 2 / 3 * (1 + 2)`)
repr.Println(expr)
require.NoError(t, err)
}
func toPtr[T any](x T) *T {
return &x
}
func TestExe_BoolFalse(t *testing.T) {
got, err := parser.ParseString("", `1 + false`)
expected := &Expression{
Equality: &Equality{
Comparison: &Comparison{
Addition: &Addition{
Multiplication: &Multiplication{
Unary: &Unary{
Primary: &Primary{
Number: toPtr(float64(1)),
},
},
},
Op: "+",
Next: &Addition{
Multiplication: &Multiplication{
Unary: &Unary{
Primary: &Primary{
Bool: toPtr(Boolean(false)),
},
},
},
},
},
},
},
}
require.NoError(t, err)
require.Equal(t, expected, got)
}
|