@@ -2,10 +2,25 @@ import ( "strconv" "testing" ) + +func TestHamming(t *testing.T) { + for i := 0; i < 256; i++ { + b, result := i, byte(0) + for b > 0 { + if (b & 1) > 0 { + result++ + } + b = b >> 1 + } + if result != Hamming(byte(i)) { + t.Error("Invalid hamming weight reported for ", i) + } + } +} var sizes []uint = []uint{0, 31, 32, 33, 61, 63, 64, 127, 128, 129} func TestBitSize(t *testing.T) { for _, size := range sizes {