|
1 | 1 | import unittest |
2 | | - |
3 | | -from . import longest_ones |
| 2 | +from typing import List |
| 3 | +from parameterized import parameterized |
| 4 | +from puzzles.arrays.max_consecutive_ones import longest_ones, find_max_consecutive_ones |
4 | 5 |
|
5 | 6 |
|
6 | 7 | class MaxConsecutiveOnesTestCase(unittest.TestCase): |
7 | | - def test_one(self): |
8 | | - """should return 6 from nums = [1,1,1,0,0,0,1,1,1,1,0], k = 2""" |
9 | | - nums = [1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0] |
10 | | - k = 2 |
11 | | - expected = 6 |
| 8 | + |
| 9 | + @parameterized.expand([ |
| 10 | + ([1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0], 2, 6), |
| 11 | + ([0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1], 3, 10), |
| 12 | + ]) |
| 13 | + def test_longest_ones(self, nums: List[int], k: int, expected: int): |
12 | 14 | actual = longest_ones(nums, k) |
13 | 15 | self.assertEqual(expected, actual) |
14 | 16 |
|
15 | | - def test_two(self): |
16 | | - """should return 10 from nums = [0,0,1,1,0,0,1,1,1,0,1,1,0,0,0,1,1,1,1], k = 3""" |
17 | | - nums = [0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1] |
18 | | - k = 3 |
19 | | - expected = 10 |
20 | | - actual = longest_ones(nums, k) |
| 17 | + @parameterized.expand([ |
| 18 | + ([1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0], 4), |
| 19 | + ([0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1], 4), |
| 20 | + ([1,1,0,0,1,1,1,0,0,1,0], 3), |
| 21 | + ([1,1,0,0,1,1], 2), |
| 22 | + ([1,1,1,0,1,1,1,1], 4), |
| 23 | + ([0,0,0,0], 0), |
| 24 | + ]) |
| 25 | + def test_find_max_consecutive_ones(self, nums: List[int], expected: int): |
| 26 | + actual = find_max_consecutive_ones(nums) |
21 | 27 | self.assertEqual(expected, actual) |
22 | 28 |
|
23 | 29 |
|
|
0 commit comments