package peer import ( "testing" ) func TestDupCheck(t *testing.T) { dc := newDupCheck(0) for i := range bitSetSize { if dc.IsDup(uint64(i)) { t.Fatal("!") } } type TestCase struct { Counter uint64 Dup bool } testCases := []TestCase{ {511, true}, {0, true}, {1, true}, {2, true}, {3, true}, {63, true}, {256, true}, {510, true}, {511, true}, {512, false}, {0, true}, {512, true}, {513, false}, {517, false}, {512, true}, {513, true}, {514, false}, {515, false}, {516, false}, {517, true}, {2512, false}, {2512, true}, {2001, true}, {2002, false}, {2002, true}, {4000, false}, {4000 - 511, true}, // Too old. {4000 - 510, false}, // Just in the window. } for i, tc := range testCases { if ok := dc.IsDup(tc.Counter); ok != tc.Dup { t.Fatal(i, ok, tc) } } }