1
- from arrays . delete_nth import delete_nth , delete_nth_naive
2
- from arrays . flatten import flatten , flatten_iter
3
- from arrays . garage import garage
4
- from arrays . josephus_problem import josephus
5
- from arrays . longest_non_repeat import longest_non_repeat , longest_non_repeat_two
6
- from arrays . merge_intervals import Interval , merge_v2
7
- from arrays . missing_ranges import missing_ranges
8
- from arrays . move_zeros_to_end import move_zeros
9
- from arrays . plus_one import plus_one , plus_one_v2 , plus_one_v3
10
- from arrays . rotate_array import rotate_v1 , rotate_v2 , rotate_v3
11
- from arrays . summary_ranges import summary_ranges
12
- from arrays . three_sum import three_sum
13
- from arrays . two_sum import two_sum
1
+ from algorithms . arrays import delete_nth , delete_nth_naive
2
+ from algorithms . arrays import flatten , flatten_iter
3
+ from algorithms . arrays import garage
4
+ from algorithms . arrays import josephus
5
+ from algorithms . arrays import longest_non_repeat_v1 , longest_non_repeat_v2
6
+ from algorithms . arrays import Interval , merge_intervals
7
+ from algorithms . arrays import missing_ranges
8
+ from algorithms . arrays import move_zeros
9
+ from algorithms . arrays import plus_one_v1 , plus_one_v2 , plus_one_v3
10
+ from algorithms . arrays import rotate_v1 , rotate_v2 , rotate_v3
11
+ from algorithms . arrays import summarize_ranges
12
+ from algorithms . arrays import three_sum
13
+ from algorithms . arrays import two_sum
14
14
15
15
import unittest
16
16
@@ -37,15 +37,19 @@ class TestDeleteNth(unittest.TestCase):
37
37
38
38
def test_delete_nth_naive (self ):
39
39
40
- self .assertListEqual (delete_nth_naive ([20 , 37 , 20 , 21 , 37 , 21 , 21 ], n = 1 ),
40
+ self .assertListEqual (delete_nth_naive (
41
+ [20 , 37 , 20 , 21 , 37 , 21 , 21 ], n = 1 ),
41
42
[20 , 37 , 21 ])
42
- self .assertListEqual (delete_nth_naive ([1 , 1 , 3 , 3 , 7 , 2 , 2 , 2 , 2 ], n = 3 ),
43
+ self .assertListEqual (delete_nth_naive (
44
+ [1 , 1 , 3 , 3 , 7 , 2 , 2 , 2 , 2 ], n = 3 ),
43
45
[1 , 1 , 3 , 3 , 7 , 2 , 2 , 2 ])
44
- self .assertListEqual (delete_nth_naive ([1 , 2 , 3 , 1 , 1 , 2 , 1 , 2 , 3 , 3 , 2 , 4 , 5 , 3 , 1 ], n = 3 ),
46
+ self .assertListEqual (delete_nth_naive (
47
+ [1 , 2 , 3 , 1 , 1 , 2 , 1 , 2 , 3 , 3 , 2 , 4 , 5 , 3 , 1 ], n = 3 ),
45
48
[1 , 2 , 3 , 1 , 1 , 2 , 2 , 3 , 3 , 4 , 5 ])
46
49
self .assertListEqual (delete_nth_naive ([], n = 5 ),
47
50
[])
48
- self .assertListEqual (delete_nth_naive ([1 , 2 , 3 , 1 , 1 , 2 , 1 , 2 , 3 , 3 , 2 , 4 , 5 , 3 , 1 ], n = 0 ),
51
+ self .assertListEqual (delete_nth_naive (
52
+ [1 , 2 , 3 , 1 , 1 , 2 , 1 , 2 , 3 , 3 , 2 , 4 , 5 , 3 , 1 ], n = 0 ),
49
53
[])
50
54
51
55
def test_delete_nth (self ):
@@ -117,32 +121,35 @@ def test_garage(self):
117
121
steps , seq = garage (initial , final )
118
122
119
123
self .assertEqual (steps , 4 )
120
- self .assertListEqual (seq , [[0 , 2 , 3 , 1 , 4 ], [2 , 0 , 3 , 1 , 4 ], [2 , 3 , 0 , 1 , 4 ], [0 , 3 , 2 , 1 , 4 ]])
124
+ self .assertListEqual (seq , [[0 , 2 , 3 , 1 , 4 ],
125
+ [2 , 0 , 3 , 1 , 4 ],
126
+ [2 , 3 , 0 , 1 , 4 ],
127
+ [0 , 3 , 2 , 1 , 4 ]])
121
128
122
129
123
130
class TestLongestNonRepeat (unittest .TestCase ):
124
131
125
- def test_longest_non_repeat (self ):
132
+ def test_longest_non_repeat_v1 (self ):
126
133
127
134
string = "abcabcbb"
128
- self .assertEqual (longest_non_repeat (string ), 3 )
135
+ self .assertEqual (longest_non_repeat_v1 (string ), 3 )
129
136
130
137
string = "bbbbb"
131
- self .assertEqual (longest_non_repeat (string ), 1 )
138
+ self .assertEqual (longest_non_repeat_v1 (string ), 1 )
132
139
133
140
string = "pwwkew"
134
- self .assertEqual (longest_non_repeat (string ), 3 )
141
+ self .assertEqual (longest_non_repeat_v1 (string ), 3 )
135
142
136
- def test_longest_non_repeat_two (self ):
143
+ def test_longest_non_repeat_v2 (self ):
137
144
138
145
string = "abcabcbb"
139
- self .assertEqual (longest_non_repeat_two (string ), 3 )
146
+ self .assertEqual (longest_non_repeat_v2 (string ), 3 )
140
147
141
148
string = "bbbbb"
142
- self .assertEqual (longest_non_repeat_two (string ), 1 )
149
+ self .assertEqual (longest_non_repeat_v2 (string ), 1 )
143
150
144
151
string = "pwwkew"
145
- self .assertEqual (longest_non_repeat_two (string ), 3 )
152
+ self .assertEqual (longest_non_repeat_v2 (string ), 3 )
146
153
147
154
148
155
class TestMergeInterval (unittest .TestCase ):
@@ -156,9 +163,9 @@ def test_merge(self):
156
163
[Interval (1 , 6 ), Interval (8 , 10 ), Interval (15 , 18 )]
157
164
)
158
165
159
- def test_merge_v2 (self ):
166
+ def test_merge_intervals (self ):
160
167
interval_list = [[1 , 3 ], [2 , 6 ], [8 , 10 ], [15 , 18 ]]
161
- merged_intervals = merge_v2 (interval_list )
168
+ merged_intervals = merge_intervals (interval_list )
162
169
self .assertEqual (
163
170
merged_intervals ,
164
171
[[1 , 6 ], [8 , 10 ], [15 , 18 ]]
@@ -172,7 +179,8 @@ def test_missing_ranges(self):
172
179
arr = [3 , 5 , 10 , 11 , 12 , 15 , 19 ]
173
180
174
181
self .assertListEqual (missing_ranges (arr , 0 , 20 ),
175
- [(0 , 2 ), (4 , 4 ), (6 , 9 ), (13 , 14 ), (16 , 18 ), (20 , 20 )])
182
+ [(0 , 2 ), (4 , 4 ), (6 , 9 ),
183
+ (13 , 14 ), (16 , 18 ), (20 , 20 )])
176
184
177
185
self .assertListEqual (missing_ranges (arr , 6 , 100 ),
178
186
[(6 , 9 ), (13 , 14 ), (16 , 18 ), (20 , 100 )])
@@ -191,64 +199,79 @@ def test_move_zeros(self):
191
199
192
200
class TestPlusOne (unittest .TestCase ):
193
201
194
- def test_plus_one (self ):
202
+ def test_plus_one_v1 (self ):
195
203
196
- self .assertListEqual (plus_one ([0 ]), [1 ])
197
- self .assertListEqual (plus_one ([9 ]), [1 , 0 ])
198
- self .assertListEqual (plus_one ([1 , 0 , 9 ]), [1 , 1 , 0 ])
199
- self .assertListEqual (plus_one ([9 , 9 , 8 , 0 , 0 , 9 ]), [9 , 9 , 8 , 0 , 1 , 0 ])
200
- self .assertListEqual (plus_one ([9 , 9 , 9 , 9 ]), [1 , 0 , 0 , 0 , 0 ])
204
+ self .assertListEqual (plus_one_v1 ([0 ]), [1 ])
205
+ self .assertListEqual (plus_one_v1 ([9 ]), [1 , 0 ])
206
+ self .assertListEqual (plus_one_v1 ([1 , 0 , 9 ]), [1 , 1 , 0 ])
207
+ self .assertListEqual (plus_one_v1 ([9 , 9 , 8 , 0 , 0 , 9 ]),
208
+ [9 , 9 , 8 , 0 , 1 , 0 ])
209
+ self .assertListEqual (plus_one_v1 ([9 , 9 , 9 , 9 ]),
210
+ [1 , 0 , 0 , 0 , 0 ])
201
211
202
212
def test_plus_one_v2 (self ):
203
213
204
214
self .assertListEqual (plus_one_v2 ([0 ]), [1 ])
205
215
self .assertListEqual (plus_one_v2 ([9 ]), [1 , 0 ])
206
216
self .assertListEqual (plus_one_v2 ([1 , 0 , 9 ]), [1 , 1 , 0 ])
207
- self .assertListEqual (plus_one_v2 ([9 , 9 , 8 , 0 , 0 , 9 ]), [9 , 9 , 8 , 0 , 1 , 0 ])
208
- self .assertListEqual (plus_one_v2 ([9 , 9 , 9 , 9 ]), [1 , 0 , 0 , 0 , 0 ])
217
+ self .assertListEqual (plus_one_v2 ([9 , 9 , 8 , 0 , 0 , 9 ]),
218
+ [9 , 9 , 8 , 0 , 1 , 0 ])
219
+ self .assertListEqual (plus_one_v2 ([9 , 9 , 9 , 9 ]),
220
+ [1 , 0 , 0 , 0 , 0 ])
209
221
210
222
def test_plus_one_v3 (self ):
211
223
212
224
self .assertListEqual (plus_one_v3 ([0 ]), [1 ])
213
225
self .assertListEqual (plus_one_v3 ([9 ]), [1 , 0 ])
214
226
self .assertListEqual (plus_one_v3 ([1 , 0 , 9 ]), [1 , 1 , 0 ])
215
- self .assertListEqual (plus_one_v3 ([9 , 9 , 8 , 0 , 0 , 9 ]), [9 , 9 , 8 , 0 , 1 , 0 ])
216
- self .assertListEqual (plus_one_v3 ([9 , 9 , 9 , 9 ]), [1 , 0 , 0 , 0 , 0 ])
227
+ self .assertListEqual (plus_one_v3 ([9 , 9 , 8 , 0 , 0 , 9 ]),
228
+ [9 , 9 , 8 , 0 , 1 , 0 ])
229
+ self .assertListEqual (plus_one_v3 ([9 , 9 , 9 , 9 ]),
230
+ [1 , 0 , 0 , 0 , 0 ])
217
231
218
232
219
233
class TestRotateArray (unittest .TestCase ):
220
234
221
235
def test_rotate_v1 (self ):
222
236
223
- self .assertListEqual (rotate_v1 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 3 ), [5 , 6 , 7 , 1 , 2 , 3 , 4 ])
224
- self .assertListEqual (rotate_v1 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 1 ), [7 , 1 , 2 , 3 , 4 , 5 , 6 ])
225
- self .assertListEqual (rotate_v1 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 7 ), [1 , 2 , 3 , 4 , 5 , 6 , 7 ])
237
+ self .assertListEqual (rotate_v1 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 3 ),
238
+ [5 , 6 , 7 , 1 , 2 , 3 , 4 ])
239
+ self .assertListEqual (rotate_v1 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 1 ),
240
+ [7 , 1 , 2 , 3 , 4 , 5 , 6 ])
241
+ self .assertListEqual (rotate_v1 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 7 ),
242
+ [1 , 2 , 3 , 4 , 5 , 6 , 7 ])
226
243
self .assertListEqual (rotate_v1 ([1 , 2 ], k = 111 ), [2 , 1 ])
227
244
228
245
def test_rotate_v2 (self ):
229
246
230
- self .assertListEqual (rotate_v2 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 3 ), [5 , 6 , 7 , 1 , 2 , 3 , 4 ])
231
- self .assertListEqual (rotate_v2 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 1 ), [7 , 1 , 2 , 3 , 4 , 5 , 6 ])
232
- self .assertListEqual (rotate_v2 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 7 ), [1 , 2 , 3 , 4 , 5 , 6 , 7 ])
247
+ self .assertListEqual (rotate_v2 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 3 ),
248
+ [5 , 6 , 7 , 1 , 2 , 3 , 4 ])
249
+ self .assertListEqual (rotate_v2 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 1 ),
250
+ [7 , 1 , 2 , 3 , 4 , 5 , 6 ])
251
+ self .assertListEqual (rotate_v2 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 7 ),
252
+ [1 , 2 , 3 , 4 , 5 , 6 , 7 ])
233
253
self .assertListEqual (rotate_v2 ([1 , 2 ], k = 111 ), [2 , 1 ])
234
254
235
255
def test_rotate_v3 (self ):
236
256
237
- self .assertListEqual (rotate_v3 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 3 ), [5 , 6 , 7 , 1 , 2 , 3 , 4 ])
238
- self .assertListEqual (rotate_v3 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 1 ), [7 , 1 , 2 , 3 , 4 , 5 , 6 ])
239
- self .assertListEqual (rotate_v3 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 7 ), [1 , 2 , 3 , 4 , 5 , 6 , 7 ])
257
+ self .assertListEqual (rotate_v3 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 3 ),
258
+ [5 , 6 , 7 , 1 , 2 , 3 , 4 ])
259
+ self .assertListEqual (rotate_v3 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 1 ),
260
+ [7 , 1 , 2 , 3 , 4 , 5 , 6 ])
261
+ self .assertListEqual (rotate_v3 ([1 , 2 , 3 , 4 , 5 , 6 , 7 ], k = 7 ),
262
+ [1 , 2 , 3 , 4 , 5 , 6 , 7 ])
240
263
self .assertListEqual (rotate_v3 ([1 , 2 ], k = 111 ), [2 , 1 ])
241
264
242
265
243
266
class TestSummaryRanges (unittest .TestCase ):
244
267
245
- def test_summary_ranges (self ):
268
+ def test_summarize_ranges (self ):
246
269
247
- self .assertListEqual (summary_ranges ([0 , 1 , 2 , 4 , 5 , 7 ]),
270
+ self .assertListEqual (summarize_ranges ([0 , 1 , 2 , 4 , 5 , 7 ]),
248
271
[(0 , 2 ), (4 , 5 ), (7 , 7 )])
249
- self .assertListEqual (summary_ranges ([- 5 , - 4 , - 3 , 1 , 2 , 4 , 5 , 6 ]),
272
+ self .assertListEqual (summarize_ranges ([- 5 , - 4 , - 3 , 1 , 2 , 4 , 5 , 6 ]),
250
273
[(- 5 , - 3 ), (1 , 2 ), (4 , 6 )])
251
- self .assertListEqual (summary_ranges ([- 2 , - 1 , 0 , 1 , 2 ]),
274
+ self .assertListEqual (summarize_ranges ([- 2 , - 1 , 0 , 1 , 2 ]),
252
275
[(- 2 , 2 )])
253
276
254
277
0 commit comments