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  }