...

Source file src/github.com/xrash/smetrics/tests/hamming_test.go

Documentation: github.com/xrash/smetrics/tests

     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