-
Notifications
You must be signed in to change notification settings - Fork 0
/
diamond_test.py
91 lines (81 loc) · 4.42 KB
/
diamond_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import unittest
from diamond import rows
# Tests adapted from `problem-specifications//canonical-data.json`
class DiamondTest(unittest.TestCase):
def test_degenerate_case_with_a_single_a_row(self):
result = ["A"]
self.assertEqual(rows("A"), result)
def test_degenerate_case_with_no_row_containing_3_distinct_groups_of_spaces(self):
result = [" A ", "B B", " A "]
self.assertEqual(rows("B"), result)
def test_smallest_non_degenerate_case_with_odd_diamond_side_length(self):
result = [" A ", " B B ", "C C", " B B ", " A "]
self.assertEqual(rows("C"), result)
def test_smallest_non_degenerate_case_with_even_diamond_side_length(self):
result = [
" A ",
" B B ",
" C C ",
"D D",
" C C ",
" B B ",
" A ",
]
self.assertEqual(rows("D"), result)
def test_largest_possible_diamond(self):
result = [
" A ",
" B B ",
" C C ",
" D D ",
" E E ",
" F F ",
" G G ",
" H H ",
" I I ",
" J J ",
" K K ",
" L L ",
" M M ",
" N N ",
" O O ",
" P P ",
" Q Q ",
" R R ",
" S S ",
" T T ",
" U U ",
" V V ",
" W W ",
" X X ",
" Y Y ",
"Z Z",
" Y Y ",
" X X ",
" W W ",
" V V ",
" U U ",
" T T ",
" S S ",
" R R ",
" Q Q ",
" P P ",
" O O ",
" N N ",
" M M ",
" L L ",
" K K ",
" J J ",
" I I ",
" H H ",
" G G ",
" F F ",
" E E ",
" D D ",
" C C ",
" B B ",
" A ",
]
self.assertEqual(rows("Z"), result)
if __name__ == "__main__":
unittest.main()