diff options
Diffstat (limited to 'helpers/general_test.go')
-rw-r--r-- | helpers/general_test.go | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/helpers/general_test.go b/helpers/general_test.go index e185fe08c..9d28d214c 100644 --- a/helpers/general_test.go +++ b/helpers/general_test.go @@ -133,6 +133,49 @@ func TestMd5StringEmpty(t *testing.T) { } } +func TestSeq(t *testing.T) { + for i, this := range []struct { + in []interface{} + expect interface{} + }{ + {[]interface{}{-2, 5}, []int{-2, -1, 0, 1, 2, 3, 4, 5}}, + {[]interface{}{1, 2, 4}, []int{1, 3}}, + {[]interface{}{1}, []int{1}}, + {[]interface{}{3}, []int{1, 2, 3}}, + {[]interface{}{3.2}, []int{1, 2, 3}}, + {[]interface{}{0}, []int{}}, + {[]interface{}{-1}, []int{-1}}, + {[]interface{}{-3}, []int{-1, -2, -3}}, + {[]interface{}{3, -2}, []int{3, 2, 1, 0, -1, -2}}, + {[]interface{}{6, -2, 2}, []int{6, 4, 2}}, + {[]interface{}{1, 0, 2}, false}, + {[]interface{}{1, -1, 2}, false}, + {[]interface{}{2, 1, 1}, false}, + {[]interface{}{2, 1, 1, 1}, false}, + {[]interface{}{2001}, false}, + {[]interface{}{}, false}, + {[]interface{}{t}, []int{}}, + {nil, false}, + } { + + result, err := Seq(this.in...) + + if b, ok := this.expect.(bool); ok && !b { + if err == nil { + t.Errorf("[%d] TestSeq didn't return an expected error %s", i) + } + } else { + if err != nil { + t.Errorf("[%d] failed: %s", i, err) + continue + } + if !reflect.DeepEqual(result, this.expect) { + t.Errorf("[%d] TestSeq got %v but expected %v", i, result, this.expect) + } + } + } +} + func TestDoArithmetic(t *testing.T) { for i, this := range []struct { a interface{} |