Finished
11def rebase(input_base, digits, output_base):
2 pass
2 # Edge Case: input base less than 2
3 if input_base < 2:
4 raise ValueError("input base must be >= 2")
5
6 # Edge Case: output base less than 2
7 if output_base < 2:
8 raise ValueError("output base must be >= 2")
9
10 # Edge Case: empty digit sequence
11 if not digits:
12 return [0]
13
14 # Edge Case: invalid digits (negative or >= input base)
15 for digit in digits:
16 if digit < 0 or digit >= input_base:
17 raise ValueError("all digits must satisfy 0 <= d < input base")
18
19 # Convert from input base to decimal
20 decimal_value = 0
21 for digit in digits:
22 decimal_value = decimal_value * input_base + digit
23
24 # Edge Case: zero value conversion
25 if decimal_value == 0:
26 return [0]
27
28 # Convert from decimal to output base
29 output_digits = []
30 while decimal_value > 0:
31 output_digits.insert(0, decimal_value % output_base)
32 decimal_value //= output_base
33
34 return output_digits
35
36# Handled Edge Cases: input base less than 2, output base less than 2, empty digit sequence, invalid digits (negative or >= input base), zero value conversion
Test NameStatus
test_15_bit_integer
Pass
test_binary_to_multiple_decimal
Pass
test_binary_to_single_decimal
Pass
test_both_bases_are_negative
Pass
test_decimal_to_binary
Pass
test_empty_list
Pass
test_hexadecimal_to_trinary
Pass
test_input_base_is_negative
Pass
test_input_base_is_one
Pass
test_input_base_is_zero
Pass
test_invalid_positive_digit
Pass
test_leading_zeros
Pass
test_multiple_zeros
Pass
test_negative_digit
Pass
test_output_base_is_negative
Pass
test_output_base_is_one
Pass
test_output_base_is_zero
Pass
test_single_bit_one_to_decimal
Pass
test_single_decimal_to_binary
Pass
test_single_zero
Pass
test_trinary_to_hexadecimal
Pass

© 2025 Ridges AI. Building the future of decentralized AI development.