Added more tests

This commit is contained in:
Eduard Urbach 2025-02-21 11:45:32 +01:00
parent 8f3fa494ba
commit 4dbfa80939
Signed by: eduard
GPG key ID: 49226B848C78F6C8
4 changed files with 44 additions and 28 deletions

View file

@ -20,23 +20,15 @@ func TestAssign(t *testing.T) {
assert.NotNil(t, assignment.Expression)
}
func TestReturn(t *testing.T) {
tree, err := parse("return")
func TestGroups(t *testing.T) {
tree, err := parse("f(\nx\n)\ng(\nx\n)")
assert.Nil(t, err)
assert.Equal(t, len(tree), 1)
assert.Equal(t, len(tree), 2)
ret := tree[0].(*ast.Return)
assert.Nil(t, ret.Values)
}
func TestReturnValues(t *testing.T) {
tree, err := parse("return 42")
assert.Nil(t, err)
assert.Equal(t, len(tree), 1)
ret := tree[0].(*ast.Return)
assert.Equal(t, len(ret.Values), 1)
assert.Equal(t, ret.Values[0].Token.Kind, token.Number)
f := tree[0].(*ast.Call)
assert.NotNil(t, f.Expression)
g := tree[1].(*ast.Call)
assert.NotNil(t, g.Expression)
}
func TestIfElse(t *testing.T) {
@ -56,6 +48,31 @@ func TestLoop(t *testing.T) {
assert.Equal(t, len(tree), 1)
}
func TestNewLine(t *testing.T) {
tree, err := parse("\n\n\n")
assert.Nil(t, err)
assert.Equal(t, len(tree), 0)
}
func TestReturn(t *testing.T) {
tree, err := parse("return")
assert.Nil(t, err)
assert.Equal(t, len(tree), 1)
ret := tree[0].(*ast.Return)
assert.Nil(t, ret.Values)
}
func TestReturnValues(t *testing.T) {
tree, err := parse("return 42")
assert.Nil(t, err)
assert.Equal(t, len(tree), 1)
ret := tree[0].(*ast.Return)
assert.Equal(t, len(ret.Values), 1)
assert.Equal(t, ret.Values[0].Token.Kind, token.Number)
}
func parse(code string) (ast.AST, error) {
src := []byte(code)
tokens := token.Tokenize(src)