Also verified the tests fail without the fix in https://github.com/adafruit/circuitpython/pull/4845 Fixes https://github.com/adafruit/circuitpython/issues/4846
23 lines
696 B
Python
23 lines
696 B
Python
# CIRCUITPY-CHANGE
|
|
# test bit_length for various sizes of ints
|
|
|
|
for x in range(-10, 10):
|
|
print(x.bit_length())
|
|
|
|
for i in [2, 3, 15, 16, 17, 31, 32, 33, 63, 64, 234]:
|
|
a = 2**i
|
|
print((a - 1).bit_length())
|
|
print((1 - a).bit_length())
|
|
print(a.bit_length())
|
|
print((-a).bit_length())
|
|
print((a + 1).bit_length())
|
|
print((-a - 1).bit_length())
|
|
# Ensure transitioning between small and large int representations
|
|
# still work.
|
|
print((a - a).bit_length())
|
|
print((0 * a).bit_length())
|
|
print((0 * a - 1).bit_length())
|
|
print((0 * a + 1).bit_length())
|
|
print((2 * a).bit_length())
|
|
print((2 * a + 1).bit_length())
|
|
print((2 * a - 1).bit_length())
|