summaryrefslogtreecommitdiff
path: root/set/set_test.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2020-10-17 10:59:41 +0100
committerPaul Buetow <paul@buetow.org>2020-10-17 10:59:41 +0100
commit04d479156672bde8208c6e9ba266cca5659c5e1b (patch)
tree510449cdc38b7e7084eba716e822afd09739770f /set/set_test.go
parentf0828a8336a4404b8a9807c4aaf6313f4ff8c5e8 (diff)
more on bst
Diffstat (limited to 'set/set_test.go')
-rw-r--r--set/set_test.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/set/set_test.go b/set/set_test.go
new file mode 100644
index 0000000..16d3e8c
--- /dev/null
+++ b/set/set_test.go
@@ -0,0 +1,38 @@
+package set
+
+import (
+ "fmt"
+ "testing"
+
+ "github.com/snonux/algorithms/ds"
+)
+
+const factor int = 10
+const minLength int = 1
+const maxLength int = 10
+
+func TestSet(t *testing.T) {
+ s := NewElementary()
+ for i := minLength; i <= maxLength; i *= factor {
+ test(s, i, t)
+ }
+}
+
+func test(s Set, l int, t *testing.T) {
+ cb := func(t *testing.T) {
+ list := ds.NewRandomArrayList(l, -1)
+ for i, a := range list {
+ s.Set(a, i)
+ }
+ for i, a := range list {
+ val, err := s.Get(a)
+ if err != nil {
+ t.Errorf("Element %v: %v", val, err)
+ }
+ if val != i {
+ t.Errorf("Element is %v but expected %v", val, i)
+ }
+ }
+ }
+ t.Run(fmt.Sprintf("%d", l), cb)
+}