@@ -258,10 +258,7 @@ func TestBitSet_Visit(t *testing.T) {
258258 count := 0
259259 aborted := bs .Visit (func (n int ) bool {
260260 count ++
261- if n == 1 {
262- return true
263- }
264- return false
261+ return n == 1
265262 })
266263 require .True (t , aborted )
267264 require .Equal (t , 1 , count )
@@ -539,30 +536,6 @@ func TestOr(t *testing.T) {
539536 }
540537}
541538
542- func TestBitSet_Or (t * testing.T ) {
543- tests := []struct {
544- name string
545- a , b BitSet
546- expect string
547- }{
548- {"both empty" , New (), New (), "{}" },
549- {"a empty" , New (), New (1 ), "{1}" },
550- {"b empty" , New (1 ), New (), "{1}" },
551- {"same" , New (1 ), New (1 ), "{1}" },
552- {"no overlap" , New (1 ), New (2 ), "{1 2}" },
553- {"partial overlap" , New (1 , 2 ), New (2 , 3 ), "{1..3}" },
554- {"large" , New (100 , 200 ), New (200 , 300 ), "{100 200 300}" },
555- }
556-
557- for _ , tt := range tests {
558- t .Run (tt .name , func (t * testing.T ) {
559- res := & tt .a
560- res .Or (tt .b )
561- require .Equal (t , tt .expect , res .String ())
562- })
563- }
564- }
565-
566539func TestXor (t * testing.T ) {
567540 tests := []struct {
568541 name string
@@ -572,40 +545,29 @@ func TestXor(t *testing.T) {
572545 {"both empty" , New (), New (), "{}" },
573546 {"a empty" , New (), New (1 ), "{1}" },
574547 {"b empty" , New (1 ), New (), "{1}" },
575- {"same" , New (1 ), New (1 ), "{}" },
548+ {"equal" , New (1 ), New (1 ), "{}" },
549+ {"2 elems equal" , New (1 , 2 ), New (1 , 2 ), "{}" },
576550 {"no overlap" , New (1 ), New (2 ), "{1 2}" },
577551 {"partial overlap" , New (1 , 2 ), New (2 , 3 ), "{1 3}" },
578- {"large" , New (100 , 200 ), New (200 , 300 ), "{100 300}" },
552+ {"partial overlap trailing zero" , New (1 , 2 , 0 ), New (2 , 3 , 0 ), "{1 3}" },
553+ {"partial overlap hundrets" , New (100 , 200 ), New (200 , 300 ), "{100 300}" },
554+ {
555+ "20 elems no overlap" ,
556+ New (1 , 100 , 200 , 300 , 400 , 500 , 600 , 700 , 800 , 900 ),
557+ New (2 , 101 , 202 , 303 , 404 , 505 , 606 , 707 , 808 , 909 ),
558+ "{1 2 100 101 200 202 300 303 400 404 500 505 600 606 " +
559+ "700 707 800 808 900 909}" ,
560+ },
579561 }
580562
581563 for _ , tt := range tests {
582564 t .Run (tt .name , func (t * testing.T ) {
583565 res := Xor (tt .a , tt .b )
584566 require .Equal (t , tt .expect , res .String ())
585- })
586- }
587- }
588567
589- func TestBitSet_Xor (t * testing.T ) {
590- tests := []struct {
591- name string
592- a , b BitSet
593- expect string
594- }{
595- {"both empty" , New (), New (), "{}" },
596- {"a empty" , New (), New (1 ), "{1}" },
597- {"b empty" , New (1 ), New (), "{1}" },
598- {"same" , New (1 ), New (1 ), "{}" },
599- {"no overlap" , New (1 ), New (2 ), "{1 2}" },
600- {"partial overlap" , New (1 , 2 ), New (2 , 3 ), "{1 3}" },
601- {"large" , New (100 , 200 ), New (200 , 300 ), "{100 300}" },
602- }
603-
604- for _ , tt := range tests {
605- t .Run (tt .name , func (t * testing.T ) {
606- res := & tt .a
607- res .Xor (tt .b )
608- require .Equal (t , tt .expect , res .String ())
568+ cp := tt .a .Copy ()
569+ cp .Xor (tt .b )
570+ require .Equal (t , tt .expect , cp .String ())
609571 })
610572 }
611573}
0 commit comments