From cb38b02f2c266e57d37a6a8afd88243d2068dc20 Mon Sep 17 00:00:00 2001 From: Justin Santa Barbara Date: Mon, 27 Jul 2015 11:23:27 -0400 Subject: [PATCH] Add unit test for StringSet Equal --- pkg/util/set_test.go | 54 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/pkg/util/set_test.go b/pkg/util/set_test.go index dbd65a9774e..936891feebf 100644 --- a/pkg/util/set_test.go +++ b/pkg/util/set_test.go @@ -129,3 +129,57 @@ func TestStringSetHasAny(t *testing.T) { 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) + } +}