func TestEquals(t *testing.T) { var setX intsets.Sparse setX.Insert(456) setX.Insert(123) setX.Insert(789) if !setX.Equals(&setX) { t.Errorf("Equals(%s, %s): got false", &setX, &setX) } var setY intsets.Sparse setY.Insert(789) setY.Insert(456) setY.Insert(123) if !setX.Equals(&setY) { t.Errorf("Equals(%s, %s): got false", &setX, &setY) } setY.Insert(1) if setX.Equals(&setY) { t.Errorf("Equals(%s, %s): got true", &setX, &setY) } var empty intsets.Sparse if setX.Equals(&empty) { t.Errorf("Equals(%s, %s): got true", &setX, &empty) } // Edge case: some block (with offset=0) appears in X but not Y. setY.Remove(123) if setX.Equals(&setY) { t.Errorf("Equals(%s, %s): got true", &setX, &setY) } }
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 := s.BitString(); s != "0" { t.Errorf("BitString({}): got %q, want \"0\"", 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) } }