Commit cb38b02f authored by Justin Santa Barbara's avatar Justin Santa Barbara

Add unit test for StringSet Equal

parent 924350d5
...@@ -129,3 +129,57 @@ func TestStringSetHasAny(t *testing.T) { ...@@ -129,3 +129,57 @@ func TestStringSetHasAny(t *testing.T) {
t.Errorf("expected false, got true") t.Errorf("expected false, got true")
} }
} }
func TestStringSetEquals(t *testing.T) {
// Simple case (order doesn't matter)
a := NewStringSet("1", "2")
b := NewStringSet("2", "1")
if !a.Equal(b) {
t.Errorf("Expected to be equal: %v vs %v", a, b)
}
// It is a set; duplicates are ignored
b = NewStringSet("2", "2", "1")
if !a.Equal(b) {
t.Errorf("Expected to be equal: %v vs %v", a, b)
}
// Edge cases around empty sets / empty strings
a = NewStringSet()
b = NewStringSet()
if !a.Equal(b) {
t.Errorf("Expected to be equal: %v vs %v", a, b)
}
b = NewStringSet("1", "2", "3")
if a.Equal(b) {
t.Errorf("Expected to be not-equal: %v vs %v", a, b)
}
b = NewStringSet("1", "2", "")
if a.Equal(b) {
t.Errorf("Expected to be not-equal: %v vs %v", a, b)
}
// Check for equality after mutation
a = NewStringSet()
a.Insert("1")
if a.Equal(b) {
t.Errorf("Expected to be not-equal: %v vs %v", a, b)
}
a.Insert("2")
if a.Equal(b) {
t.Errorf("Expected to be not-equal: %v vs %v", a, b)
}
a.Insert("")
if !a.Equal(b) {
t.Errorf("Expected to be equal: %v vs %v", a, b)
}
a.Delete("")
if a.Equal(b) {
t.Errorf("Expected to be not-equal: %v vs %v", a, b)
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment