|
3 | 3 | from flatten_array import flatten
|
4 | 4 |
|
5 | 5 |
|
| 6 | +# Tests adapted from `problem-specifications//canonical-data.json` @ v1.1.0 |
| 7 | + |
6 | 8 | class FlattenArrayTests(unittest.TestCase):
|
7 | 9 |
|
8 | 10 | def test_no_nesting(self):
|
9 | 11 | self.assertEqual(flatten([0, 1, 2]), [0, 1, 2])
|
10 | 12 |
|
11 |
| - def test_one_level_nesting(self): |
12 |
| - self.assertEqual(flatten([0, [1], 2]), [0, 1, 2]) |
13 |
| - |
14 |
| - def test_two_level_nesting(self): |
15 |
| - self.assertEqual(flatten([0, [1, [2, 3]], [4]]), [0, 1, 2, 3, 4]) |
16 |
| - |
17 |
| - def test_empty_nested_lists(self): |
18 |
| - self.assertEqual(flatten([[()]]), []) |
| 13 | + def test_flatten_integers(self): |
| 14 | + inputs = [1, [2, 3, 4, 5, 6, 7], 8] |
| 15 | + expected = [1, 2, 3, 4, 5, 6, 7, 8] |
| 16 | + self.assertEqual(flatten(inputs), expected) |
19 | 17 |
|
20 |
| - def test_with_none_values(self): |
21 |
| - inputs = [0, 2, [[2, 3], 8, [[100]], None, [[None]]], -2] |
22 |
| - expected = [0, 2, 2, 3, 8, 100, -2] |
| 18 | + def test_five_level_nesting(self): |
| 19 | + inputs = [0, 2, [[2, 3], 8, 100, 4, [[[50]]]], -2] |
| 20 | + expected = [0, 2, 2, 3, 8, 100, 4, 50, -2] |
23 | 21 | self.assertEqual(flatten(inputs), expected)
|
24 | 22 |
|
25 | 23 | def test_six_level_nesting(self):
|
26 | 24 | inputs = [1, [2, [[3]], [4, [[5]]], 6, 7], 8]
|
27 | 25 | expected = [1, 2, 3, 4, 5, 6, 7, 8]
|
28 | 26 | self.assertEqual(flatten(inputs), expected)
|
29 | 27 |
|
| 28 | + def test_with_none_values(self): |
| 29 | + inputs = [0, 2, [[2, 3], 8, [[100]], None, [[None]]], -2] |
| 30 | + expected = [0, 2, 2, 3, 8, 100, -2] |
| 31 | + self.assertEqual(flatten(inputs), expected) |
| 32 | + |
30 | 33 | def test_all_values_are_none(self):
|
31 | 34 | inputs = [None, [[[None]]], None, None, [[None, None], None], None]
|
32 | 35 | expected = []
|
33 | 36 | self.assertEqual(flatten(inputs), expected)
|
34 | 37 |
|
| 38 | + # Additional tests for this track |
| 39 | + def test_empty_nested_lists(self): |
| 40 | + self.assertEqual(flatten([[()]]), []) |
| 41 | + |
35 | 42 | def test_strings(self):
|
36 | 43 | self.assertEqual(flatten(['0', ['1', '2']]), ['0', '1', '2'])
|
37 | 44 |
|
|
0 commit comments