From 8cf10efe3b5a1bcc70bc6e5590ee63fd5eb00c5b Mon Sep 17 00:00:00 2001 From: Charlie Stanton Date: Wed, 19 Jul 2023 11:57:59 +0100 Subject: Huge refactor to a more value based system, doing away with terminals. Also introduces unit testing --- walk/walk_test.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 walk/walk_test.go (limited to 'walk/walk_test.go') diff --git a/walk/walk_test.go b/walk/walk_test.go new file mode 100644 index 0000000..c05da02 --- /dev/null +++ b/walk/walk_test.go @@ -0,0 +1,45 @@ +package walk + +import ( + "testing" + "log" +) + +func TestValueIter(t *testing.T) { + values := ValueList{ + NumberScalar(1), + NumberScalar(2), + NumberScalar(3), + } + + valuesCopy := ValueList{} + + iter := NewValueIter(values) + + for { + edible := iter.Next() + if edible == nil { + break + } + + log.Println(edible) + + value, isValue := edible.(Value) + + if !isValue { + t.Fatalf("Iterator produced a non-value") + } + + valuesCopy = append(valuesCopy, value) + } + + if len(values) != len(valuesCopy) { + t.Fatalf("iter gave the wrong number of values") + } + + for i, value := range values { + if value != valuesCopy[i] { + t.Fatalf("iter produced an incorrect value") + } + } +} -- cgit v1.2.3