Skip to content

Commit 4cb4787

Browse files
committed
Test Flag
1 parent 098e961 commit 4cb4787

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

flag_test.go

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package bitmask_test
2+
3+
import (
4+
"testing"
5+
6+
"github.com/kerelape/bitmask"
7+
"github.com/stretchr/testify/assert"
8+
)
9+
10+
type TestMask bitmask.Mask
11+
12+
const (
13+
TestMaskFlagNone bitmask.Flag[TestMask] = 1<<iota - 1
14+
TestMaskFlag1
15+
)
16+
17+
func TestFlag_SetIn(t *testing.T) {
18+
mask := bitmask.Init[TestMask]()
19+
TestMaskFlag1.SetIn(&mask)
20+
assert.True(t, bitmask.IsExactly(mask, TestMaskFlag1))
21+
}
22+
23+
func TestFlag_ClearIn(t *testing.T) {
24+
mask := bitmask.Init[TestMask](TestMaskFlag1)
25+
TestMaskFlag1.ClearIn(&mask)
26+
assert.False(t, bitmask.Has(mask, TestMaskFlag1))
27+
assert.True(t, bitmask.IsExactly(mask, TestMaskFlagNone))
28+
}
29+
30+
func TestFlag_SwapIn(t *testing.T) {
31+
mask := bitmask.Init[TestMask](TestMaskFlag1)
32+
assert.True(t, bitmask.Has(mask, TestMaskFlag1))
33+
TestMaskFlag1.SwapIn(&mask)
34+
assert.False(t, bitmask.Has(mask, TestMaskFlag1))
35+
TestMaskFlag1.SwapIn(&mask)
36+
assert.True(t, bitmask.Has(mask, TestMaskFlag1))
37+
}

go.mod

+8
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
11
module github.com/kerelape/bitmask
22

33
go 1.20
4+
5+
require github.com/stretchr/testify v1.8.4
6+
7+
require (
8+
github.com/davecgh/go-spew v1.1.1 // indirect
9+
github.com/pmezard/go-difflib v1.0.0 // indirect
10+
gopkg.in/yaml.v3 v3.0.1 // indirect
11+
)

go.sum

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
2+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
4+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5+
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=
6+
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
7+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
8+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
9+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)