MCPcopy Create free account
hub / github.com/RoaringBitmap/roaring / TestRleInterval16s

Function TestRleInterval16s

runcontainer_test.go:33–78  ·  view source on GitHub ↗

canMerge, and mergeInterval16s should do what they say

(t *testing.T)

Source from the content-addressed store, hash-verified

31
32// canMerge, and mergeInterval16s should do what they say
33func TestRleInterval16s(t *testing.T) {
34 a := newInterval16Range(0, 9)
35 b := newInterval16Range(0, 1)
36 report := sliceToString16([]interval16{a, b})
37 _ = report
38 c := newInterval16Range(2, 4)
39 d := newInterval16Range(2, 5)
40 e := newInterval16Range(0, 4)
41 f := newInterval16Range(9, 9)
42 g := newInterval16Range(8, 9)
43 h := newInterval16Range(5, 6)
44 i := newInterval16Range(6, 6)
45
46 aIb, empty := intersectInterval16s(a, b)
47 assert.False(t, empty)
48 assert.EqualValues(t, b, aIb)
49
50 assert.True(t, canMerge16(b, c))
51 assert.True(t, canMerge16(c, b))
52 assert.True(t, canMerge16(a, h))
53
54 assert.True(t, canMerge16(d, e))
55 assert.True(t, canMerge16(f, g))
56 assert.True(t, canMerge16(c, h))
57
58 assert.False(t, canMerge16(b, h))
59 assert.False(t, canMerge16(h, b))
60 assert.False(t, canMerge16(c, i))
61
62 assert.EqualValues(t, e, mergeInterval16s(b, c))
63 assert.EqualValues(t, e, mergeInterval16s(c, b))
64
65 assert.EqualValues(t, h, mergeInterval16s(h, i))
66 assert.EqualValues(t, h, mergeInterval16s(i, h))
67
68 ////// start
69 assert.EqualValues(t, newInterval16Range(0, 1), mergeInterval16s(newInterval16Range(0, 0), newInterval16Range(1, 1)))
70 assert.EqualValues(t, newInterval16Range(0, 1), mergeInterval16s(newInterval16Range(1, 1), newInterval16Range(0, 0)))
71 assert.EqualValues(t, newInterval16Range(0, 5), mergeInterval16s(newInterval16Range(0, 4), newInterval16Range(3, 5)))
72 assert.EqualValues(t, newInterval16Range(0, 4), mergeInterval16s(newInterval16Range(0, 4), newInterval16Range(3, 4)))
73
74 assert.EqualValues(t, newInterval16Range(0, 8), mergeInterval16s(newInterval16Range(1, 7), newInterval16Range(0, 8)))
75 assert.EqualValues(t, newInterval16Range(0, 8), mergeInterval16s(newInterval16Range(1, 7), newInterval16Range(0, 8)))
76
77 assert.Panics(t, func() { _ = mergeInterval16s(newInterval16Range(0, 0), newInterval16Range(2, 3)) })
78}
79
80func TestRunOffset(t *testing.T) {
81 v := newRunContainer16TakeOwnership([]interval16{newInterval16Range(34, 39)})

Callers

nothing calls this directly

Calls 5

newInterval16RangeFunction · 0.85
sliceToString16Function · 0.85
intersectInterval16sFunction · 0.85
canMerge16Function · 0.85
mergeInterval16sFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…