github.com/ranjib/nomad@v0.1.1-0.20160225204057-97751b02f70b/nomad/structs/bitmap_test.go (about) 1 package structs 2 3 import "testing" 4 5 func TestBitmap(t *testing.T) { 6 // Check invalid sizes 7 _, err := NewBitmap(0) 8 if err == nil { 9 t.Fatalf("bad") 10 } 11 _, err = NewBitmap(7) 12 if err == nil { 13 t.Fatalf("bad") 14 } 15 16 // Create a normal bitmap 17 b, err := NewBitmap(256) 18 if err != nil { 19 t.Fatalf("err: %v", err) 20 } 21 22 // Set a few bits 23 b.Set(0) 24 b.Set(255) 25 26 // Verify the bytes 27 if b[0] == 0 { 28 t.Fatalf("bad") 29 } 30 if !b.Check(0) { 31 t.Fatalf("bad") 32 } 33 34 // Verify the bytes 35 if b[len(b)-1] == 0 { 36 t.Fatalf("bad") 37 } 38 if !b.Check(255) { 39 t.Fatalf("bad") 40 } 41 42 // All other bits should be unset 43 for i := 1; i < 255; i++ { 44 if b.Check(uint(i)) { 45 t.Fatalf("bad") 46 } 47 } 48 49 // Clear 50 b.Clear() 51 52 // All bits should be unset 53 for i := 0; i < 256; i++ { 54 if b.Check(uint(i)) { 55 t.Fatalf("bad") 56 } 57 } 58 }