github.com/songzhibin97/go-baseutils@v0.0.2-0.20240302024150-487d8ce9c082/structure/sets/skipset/flag_test.go (about) 1 package skipset 2 3 import ( 4 "testing" 5 ) 6 7 func TestFlag(t *testing.T) { 8 // Correctness. 9 const ( 10 f0 = 1 << iota 11 f1 12 f2 13 f3 14 f4 15 f5 16 f6 17 f7 18 ) 19 x := &bitflag{} 20 21 x.SetTrue(f1 | f3) 22 if x.Get(f0) || !x.Get(f1) || x.Get(f2) || !x.Get(f3) || !x.MGet(f0|f1|f2|f3, f1|f3) { 23 t.Fatal("invalid") 24 } 25 x.SetTrue(f1) 26 x.SetTrue(f1 | f3) 27 if x.data != f1+f3 { 28 t.Fatal("invalid") 29 } 30 31 x.SetFalse(f1 | f2) 32 if x.Get(f0) || x.Get(f1) || x.Get(f2) || !x.Get(f3) || !x.MGet(f0|f1|f2|f3, f3) { 33 t.Fatal("invalid") 34 } 35 x.SetFalse(f1 | f2) 36 if x.data != f3 { 37 t.Fatal("invalid") 38 } 39 }