go-scopes/tests/forge_test.go

29 lines
669 B
Go

package scopes_test
import (
tbase "testing"
"git.sr.ht/~cco/go-scopes/common/testing"
"git.sr.ht/~cco/go-scopes/forge"
"git.sr.ht/~cco/go-scopes/forge/builtins"
)
func TestForge(tb *tbase.T) {
t := testing.SetUp(tb)
t.Run("exec", ExecTest)
}
func ExecTest(t *testing.T) {
fe := forge.NewFE()
b := builtins.Get(fe)
c1 := fe.Code(b.Lit, 4, b.Lit, 2, b.Add)
fe.Call(c1)
t.AssertEqual(fe.Pop(), 6)
sq := fe.Def("square", b.Dup, b.Mult)
fe.Exec(b.Lit, 3, sq, b.Lit, 2, b.Add)
t.AssertEqual(fe.Pop(), 11)
seven := fe.Create("seven", 7, fe.Code(b.Get))
//fe.Exec(b.Lit, 7, seven, b.Put)
fe.Exec(b.Lit, 3, seven, sq, b.Add)
t.AssertEqual(fe.Pop(), 52)
}