Skip to content

Commit 659d529

Browse files
committed
fix: correct doctest examples in binary_parity_pattern function
1 parent acd05a7 commit 659d529

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

bit_manipulation/binary_parity_pattern.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,20 @@ def binary_parity_pattern(number: int) -> str:
1515
Return a binary parity pattern string for a given integer.
1616
1717
>>> binary_parity_pattern(13)
18-
'0b1010'
18+
'0b1001'
1919
>>> binary_parity_pattern(7)
20-
'0b111'
20+
'0b101'
2121
>>> binary_parity_pattern(4)
22-
'0b10'
22+
'0b111'
2323
>>> binary_parity_pattern(0)
2424
'0b0'
2525
"""
2626
if number < 0:
2727
raise ValueError("Number must be non-negative")
2828

29+
if number == 0:
30+
return "0b0"
31+
2932
binary_str = bin(number)[2:]
3033
cum_sum = 0
3134
pattern = []
@@ -34,11 +37,10 @@ def binary_parity_pattern(number: int) -> str:
3437
cum_sum += int(bit)
3538
pattern.append(str(cum_sum % 2))
3639

37-
result = "0b" + "".join(pattern)
38-
return result if result != "0b" else "0b0"
40+
result = ''.join(pattern).lstrip('0')
41+
return '0b' + (result if result else '0')
3942

4043

4144
if __name__ == "__main__":
4245
import doctest
43-
4446
doctest.testmod()

0 commit comments

Comments
 (0)