diff options
author | Runxi Yu <me@runxiyu.org> | 2025-03-23 12:01:36 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-03-23 12:01:36 +0800 |
commit | 71559a48afc860d124b4ddfeb8df752b22a25053 (patch) | |
tree | a163ec0a7c0d811bf39ab8e943ee76a87a95ef41 /bitwise_test.go | |
parent | Reorganize README (diff) | |
download | powxy-71559a48afc860d124b4ddfeb8df752b22a25053.tar.gz powxy-71559a48afc860d124b4ddfeb8df752b22a25053.tar.zst powxy-71559a48afc860d124b4ddfeb8df752b22a25053.zip |
Separate validateBitZeros into a separate file
Diffstat (limited to 'bitwise_test.go')
-rw-r--r-- | bitwise_test.go | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/bitwise_test.go b/bitwise_test.go new file mode 100644 index 0000000..394d407 --- /dev/null +++ b/bitwise_test.go @@ -0,0 +1,90 @@ +package main + +import ( + "testing" +) + +func TestValidateBitZeros(t *testing.T) { + tests := []struct { + name string + bs []byte + n uint + expected bool + }{ + { + name: "First 8 bits are zeros", + bs: []byte{0x00, 0x01}, + n: 8, + expected: true, + }, + { + name: "First 8 bits are not all zeros", + bs: []byte{0x01, 0x00}, + n: 8, + expected: false, + }, + { + name: "First 16 bits are zeros", + bs: []byte{0x00, 0x00, 0x01}, + n: 16, + expected: true, + }, + { + name: "First 16 bits are not all zeros", + bs: []byte{0x01, 0x00, 0x00}, + n: 16, + expected: false, + }, + { + name: "First 9 bits are zeros", + bs: []byte{0x00, 0x01}, + n: 9, + expected: true, + }, + { + name: "First 9 bits are not all zeros", + bs: []byte{0x01, 0x01}, + n: 9, + expected: false, + }, + { + name: "First 10 bits are zeros", + bs: []byte{0x00, 0x20}, + n: 10, + expected: true, + }, + { + name: "First 10 bits are not all zeros", + bs: []byte{0x00, 0x40}, + n: 10, + expected: false, + }, + { + name: "First 24 bits are zeros", + bs: []byte{0x00, 0x00, 0x00, 0x01}, + n: 24, + expected: true, + }, + { + name: "First 24 bits are not all zeros", + bs: []byte{0x00, 0x01, 0x00, 0x00}, + n: 24, + expected: false, + }, + { + name: "Checking zero bits", + bs: []byte{0xFF, 0xFF}, + n: 0, + expected: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := validateBitZeros(tt.bs, tt.n) + if got != tt.expected { + t.Errorf("validateBitZeros(%v, %v) = %v; want %v", tt.bs, tt.n, got, tt.expected) + } + }) + } +} |