def test_MinValue_IsMidValue(self): expected = [ [2, 2, 3, 3], [2, 3, 3, 3], [3, 3, 3, 3], ] self.assertListEqual( generate_ascending(4, [1, 2, 3], min_value=[2, 2, 3, 3]), expected)
def test_MinMaxValue_MinIsMax(self): expected = [ [1, 3, 3, 3], ] self.assertListEqual( generate_ascending(4, [1, 2, 3], min_value=[1, 3, 3, 3], max_value=[1, 3, 3, 3]), expected)
def main(): num_part_1 = 0 num_part_2 = 0 for generated in generate_ascending(6, [1, 2, 3, 4, 5, 6, 7, 8, 9], min_value=MIN_VALUE, max_value=MAX_VALUE): if valid_value(generated): num_part_1 += 1 if valid_value_2(generated): num_part_2 += 1 print("Part 1: {0}".format(num_part_1)) print("Part 2: {0}".format(num_part_2))
def test_TrippleDigit(self): expected = [ [1, 1, 1], [1, 1, 2], [1, 1, 3], [1, 2, 2], [1, 2, 3], [1, 3, 3], [2, 2, 2], [2, 2, 3], [2, 3, 3], [3, 3, 3], ] self.assertListEqual(generate_ascending(3, [1, 2, 3]), expected)
def test_MaxValue_IsMidVal(self): expected = [ [1, 1, 1, 1], [1, 1, 1, 2], [1, 1, 1, 3], [1, 1, 2, 2], [1, 1, 2, 3], [1, 1, 3, 3], [1, 2, 2, 2], [1, 2, 2, 3], [1, 2, 3, 3], [1, 3, 3, 3], [2, 2, 2, 2], [2, 2, 2, 3], ] self.assertListEqual( generate_ascending(4, [1, 2, 3], max_value=[2, 2, 2, 3]), expected)
def test_MaxValue_TooLong(self): self.assertRaises( MaxValueMismatch, lambda: generate_ascending( 4, [1, 2, 3], max_value=[1, 2, 3, 4, 5]))
def test_MinValue_TooShort(self): self.assertRaises( MinValueMismatch, lambda: generate_ascending(4, [1, 2, 3], min_value=[1, 2]))
def test_DoubleDigit(self): expected = [[1, 1], [1, 2], [1, 3], [2, 2], [2, 3], [3, 3]] self.assertListEqual(generate_ascending(2, [1, 2, 3]), expected)
def test_SingleDigit(self): self.assertListEqual(generate_ascending(1, [1, 2, 3]), [[1], [2], [3]])
def test_ZeroLen(self): self.assertListEqual(generate_ascending(0, [1, 2, 3]), [])