diff options
author | Charlie Stanton <charlie@shtanton.xyz> | 2023-07-19 11:57:59 +0100 |
---|---|---|
committer | Charlie Stanton <charlie@shtanton.xyz> | 2023-07-19 11:57:59 +0100 |
commit | 8cf10efe3b5a1bcc70bc6e5590ee63fd5eb00c5b (patch) | |
tree | 7a16883c17c2bdcc49b2f9d4f333dfc76c66248f /walk/walk_test.go | |
parent | 3c34366bdd5d817a184d6b1c901d03a16b6faa4b (diff) | |
download | stred-go-8cf10efe3b5a1bcc70bc6e5590ee63fd5eb00c5b.tar |
Huge refactor to a more value based system, doing away with terminals. Also introduces unit testing
Diffstat (limited to 'walk/walk_test.go')
-rw-r--r-- | walk/walk_test.go | 45 |
1 files changed, 45 insertions, 0 deletions
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") + } + } +} |