Skip to content

Commit e485960

Browse files
authored
feat(tests): extra clz param for scenarios test case (#1965)
* feat(tests): extra clz param for scenarios test case. * chore(tests): update clz params.
1 parent 3dca37e commit e485960

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

tests/osaka/eip7939_count_leading_zeros/test_count_leading_zeros.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,10 @@ def clz_parameters():
3232
"""Generate all test case parameters."""
3333
test_cases = []
3434

35+
# Format 0x000...000: all zeros
36+
test_cases.append(("zero", 0, 256))
37+
3538
# Format 0xb000...111: leading zeros followed by ones
36-
# Special case: bits=256 gives value=0 (all zeros)
3739
for bits in range(257):
3840
value = (2**256 - 1) >> bits
3941
expected_clz = bits
@@ -43,10 +45,15 @@ def clz_parameters():
4345
)
4446
test_cases.append((f"leading_zeros_{bits}", value, expected_clz))
4547

46-
# Format 0xb010...000: single bit set
47-
for bits in range(256):
48-
value = 1 << bits
49-
expected_clz = 255 - bits
48+
# Format 0xb010...000: single bit set (1 << N for N = 1…256)
49+
for bits in range(1, 257):
50+
if bits == 256:
51+
# Special case: 1 << 256 = 0 in 256-bit arithmetic (overflow)
52+
value = 0
53+
expected_clz = 256
54+
else:
55+
value = 1 << bits
56+
expected_clz = 255 - bits
5057
assert expected_clz == Spec.calculate_clz(value), (
5158
f"CLZ calculation mismatch for single_bit_{bits}: "
5259
f"manual={expected_clz}, spec={Spec.calculate_clz(value)}, value={hex(value)}"

0 commit comments

Comments
 (0)