|
13 | 13 | from ..exercises.challenge_13 import is_monotonic |
14 | 14 | from ..exercises.challenge_14 import add_matrices |
15 | 15 | from ..exercises.challenge_15 import transpose_matrix |
| 16 | +from ..exercises.challenge_16 import is_word_in_matrix |
| 17 | +from ..exercises.challenge_17 import compare_versions |
| 18 | +from ..exercises.challenge_18 import NestedIterator |
16 | 19 |
|
17 | 20 |
|
18 | 21 | def test_challenge_01(): |
@@ -75,3 +78,80 @@ def test_challenge_14(): |
75 | 78 |
|
76 | 79 | def test_challenge_15(): |
77 | 80 | assert transpose_matrix([]) == [] |
| 81 | + |
| 82 | + |
| 83 | +def test_challenge_16(): |
| 84 | + assert is_word_in_matrix([], "") is False |
| 85 | + assert ( |
| 86 | + is_word_in_matrix( |
| 87 | + [["A", "B", "C", "E"], ["S", "F", "C", "S"], ["A", "D", "E", "E"]], "ABCCED" |
| 88 | + ) |
| 89 | + is True |
| 90 | + ) |
| 91 | + assert ( |
| 92 | + is_word_in_matrix( |
| 93 | + [["A", "B", "C", "E"], ["S", "F", "C", "S"], ["A", "D", "E", "E"]], "SEE" |
| 94 | + ) |
| 95 | + is True |
| 96 | + ) |
| 97 | + assert ( |
| 98 | + is_word_in_matrix( |
| 99 | + [["A", "B", "C", "E"], ["S", "F", "C", "S"], ["A", "D", "E", "E"]], "ABCB" |
| 100 | + ) |
| 101 | + is False |
| 102 | + ) |
| 103 | + assert ( |
| 104 | + is_word_in_matrix( |
| 105 | + [["A", "B", "C", "E"], ["S", "F", "C", "S"], ["A", "D", "E", "E"]], |
| 106 | + "ABCESEEDAS", |
| 107 | + ) |
| 108 | + is True |
| 109 | + ) |
| 110 | + assert ( |
| 111 | + is_word_in_matrix( |
| 112 | + [["A", "B", "C", "E"], ["S", "F", "C", "S"], ["A", "D", "E", "E"]], |
| 113 | + "ABCESEDAS", |
| 114 | + ) |
| 115 | + is False |
| 116 | + ) |
| 117 | + |
| 118 | + |
| 119 | +def test_challenge_17(): |
| 120 | + assert compare_versions("1.01", "1.001") == 0 |
| 121 | + assert compare_versions("1.0", "1.0.0") == 0 |
| 122 | + assert compare_versions("0.1", "1.1") == -1 |
| 123 | + assert compare_versions("1.0.1", "1") == 1 |
| 124 | + assert compare_versions("1.0.1", "1.0.10") == -1 |
| 125 | + assert compare_versions("1.0.1", "1.0.1") == 0 |
| 126 | + assert compare_versions("1.0.1", "1.0.2") == -1 |
| 127 | + assert compare_versions("1.0.1", "1.0.0") == 1 |
| 128 | + |
| 129 | + |
| 130 | +def test_challenge_18(): |
| 131 | + iterator0 = NestedIterator([[1, [2, [3, [4]]]]]) |
| 132 | + assert iterator0.next() == 1 |
| 133 | + assert iterator0.next() == 2 |
| 134 | + assert iterator0.next() == 3 |
| 135 | + assert iterator0.next() == 4 |
| 136 | + assert iterator0.hasNext() is False |
| 137 | + |
| 138 | + iterator1 = NestedIterator([[1, 2], [3], [4, 5, 6]]) |
| 139 | + assert iterator1.next() == 1 |
| 140 | + assert iterator1.next() == 2 |
| 141 | + assert iterator1.next() == 3 |
| 142 | + assert iterator1.next() == 4 |
| 143 | + assert iterator1.next() == 5 |
| 144 | + assert iterator1.next() == 6 |
| 145 | + assert iterator1.hasNext() is False |
| 146 | + |
| 147 | + iterator2 = NestedIterator([[1, 2, 3], [4, [5, 6]], [7, 8, 9]]) |
| 148 | + assert iterator2.next() == 1 |
| 149 | + assert iterator2.next() == 2 |
| 150 | + assert iterator2.next() == 3 |
| 151 | + assert iterator2.next() == 4 |
| 152 | + assert iterator2.next() == 5 |
| 153 | + assert iterator2.next() == 6 |
| 154 | + assert iterator2.next() == 7 |
| 155 | + assert iterator2.next() == 8 |
| 156 | + assert iterator2.next() == 9 |
| 157 | + assert iterator2.hasNext() is False |
0 commit comments