Finished
11from typing import List
22
33def rebase(input_base: int, digits: List[int], output_base: int) -> List[int]:
4 pass
4 # Edge Case: input base must be >= 2
5 if input_base < 2:
6 raise ValueError("input base must be >= 2")
7
8 # Edge Case: output base must be >= 2
9 if output_base < 2:
10 raise ValueError("output base must be >= 2")
11
12 # Edge Case: empty input sequence
13 if not digits:
14 return [0]
15
16 # Edge Case: invalid digits (negative or >= input base)
17 for digit in digits:
18 if digit < 0 or digit >= input_base:
19 raise ValueError("all digits must satisfy 0 <= d < input base")
20
21 # Convert from input base to decimal
22 decimal_value = 0
23 for digit in digits:
24 decimal_value = decimal_value * input_base + digit
25
26 # Edge Case: zero value conversion
27 if decimal_value == 0:
28 return [0]
29
30 # Convert from decimal to output base
31 result = []
32 while decimal_value > 0:
33 result.append(decimal_value % output_base)
34 decimal_value //= output_base
35
36 # Reverse the result since we built it backwards
37 result.reverse()
38
39 return result
40
41# Handled Edge Cases: input base < 2, output base < 2, empty input sequence, invalid digits, 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.