def _compute_adjusted_exponent_length(exponent_length, first_32_exponent_bytes): exponent = big_endian_to_int(first_32_exponent_bytes) if exponent_length <= 32 and exponent == 0: return 0 elif exponent_length <= 32: return get_highest_bit_index(exponent) else: first_32_bytes_as_int = big_endian_to_int(first_32_exponent_bytes) return (8 * (exponent_length - 32) + get_highest_bit_index(first_32_bytes_as_int))
def test_get_highest_bit_index(value, expected): actual = get_highest_bit_index(value) assert actual == expected