MCPcopy Create free account
hub / github.com/Workiva/go-datastructures / TestOrSparseWithDenseBitArray

Function TestOrSparseWithDenseBitArray

bitarray/or_test.go:97–142  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

95}
96
97func TestOrSparseWithDenseBitArray(t *testing.T) {
98 sba := newSparseBitArray()
99 other := newBitArray(2000)
100
101 ctx := false
102 for i := uint64(0); i < 1000; i += s {
103 if ctx {
104 sba.SetBit(i)
105 } else {
106 other.SetBit(i)
107 }
108
109 ctx = !ctx
110 }
111
112 other.SetBit(1500)
113 other.SetBit(s - 1)
114 sba.SetBit(s - 1)
115
116 result := orSparseWithDenseBitArray(sba, other)
117
118 for i := uint64(0); i < 1000; i += s {
119 ok, err := result.GetBit(i)
120 assert.Nil(t, err)
121 assert.True(t, ok)
122 }
123
124 ok, err := result.GetBit(1500)
125 assert.Nil(t, err)
126 assert.True(t, ok)
127
128 ok, err = result.GetBit(s - 1)
129 assert.Nil(t, err)
130 assert.True(t, ok)
131
132 ok, err = result.GetBit(s - 2)
133 assert.Nil(t, err)
134 assert.False(t, ok)
135
136 sba.SetBit(2500)
137 result = orSparseWithDenseBitArray(sba, other)
138
139 ok, err = result.GetBit(2500)
140 assert.Nil(t, err)
141 assert.True(t, ok)
142}
143
144func BenchmarkOrSparseWithDense(b *testing.B) {
145 numItems := uint64(160000)

Callers

nothing calls this directly

Calls 5

newSparseBitArrayFunction · 0.85
newBitArrayFunction · 0.85
SetBitMethod · 0.65
GetBitMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…