def test_random(self): for n in range(2, 7): for max_value in [10, 20, 100, 1000]: for _ in range(10): numbers = [randint(1, max_value) for _ in range(n)] self.assertEqual(largest_number(numbers), largest_number_naive(numbers))
def test_small(self): for numbers in [[1], [1, 2], [3548, 35, 17], [3528, 35, 17], [3535, 35, 17], [3535, 35, 17], [35351, 35, 17], [166, 16617], [16616, 166], [166, 1661666], [606, 60], [166111, 166], [1, 12], [2, 12], [2, 21], [2, 21, 23, 211, 213, 231, 232]]: self.assertEqual(largest_number(numbers), largest_number_naive(numbers))
def test_small(self): for numbers in [ [1], [1, 2], [22, 32], [1, 12], [2, 12], [2, 21], [2, 21, 23, 211, 213, 231, 232] ]: self.assertEqual(largest_number(numbers), largest_number_naive(numbers))
from maximum_salary import largest_number def reference(numbers): numbers = list(map(str, numbers)) for _ in numbers: for i in range(len(numbers) - 1): if numbers[i] + numbers[i + 1] < numbers[i + 1] + numbers[i]: t = numbers[i] numbers[i] = numbers[i + 1] numbers[i + 1] = t return int("".join(numbers)) if __name__ == '__main__': run_common_tests() check_tests_pass("maximum_salary_unit_tests.py") all_tests_passed = True for numbers in [[2, 21, 23, 211, 213, 231, 232], [56, 5, 6, 556, 566, 666, 665, 656]]: if reference(numbers) != largest_number(numbers): all_tests_passed = False failed("Wrong answer for n={}".format(numbers)) break if all_tests_passed: passed()