|
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