File tree Expand file tree Collapse file tree 34 files changed +850
-0
lines changed
Expand file tree Collapse file tree 34 files changed +850
-0
lines changed Original file line number Diff line number Diff line change @@ -84,6 +84,19 @@ func (s *Set) Has(items ...[16]byte) bool {
8484 return has
8585}
8686
87+ // HasAny looks for the existence of any of the items passed.
88+ // It returns false if nothing is passed.
89+ // For multiple items it returns true if any of the items exist.
90+ func (s * Set ) HasAny (items ... [16 ]byte ) bool {
91+ has := false
92+ for _ , item := range items {
93+ if _ , has = s .m [item ]; has {
94+ break
95+ }
96+ }
97+ return has
98+ }
99+
87100// Size returns the number of items in a Set.
88101func (s * Set ) Size () int {
89102 return len (s .m )
Original file line number Diff line number Diff line change @@ -154,6 +154,43 @@ func TestHas(t *testing.T) {
154154 }
155155}
156156
157+ func TestHasAny (t * testing.T ) {
158+ var e1 , e2 , e3 [16 ]byte
159+ e := createRandomObject (e1 )
160+ if v , ok := e .([16 ]byte ); ok {
161+ e1 = v
162+ }
163+ e = createRandomObject (e2 )
164+ if v , ok := e .([16 ]byte ); ok {
165+ e2 = v
166+ }
167+ e = createRandomObject (e2 )
168+ if v , ok := e .([16 ]byte ); ok {
169+ e3 = v
170+ }
171+
172+ s := New ()
173+ if s .Has (e1 ) {
174+ t .Errorf ("expected a new set to not contain %v" , e1 )
175+ }
176+
177+ s .Add (e1 )
178+ s .Add (e2 )
179+
180+ if ! s .HasAny (e1 ) {
181+ t .Errorf ("expected the set to contain %v" , e1 )
182+ }
183+ if ! s .HasAny (e2 ) {
184+ t .Errorf ("expected the set to contain %v" , e2 )
185+ }
186+ if s .HasAny (e3 ) {
187+ t .Errorf ("did not expect the set to contain %v" , e3 )
188+ }
189+ if ! s .HasAny (e1 , e3 ) {
190+ t .Errorf ("expected the set to contain %v" , e1 )
191+ }
192+ }
193+
157194func TestSize (t * testing.T ) {
158195 var e1 , e2 [16 ]byte
159196 e := createRandomObject (e1 )
Original file line number Diff line number Diff line change @@ -84,6 +84,19 @@ func (s *Set) Has(items ...[32]byte) bool {
8484 return has
8585}
8686
87+ // HasAny looks for the existence of any of the items passed.
88+ // It returns false if nothing is passed.
89+ // For multiple items it returns true if any of the items exist.
90+ func (s * Set ) HasAny (items ... [32 ]byte ) bool {
91+ has := false
92+ for _ , item := range items {
93+ if _ , has = s .m [item ]; has {
94+ break
95+ }
96+ }
97+ return has
98+ }
99+
87100// Size returns the number of items in a Set.
88101func (s * Set ) Size () int {
89102 return len (s .m )
Original file line number Diff line number Diff line change @@ -154,6 +154,43 @@ func TestHas(t *testing.T) {
154154 }
155155}
156156
157+ func TestHasAny (t * testing.T ) {
158+ var e1 , e2 , e3 [32 ]byte
159+ e := createRandomObject (e1 )
160+ if v , ok := e .([32 ]byte ); ok {
161+ e1 = v
162+ }
163+ e = createRandomObject (e2 )
164+ if v , ok := e .([32 ]byte ); ok {
165+ e2 = v
166+ }
167+ e = createRandomObject (e2 )
168+ if v , ok := e .([32 ]byte ); ok {
169+ e3 = v
170+ }
171+
172+ s := New ()
173+ if s .Has (e1 ) {
174+ t .Errorf ("expected a new set to not contain %v" , e1 )
175+ }
176+
177+ s .Add (e1 )
178+ s .Add (e2 )
179+
180+ if ! s .HasAny (e1 ) {
181+ t .Errorf ("expected the set to contain %v" , e1 )
182+ }
183+ if ! s .HasAny (e2 ) {
184+ t .Errorf ("expected the set to contain %v" , e2 )
185+ }
186+ if s .HasAny (e3 ) {
187+ t .Errorf ("did not expect the set to contain %v" , e3 )
188+ }
189+ if ! s .HasAny (e1 , e3 ) {
190+ t .Errorf ("expected the set to contain %v" , e1 )
191+ }
192+ }
193+
157194func TestSize (t * testing.T ) {
158195 var e1 , e2 [32 ]byte
159196 e := createRandomObject (e1 )
Original file line number Diff line number Diff line change @@ -84,6 +84,19 @@ func (s *Set) Has(items ...[64]byte) bool {
8484 return has
8585}
8686
87+ // HasAny looks for the existence of any of the items passed.
88+ // It returns false if nothing is passed.
89+ // For multiple items it returns true if any of the items exist.
90+ func (s * Set ) HasAny (items ... [64 ]byte ) bool {
91+ has := false
92+ for _ , item := range items {
93+ if _ , has = s .m [item ]; has {
94+ break
95+ }
96+ }
97+ return has
98+ }
99+
87100// Size returns the number of items in a Set.
88101func (s * Set ) Size () int {
89102 return len (s .m )
Original file line number Diff line number Diff line change @@ -154,6 +154,43 @@ func TestHas(t *testing.T) {
154154 }
155155}
156156
157+ func TestHasAny (t * testing.T ) {
158+ var e1 , e2 , e3 [64 ]byte
159+ e := createRandomObject (e1 )
160+ if v , ok := e .([64 ]byte ); ok {
161+ e1 = v
162+ }
163+ e = createRandomObject (e2 )
164+ if v , ok := e .([64 ]byte ); ok {
165+ e2 = v
166+ }
167+ e = createRandomObject (e2 )
168+ if v , ok := e .([64 ]byte ); ok {
169+ e3 = v
170+ }
171+
172+ s := New ()
173+ if s .Has (e1 ) {
174+ t .Errorf ("expected a new set to not contain %v" , e1 )
175+ }
176+
177+ s .Add (e1 )
178+ s .Add (e2 )
179+
180+ if ! s .HasAny (e1 ) {
181+ t .Errorf ("expected the set to contain %v" , e1 )
182+ }
183+ if ! s .HasAny (e2 ) {
184+ t .Errorf ("expected the set to contain %v" , e2 )
185+ }
186+ if s .HasAny (e3 ) {
187+ t .Errorf ("did not expect the set to contain %v" , e3 )
188+ }
189+ if ! s .HasAny (e1 , e3 ) {
190+ t .Errorf ("expected the set to contain %v" , e1 )
191+ }
192+ }
193+
157194func TestSize (t * testing.T ) {
158195 var e1 , e2 [64 ]byte
159196 e := createRandomObject (e1 )
Original file line number Diff line number Diff line change @@ -84,6 +84,19 @@ func (s *Set) Has(items ...[8]byte) bool {
8484 return has
8585}
8686
87+ // HasAny looks for the existence of any of the items passed.
88+ // It returns false if nothing is passed.
89+ // For multiple items it returns true if any of the items exist.
90+ func (s * Set ) HasAny (items ... [8 ]byte ) bool {
91+ has := false
92+ for _ , item := range items {
93+ if _ , has = s .m [item ]; has {
94+ break
95+ }
96+ }
97+ return has
98+ }
99+
87100// Size returns the number of items in a Set.
88101func (s * Set ) Size () int {
89102 return len (s .m )
Original file line number Diff line number Diff line change @@ -154,6 +154,43 @@ func TestHas(t *testing.T) {
154154 }
155155}
156156
157+ func TestHasAny (t * testing.T ) {
158+ var e1 , e2 , e3 [8 ]byte
159+ e := createRandomObject (e1 )
160+ if v , ok := e .([8 ]byte ); ok {
161+ e1 = v
162+ }
163+ e = createRandomObject (e2 )
164+ if v , ok := e .([8 ]byte ); ok {
165+ e2 = v
166+ }
167+ e = createRandomObject (e2 )
168+ if v , ok := e .([8 ]byte ); ok {
169+ e3 = v
170+ }
171+
172+ s := New ()
173+ if s .Has (e1 ) {
174+ t .Errorf ("expected a new set to not contain %v" , e1 )
175+ }
176+
177+ s .Add (e1 )
178+ s .Add (e2 )
179+
180+ if ! s .HasAny (e1 ) {
181+ t .Errorf ("expected the set to contain %v" , e1 )
182+ }
183+ if ! s .HasAny (e2 ) {
184+ t .Errorf ("expected the set to contain %v" , e2 )
185+ }
186+ if s .HasAny (e3 ) {
187+ t .Errorf ("did not expect the set to contain %v" , e3 )
188+ }
189+ if ! s .HasAny (e1 , e3 ) {
190+ t .Errorf ("expected the set to contain %v" , e1 )
191+ }
192+ }
193+
157194func TestSize (t * testing.T ) {
158195 var e1 , e2 [8 ]byte
159196 e := createRandomObject (e1 )
Original file line number Diff line number Diff line change @@ -84,6 +84,19 @@ func (s *Set) Has(items ...float32) bool {
8484 return has
8585}
8686
87+ // HasAny looks for the existence of any of the items passed.
88+ // It returns false if nothing is passed.
89+ // For multiple items it returns true if any of the items exist.
90+ func (s * Set ) HasAny (items ... float32 ) bool {
91+ has := false
92+ for _ , item := range items {
93+ if _ , has = s .m [item ]; has {
94+ break
95+ }
96+ }
97+ return has
98+ }
99+
87100// Size returns the number of items in a Set.
88101func (s * Set ) Size () int {
89102 return len (s .m )
Original file line number Diff line number Diff line change @@ -154,6 +154,43 @@ func TestHas(t *testing.T) {
154154 }
155155}
156156
157+ func TestHasAny (t * testing.T ) {
158+ var e1 , e2 , e3 float32
159+ e := createRandomObject (e1 )
160+ if v , ok := e .(float32 ); ok {
161+ e1 = v
162+ }
163+ e = createRandomObject (e2 )
164+ if v , ok := e .(float32 ); ok {
165+ e2 = v
166+ }
167+ e = createRandomObject (e2 )
168+ if v , ok := e .(float32 ); ok {
169+ e3 = v
170+ }
171+
172+ s := New ()
173+ if s .Has (e1 ) {
174+ t .Errorf ("expected a new set to not contain %v" , e1 )
175+ }
176+
177+ s .Add (e1 )
178+ s .Add (e2 )
179+
180+ if ! s .HasAny (e1 ) {
181+ t .Errorf ("expected the set to contain %v" , e1 )
182+ }
183+ if ! s .HasAny (e2 ) {
184+ t .Errorf ("expected the set to contain %v" , e2 )
185+ }
186+ if s .HasAny (e3 ) {
187+ t .Errorf ("did not expect the set to contain %v" , e3 )
188+ }
189+ if ! s .HasAny (e1 , e3 ) {
190+ t .Errorf ("expected the set to contain %v" , e1 )
191+ }
192+ }
193+
157194func TestSize (t * testing.T ) {
158195 var e1 , e2 float32
159196 e := createRandomObject (e1 )
You can’t perform that action at this time.
0 commit comments