github.com/scottcagno/storage@v1.8.0/pkg/bits/binrecord_test.go (about) 1 package bits 2 3 import ( 4 "fmt" 5 "testing" 6 ) 7 8 func TestBinardRecord_IsSet(t *testing.T) { 9 br := NewBinaryRecord(16) 10 br.Set(2) 11 br.Set(4) 12 br.Set(6) 13 AssertExpected(t, false, br.IsSet(1)) 14 AssertExpected(t, true, br.IsSet(2)) 15 AssertExpected(t, false, br.IsSet(3)) 16 AssertExpected(t, true, br.IsSet(4)) 17 AssertExpected(t, false, br.IsSet(5)) 18 AssertExpected(t, true, br.IsSet(6)) 19 AssertExpected(t, false, br.IsSet(128)) 20 br = nil 21 } 22 23 func TestBinardRecord_Len(t *testing.T) { 24 br := NewBinaryRecord(16) 25 AssertExpected(t, uint(16), br.Len()) 26 br = nil 27 } 28 29 func TestBinardRecord_Set(t *testing.T) { 30 bs := NewBinaryRecord(16) 31 bs.Set(2) 32 bs.Set(4) 33 bs.Set(6) 34 AssertExpected(t, false, bs.IsSet(1)) 35 AssertExpected(t, true, bs.IsSet(2)) 36 AssertExpected(t, false, bs.IsSet(3)) 37 AssertExpected(t, true, bs.IsSet(4)) 38 AssertExpected(t, false, bs.IsSet(5)) 39 AssertExpected(t, true, bs.IsSet(6)) 40 bs = nil 41 } 42 43 func TestBinardRecord_String(t *testing.T) { 44 br := NewBinaryRecord(16) 45 br.Set(2) 46 br.Set(4) 47 br.Set(6) 48 str := br.String() 49 AssertExpected(t, true, str != "") 50 fmt.Println(str) 51 br = nil 52 } 53 54 func TestBinardRecord_Unset(t *testing.T) { 55 br := NewBinaryRecord(16) 56 br.Set(2) 57 br.Set(4) 58 br.Set(6) 59 AssertExpected(t, false, br.IsSet(1)) 60 AssertExpected(t, true, br.IsSet(2)) 61 AssertExpected(t, false, br.IsSet(3)) 62 AssertExpected(t, true, br.IsSet(4)) 63 AssertExpected(t, false, br.IsSet(5)) 64 AssertExpected(t, true, br.IsSet(6)) 65 br.Unset(2) 66 br.Unset(4) 67 br.Unset(6) 68 AssertExpected(t, false, br.IsSet(1)) 69 AssertExpected(t, false, br.IsSet(2)) 70 AssertExpected(t, false, br.IsSet(3)) 71 AssertExpected(t, false, br.IsSet(4)) 72 AssertExpected(t, false, br.IsSet(5)) 73 AssertExpected(t, false, br.IsSet(6)) 74 br = nil 75 } 76 77 func TestBinardRecord_Value(t *testing.T) { 78 br := NewBinaryRecord(16) 79 br.Set(1) 80 v := br.Get(1) 81 AssertExpected(t, uint(2), v) 82 br = nil 83 } 84 85 func TestBinardRecord_resize(t *testing.T) { 86 br := NewBinaryRecord(16) 87 AssertExpected(t, uint(16), br.Len()) 88 br.Resize(32) 89 AssertExpected(t, uint(32), br.Len()) 90 br = nil 91 } 92 93 func TestNewBinardRecord(t *testing.T) { 94 br := NewBinaryRecord(16) 95 AssertExpected(t, uint(16), br.Len()) 96 br = nil 97 } 98 99 func TestBinardRecordTestMany(t *testing.T) { 100 br := NewBinaryRecord(16) 101 for i := 0; i < 16; i++ { 102 x := uint(i) 103 AssertExpected(t, false, br.IsSet(x)) 104 br.Set(x) 105 AssertExpected(t, true, br.IsSet(x)) 106 v := br.Get(x) 107 AssertExpected(t, uint(1<<x), v) 108 br.Unset(x) 109 AssertExpected(t, false, br.IsSet(x)) 110 } 111 br = nil 112 }