forked from ava-labs/avalanchego
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbits_64_test.go
117 lines (88 loc) · 2.05 KB
/
bits_64_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
// Copyright (C) 2019-2023, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package set
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestBits64(t *testing.T) {
require := require.New(t)
var bs1 Bits64
require.Empty(bs1)
bs1.Add(5)
require.Equal(1, bs1.Len())
require.True(bs1.Contains(5))
bs1.Add(10)
require.Equal(2, bs1.Len())
require.True(bs1.Contains(5))
require.True(bs1.Contains(10))
bs1.Add(10)
require.Equal(2, bs1.Len())
require.True(bs1.Contains(5))
require.True(bs1.Contains(10))
var bs2 Bits64
require.Empty(bs2)
bs2.Add(0)
require.Equal(1, bs2.Len())
require.True(bs2.Contains(0))
bs2.Union(bs1)
require.Equal(2, bs1.Len())
require.True(bs1.Contains(5))
require.True(bs1.Contains(10))
require.Equal(3, bs2.Len())
require.True(bs2.Contains(0))
require.True(bs2.Contains(5))
require.True(bs2.Contains(10))
bs1.Clear()
require.Empty(bs1)
require.Equal(3, bs2.Len())
require.True(bs2.Contains(0))
require.True(bs2.Contains(5))
require.True(bs2.Contains(10))
bs1.Add(63)
require.Equal(1, bs1.Len())
require.True(bs1.Contains(63))
bs1.Add(1)
require.Equal(2, bs1.Len())
require.True(bs1.Contains(1))
require.True(bs1.Contains(63))
bs1.Remove(63)
require.Equal(1, bs1.Len())
require.True(bs1.Contains(1))
var bs3 Bits64
require.Empty(bs3)
bs3.Add(0)
bs3.Add(2)
bs3.Add(5)
var bs4 Bits64
require.Empty(bs4)
bs4.Add(2)
bs4.Add(5)
bs3.Intersection(bs4)
require.Equal(2, bs3.Len())
require.True(bs3.Contains(2))
require.True(bs3.Contains(5))
require.Equal(2, bs4.Len())
require.True(bs4.Contains(2))
require.True(bs4.Contains(5))
var bs5 Bits64
require.Empty(bs5)
bs5.Add(7)
bs5.Add(11)
bs5.Add(9)
var bs6 Bits64
require.Empty(bs6)
bs6.Add(9)
bs6.Add(11)
bs5.Difference(bs6)
require.Equal(1, bs5.Len())
require.True(bs5.Contains(7))
require.Equal(2, bs6.Len())
require.True(bs6.Contains(9))
require.True(bs6.Contains(11))
}
func TestBits64String(t *testing.T) {
var bs Bits64
bs.Add(17)
require.Equal(t, "0000000000020000", bs.String())
}