|
1 | 1 | # These tests are auto-generated with test data from: |
2 | 2 | # https://github.com/exercism/problem-specifications/tree/main/exercises/transpose/canonical-data.json |
3 | | -# File last updated on 2023-07-19 |
| 3 | +# File last updated on 2024-08-26 |
4 | 4 |
|
5 | 5 | import unittest |
6 | 6 |
|
|
11 | 11 |
|
12 | 12 | class TransposeTest(unittest.TestCase): |
13 | 13 | def test_empty_string(self): |
14 | | - lines = [] |
15 | | - expected = [] |
16 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 14 | + text = "" |
| 15 | + expected = "" |
| 16 | + |
| 17 | + self.assertEqual(transpose(text), expected) |
17 | 18 |
|
18 | 19 | def test_two_characters_in_a_row(self): |
19 | | - lines = ["A1"] |
20 | | - expected = ["A", "1"] |
21 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 20 | + text = "A1" |
| 21 | + expected = "A\n1" |
| 22 | + |
| 23 | + self.assertEqual(transpose(text), expected) |
22 | 24 |
|
23 | 25 | def test_two_characters_in_a_column(self): |
24 | | - lines = ["A", "1"] |
25 | | - expected = ["A1"] |
26 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 26 | + text = "A\n1" |
| 27 | + expected = "A1" |
| 28 | + |
| 29 | + self.assertEqual(transpose(text), expected) |
27 | 30 |
|
28 | 31 | def test_simple(self): |
29 | | - lines = ["ABC", "123"] |
30 | | - expected = ["A1", "B2", "C3"] |
31 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 32 | + text = "ABC\n123" |
| 33 | + expected = "A1\nB2\nC3" |
| 34 | + |
| 35 | + self.assertEqual(transpose(text), expected) |
32 | 36 |
|
33 | 37 | def test_single_line(self): |
34 | | - lines = ["Single line."] |
35 | | - expected = ["S", "i", "n", "g", "l", "e", " ", "l", "i", "n", "e", "."] |
36 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 38 | + text = "Single line." |
| 39 | + expected = "S\ni\nn\ng\nl\ne\n \nl\ni\nn\ne\n." |
| 40 | + |
| 41 | + self.assertEqual(transpose(text), expected) |
37 | 42 |
|
38 | 43 | def test_first_line_longer_than_second_line(self): |
39 | | - lines = ["The fourth line.", "The fifth line."] |
40 | | - expected = [ |
41 | | - "TT", |
42 | | - "hh", |
43 | | - "ee", |
44 | | - " ", |
45 | | - "ff", |
46 | | - "oi", |
47 | | - "uf", |
48 | | - "rt", |
49 | | - "th", |
50 | | - "h ", |
51 | | - " l", |
52 | | - "li", |
53 | | - "in", |
54 | | - "ne", |
55 | | - "e.", |
56 | | - ".", |
57 | | - ] |
58 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 44 | + text = "The fourth line.\nThe fifth line." |
| 45 | + expected = "TT\nhh\nee\n \nff\noi\nuf\nrt\nth\nh \n l\nli\nin\nne\ne.\n." |
| 46 | + |
| 47 | + self.assertEqual(transpose(text), expected) |
59 | 48 |
|
60 | 49 | def test_second_line_longer_than_first_line(self): |
61 | | - lines = ["The first line.", "The second line."] |
62 | | - expected = [ |
63 | | - "TT", |
64 | | - "hh", |
65 | | - "ee", |
66 | | - " ", |
67 | | - "fs", |
68 | | - "ie", |
69 | | - "rc", |
70 | | - "so", |
71 | | - "tn", |
72 | | - " d", |
73 | | - "l ", |
74 | | - "il", |
75 | | - "ni", |
76 | | - "en", |
77 | | - ".e", |
78 | | - " .", |
79 | | - ] |
80 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 50 | + text = "The first line.\nThe second line." |
| 51 | + expected = "TT\nhh\nee\n \nfs\nie\nrc\nso\ntn\n d\nl \nil\nni\nen\n.e\n ." |
| 52 | + |
| 53 | + self.assertEqual(transpose(text), expected) |
81 | 54 |
|
82 | 55 | def test_mixed_line_length(self): |
83 | | - lines = ["The longest line.", "A long line.", "A longer line.", "A line."] |
84 | | - expected = [ |
85 | | - "TAAA", |
86 | | - "h ", |
87 | | - "elll", |
88 | | - " ooi", |
89 | | - "lnnn", |
90 | | - "ogge", |
91 | | - "n e.", |
92 | | - "glr", |
93 | | - "ei ", |
94 | | - "snl", |
95 | | - "tei", |
96 | | - " .n", |
97 | | - "l e", |
98 | | - "i .", |
99 | | - "n", |
100 | | - "e", |
101 | | - ".", |
102 | | - ] |
103 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 56 | + text = "The longest line.\nA long line.\nA longer line.\nA line." |
| 57 | + expected = "TAAA\nh \nelll\n ooi\nlnnn\nogge\nn e.\nglr\nei \nsnl\ntei\n .n\nl e\ni .\nn\ne\n." |
| 58 | + |
| 59 | + self.assertEqual(transpose(text), expected) |
104 | 60 |
|
105 | 61 | def test_square(self): |
106 | | - lines = ["HEART", "EMBER", "ABUSE", "RESIN", "TREND"] |
107 | | - expected = ["HEART", "EMBER", "ABUSE", "RESIN", "TREND"] |
108 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 62 | + text = "HEART\nEMBER\nABUSE\nRESIN\nTREND" |
| 63 | + expected = "HEART\nEMBER\nABUSE\nRESIN\nTREND" |
| 64 | + |
| 65 | + self.assertEqual(transpose(text), expected) |
109 | 66 |
|
110 | 67 | def test_rectangle(self): |
111 | | - lines = ["FRACTURE", "OUTLINED", "BLOOMING", "SEPTETTE"] |
112 | | - expected = ["FOBS", "RULE", "ATOP", "CLOT", "TIME", "UNIT", "RENT", "EDGE"] |
113 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 68 | + text = "FRACTURE\nOUTLINED\nBLOOMING\nSEPTETTE" |
| 69 | + expected = "FOBS\nRULE\nATOP\nCLOT\nTIME\nUNIT\nRENT\nEDGE" |
| 70 | + |
| 71 | + self.assertEqual(transpose(text), expected) |
114 | 72 |
|
115 | 73 | def test_triangle(self): |
116 | | - lines = ["T", "EE", "AAA", "SSSS", "EEEEE", "RRRRRR"] |
117 | | - expected = ["TEASER", " EASER", " ASER", " SER", " ER", " R"] |
118 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 74 | + text = "T\nEE\nAAA\nSSSS\nEEEEE\nRRRRRR" |
| 75 | + expected = "TEASER\n EASER\n ASER\n SER\n ER\n R" |
| 76 | + |
| 77 | + self.assertEqual(transpose(text), expected) |
119 | 78 |
|
120 | 79 | def test_jagged_triangle(self): |
121 | | - lines = ["11", "2", "3333", "444", "555555", "66666"] |
122 | | - expected = ["123456", "1 3456", " 3456", " 3 56", " 56", " 5"] |
123 | | - self.assertEqual(transpose("\n".join(lines)), "\n".join(expected)) |
| 80 | + text = "11\n2\n3333\n444\n555555\n66666" |
| 81 | + expected = "123456\n1 3456\n 3456\n 3 56\n 56\n 5" |
| 82 | + |
| 83 | + self.assertEqual(transpose(text), expected) |
0 commit comments