package scopes_test import ( tbase "testing" "git.sr.ht/~cco/go-scopes/common/stack" "git.sr.ht/~cco/go-scopes/common/voc" "git.sr.ht/~cco/go-scopes/testing" ) func TestCommon(tb *tbase.T) { t := testing.SetUp(tb) t.Run("stack", StackTest) t.Run("voc", VocTest) } func StackTest(t *testing.T) { var st stack.Stack[int] = stack.NewStack[int]() st.Push(3) st.Push(4) t.AssertEqual(st.Depth(), 2) st.Push(5) t.AssertEqual(st.Peek(0), 5) st.Replace(1, 99) st.Push(6) t.AssertEqual(st.Peek(2), 99) st.Push(7) st.Push(8) st.Push(9) t.AssertEqual(st.Peek(2), 7) st.Pop() t.AssertEqual(st.Pop(), 8) t.AssertEqual(st.Peek(st.Depth()-1), 3) } func VocTest(t *testing.T) { v1 := voc.NewVoc[int](nil) v1.Register("one", 1) m := v1.Lookup("one") t.AssertEqual(m.IsNothing(), false) t.AssertEqual(m.Value(), 1) m = v1.Lookup("two") t.AssertEqual(m.IsNothing(), true) }