github.com/nspcc-dev/neo-go@v0.105.2-0.20240517133400-6be757af3eba/pkg/util/bitfield/bitfield_test.go (about) 1 package bitfield 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestFields(t *testing.T) { 10 a := New(128) 11 b := New(128) 12 a.Set(10) 13 b.Set(10) 14 a.Set(42) 15 b.Set(42) 16 a.Set(100) 17 b.Set(100) 18 require.True(t, a.IsSet(42)) 19 require.False(t, b.IsSet(43)) 20 require.True(t, a.IsSubset(b)) 21 22 v := uint64(1<<10 | 1<<42) 23 require.Equal(t, v, a[0]) 24 require.Equal(t, v, b[0]) 25 26 require.True(t, a.Equals(b)) 27 28 c := a.Copy() 29 require.True(t, c.Equals(b)) 30 31 z := New(128) 32 require.True(t, z.IsSubset(c)) 33 c.And(a) 34 require.True(t, c.Equals(b)) 35 c.And(z) 36 require.True(t, c.Equals(z)) 37 38 c = New(64) 39 require.False(t, z.IsSubset(c)) 40 c[0] = a[0] 41 require.False(t, c.Equals(a)) 42 require.True(t, c.IsSubset(a)) 43 44 b.And(c) 45 require.False(t, b.Equals(a)) 46 }