...
1 package tests
2
3 import (
4 "fmt"
5 "github.com/xrash/smetrics"
6 "testing"
7 )
8
9 func TestHamming(t *testing.T) {
10 cases := []hammingcase{
11 {"a", "a", 0},
12 {"a", "b", 1},
13 {"AAAA", "AABB", 2},
14 {"BAAA", "AAAA", 1},
15 {"BAAA", "CCCC", 4},
16 {"karolin", "kathrin", 3},
17 {"karolin", "kerstin", 3},
18 {"1011101", "1001001", 2},
19 {"2173896", "2233796", 3},
20 }
21
22 for _, c := range cases {
23 r, err := smetrics.Hamming(c.a, c.b)
24 if err != nil {
25 t.Fatalf("got error from hamming err=%s", err)
26 }
27 if r != c.diff {
28 fmt.Println(r, "instead of", c.diff)
29 t.Fail()
30 }
31 }
32 }
33
34 func TestHammingError(t *testing.T) {
35 res, err := smetrics.Hamming("a", "bbb")
36 if err == nil {
37 t.Fatalf("expected error from 'a' and 'bbb' on hamming")
38 }
39 if res != -1 {
40 t.Fatalf("erroring response wasn't -1, but %d", res)
41 }
42 }
43
View as plain text