MCPcopy Index your code
hub / github.com/Workiva/go-datastructures / TestOrSparseWithSparseBitArray

Function TestOrSparseWithSparseBitArray

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

Source from the content-addressed store, hash-verified

23)
24
25func TestOrSparseWithSparseBitArray(t *testing.T) {
26 sba := newSparseBitArray()
27 other := newSparseBitArray()
28
29 ctx := false
30 for i := uint64(0); i < 1000; i += s {
31 if ctx {
32 sba.SetBit(i)
33 } else {
34 other.SetBit(i)
35 }
36
37 ctx = !ctx
38 }
39
40 sba.SetBit(s - 1)
41 other.SetBit(s - 1)
42
43 result := orSparseWithSparseBitArray(sba, other)
44
45 for i := uint64(0); i < 1000; i += s {
46 ok, err := result.GetBit(i)
47 assert.Nil(t, err)
48 assert.True(t, ok)
49 }
50
51 ok, err := result.GetBit(s - 1)
52 assert.Nil(t, err)
53 assert.True(t, ok)
54
55 ok, err = result.GetBit(s - 2)
56 assert.Nil(t, err)
57 assert.False(t, ok)
58
59 other.SetBit(2000)
60 result = orSparseWithSparseBitArray(sba, other)
61
62 ok, err = result.GetBit(2000)
63 assert.Nil(t, err)
64 assert.True(t, ok)
65
66 sba.SetBit(2000)
67 result = orSparseWithSparseBitArray(sba, other)
68
69 ok, err = result.GetBit(2000)
70 assert.Nil(t, err)
71 assert.True(t, ok)
72}
73
74func BenchmarkOrSparseWithSparse(b *testing.B) {
75 numItems := uint64(160000)

Callers

nothing calls this directly

Calls 4

newSparseBitArrayFunction · 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…