func TestIntersectionWith(t *testing.T) { // Edge cases: the pairs (1,1), (1000,2000), (8000,4000) // exercise the <, >, == cases in IntersectionWith that the // TestSetOperations data is too dense to cover. var X, Y intsets.Sparse X.Insert(1) X.Insert(1000) X.Insert(8000) Y.Insert(1) Y.Insert(2000) Y.Insert(4000) X.IntersectionWith(&Y) if got, want := X.String(), "{1}"; got != want { t.Errorf("IntersectionWith: got %s, want %s", got, want) } }
func TestBitString(t *testing.T) { for _, test := range []struct { input []int want string }{ {nil, "0"}, {[]int{0}, "1"}, {[]int{0, 4, 5}, "110001"}, {[]int{0, 7, 177}, "1" + strings.Repeat("0", 169) + "10000001"}, {[]int{-3, 0, 4, 5}, "110001.001"}, {[]int{-3}, "0.001"}, } { var set intsets.Sparse for _, x := range test.input { set.Insert(x) } if got := set.BitString(); got != test.want { t.Errorf("BitString(%s) = %s, want %s", set.String(), got, test.want) } } }
func TestBasics(t *testing.T) { var s intsets.Sparse if len := s.Len(); len != 0 { t.Errorf("Len({}): got %d, want 0", len) } if s := s.String(); s != "{}" { t.Errorf("String({}): got %q, want \"{}\"", s) } if s.Has(3) { t.Errorf("Has(3): got true, want false") } if err := s.Check(); err != nil { t.Error(err) } if !s.Insert(3) { t.Errorf("Insert(3): got false, want true") } if max := s.Max(); max != 3 { t.Errorf("Max: got %d, want 3", max) } if !s.Insert(435) { t.Errorf("Insert(435): got false, want true") } if s := s.String(); s != "{3 435}" { t.Errorf("String({3 435}): got %q, want \"{3 435}\"", s) } if max := s.Max(); max != 435 { t.Errorf("Max: got %d, want 435", max) } if len := s.Len(); len != 2 { t.Errorf("Len: got %d, want 2", len) } if !s.Remove(435) { t.Errorf("Remove(435): got false, want true") } if s := s.String(); s != "{3}" { t.Errorf("String({3}): got %q, want \"{3}\"", s) } }