Skip to content

Commit 9badf3d

Browse files
committed
test: add more test cases
1 parent 16c6e10 commit 9badf3d

File tree

5 files changed

+161
-51
lines changed

5 files changed

+161
-51
lines changed

.templates/leetcode/json/lru_cache.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
"name": "test_lru_cache",
5858
"signature": "(self, operations: list[str], inputs: list[list[int]], expected: list[int | None])",
5959
"parametrize": "operations, inputs, expected",
60-
"test_cases": "[(['LRUCache', 'put', 'put', 'get', 'put', 'get', 'put', 'get', 'get', 'get'], [[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]], [None, None, None, 1, None, -1, None, -1, 3, 4]), (['LRUCache', 'get', 'put', 'get', 'put', 'put', 'get', 'get'], [[2], [2], [2, 6], [1], [1, 5], [1, 2], [1], [2]], [None, -1, None, -1, None, None, 2, 6]), (['LRUCache', 'put', 'get', 'put', 'get', 'get'], [[1], [2, 1], [2], [3, 2], [2], [3]], [None, None, 1, None, -1, 2])]",
60+
"test_cases": "[(['LRUCache', 'put', 'put', 'get', 'put', 'get', 'put', 'get', 'get', 'get'], [[2], [1, 1], [2, 2], [1], [3, 3], [2], [4, 4], [1], [3], [4]], [None, None, None, 1, None, -1, None, -1, 3, 4]), (['LRUCache', 'get', 'put', 'get', 'put', 'put', 'get', 'get'], [[2], [2], [2, 6], [1], [1, 5], [1, 2], [1], [2]], [None, -1, None, -1, None, None, 2, 6]), (['LRUCache', 'put', 'get', 'put', 'get', 'get'], [[1], [2, 1], [2], [3, 2], [2], [3]], [None, None, 1, None, -1, 2]), (['LRUCache', 'get'], [[1], [1]], [None, -1]), (['LRUCache', 'put', 'get'], [[1], [1, 100], [1]], [None, None, 100]), (['LRUCache', 'put', 'put', 'get', 'get'], [[2], [1, 1], [2, 2], [1], [2]], [None, None, None, 1, 2]), (['LRUCache', 'put', 'put', 'put', 'get', 'get', 'get'], [[2], [1, 1], [2, 2], [3, 3], [1], [2], [3]], [None, None, None, None, -1, 2, 3]), (['LRUCache', 'put', 'get', 'put', 'get', 'put', 'get'], [[3], [1, 1], [1], [2, 2], [2], [3, 3], [3]], [None, None, 1, None, 2, None, 3]), (['LRUCache', 'put', 'put', 'put', 'put', 'get', 'get'], [[3], [1, 1], [2, 2], [3, 3], [4, 4], [4], [3]], [None, None, None, None, None, 4, 3]), (['LRUCache', 'put', 'put', 'get', 'put', 'get', 'get'], [[2], [2, 1], [1, 1], [2], [4, 1], [1], [2]], [None, None, None, 1, None, -1, 1]), (['LRUCache', 'put', 'put', 'get', 'put', 'put', 'get'], [[2], [2, 1], [2, 2], [2], [1, 1], [4, 1], [2]], [None, None, None, 2, None, None, -1]), (['LRUCache', 'put', 'put', 'put', 'get', 'put', 'get', 'get', 'get', 'get'], [[3], [1, 1], [2, 2], [3, 3], [2], [4, 4], [1], [3], [4], [2]], [None, None, None, None, 2, None, -1, 3, 4, 2])]",
6161
"body": " result, _ = run_lru_cache(LRUCache, operations, inputs)\n assert_lru_cache(result, expected)"
6262
}
6363
]

.templates/leetcode/json/min_stack.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
"name": "test_min_stack",
6868
"signature": "(self, operations: list[str], inputs: list[list[int]], expected: list[int | None])",
6969
"parametrize": "operations, inputs, expected",
70-
"test_cases": "[(['MinStack', 'push', 'push', 'push', 'getMin', 'pop', 'top', 'getMin'], [[], [-2], [0], [-3], [], [], [], []], [None, None, None, None, -3, None, 0, -2]), (['MinStack', 'push', 'top', 'getMin', 'pop'], [[], [5], [], [], []], [None, None, 5, 5, None]), (['MinStack', 'push', 'push', 'push', 'getMin', 'pop', 'getMin', 'pop', 'getMin'], [[], [1], [1], [2], [], [], [], [], []], [None, None, None, None, 1, None, 1, None, 1])]",
70+
"test_cases": "[(['MinStack', 'push', 'push', 'push', 'getMin', 'pop', 'top', 'getMin'], [[], [-2], [0], [-3], [], [], [], []], [None, None, None, None, -3, None, 0, -2]), (['MinStack', 'push', 'top', 'getMin', 'pop'], [[], [5], [], [], []], [None, None, 5, 5, None]), (['MinStack', 'push', 'push', 'push', 'getMin', 'pop', 'getMin', 'pop', 'getMin'], [[], [1], [1], [2], [], [], [], [], []], [None, None, None, None, 1, None, 1, None, 1]), (['MinStack', 'push', 'getMin', 'top'], [[], [0], [], []], [None, None, 0, 0]), (['MinStack', 'push', 'push', 'getMin', 'push', 'getMin', 'pop', 'getMin'], [[], [2], [1], [], [0], [], [], []], [None, None, None, 1, None, 0, None, 1]), (['MinStack', 'push', 'push', 'push', 'top', 'getMin', 'pop', 'pop', 'top', 'getMin'], [[], [3], [1], [4], [], [], [], [], [], []], [None, None, None, None, 4, 1, None, None, 3, 3]), (['MinStack', 'push', 'push', 'getMin', 'pop', 'push', 'getMin'], [[], [-1], [-2], [], [], [0], []], [None, None, None, -2, None, None, -1]), (['MinStack', 'push', 'push', 'push', 'push', 'getMin', 'pop', 'pop', 'getMin'], [[], [5], [3], [7], [2], [], [], [], []], [None, None, None, None, None, 2, None, None, 3]), (['MinStack', 'push', 'push', 'push', 'getMin', 'pop', 'getMin', 'pop', 'getMin', 'pop', 'push', 'getMin'], [[], [10], [5], [15], [], [], [], [], [], [], [8], []], [None, None, None, None, 5, None, 5, None, 10, None, None, 8]), (['MinStack', 'push', 'push', 'push', 'push', 'push', 'getMin', 'pop', 'getMin', 'pop', 'getMin'], [[], [1], [2], [0], [3], [4], [], [], [], [], []], [None, None, None, None, None, None, 0, None, 0, None, 0]), (['MinStack', 'push', 'getMin', 'push', 'getMin', 'push', 'getMin', 'top'], [[], [2147483647], [], [-2147483648], [], [0], [], []], [None, None, 2147483647, None, -2147483648, None, -2147483648, 0]), (['MinStack', 'push', 'push', 'push', 'push', 'push', 'top', 'getMin', 'pop', 'top', 'getMin', 'pop', 'getMin'], [[], [1], [1], [1], [1], [1], [], [], [], [], [], [], []], [None, None, None, None, None, None, 1, 1, None, 1, 1, None, 1])]",
7171
"body": " result = run_min_stack_operations(MinStack, operations, inputs)\n assert_min_stack_operations(result, expected)"
7272
}
7373
]

leetcode/lru_cache/test_solution.py

Lines changed: 40 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,12 @@
33
from leetcode_py.test_utils import logged_test
44

55
from .helpers import assert_lru_cache, run_lru_cache
6-
from .solution import LRUCache, LRUCacheWithDoublyList
6+
from .solution import LRUCache
77

88

99
class TestLRUCache:
1010

1111
@logged_test
12-
@pytest.mark.parametrize("solution_class", [LRUCache, LRUCacheWithDoublyList])
1312
@pytest.mark.parametrize(
1413
"operations, inputs, expected",
1514
[
@@ -28,14 +27,45 @@ class TestLRUCache:
2827
[[1], [2, 1], [2], [3, 2], [2], [3]],
2928
[None, None, 1, None, -1, 2],
3029
),
30+
(["LRUCache", "get"], [[1], [1]], [None, -1]),
31+
(["LRUCache", "put", "get"], [[1], [1, 100], [1]], [None, None, 100]),
32+
(
33+
["LRUCache", "put", "put", "get", "get"],
34+
[[2], [1, 1], [2, 2], [1], [2]],
35+
[None, None, None, 1, 2],
36+
),
37+
(
38+
["LRUCache", "put", "put", "put", "get", "get", "get"],
39+
[[2], [1, 1], [2, 2], [3, 3], [1], [2], [3]],
40+
[None, None, None, None, -1, 2, 3],
41+
),
42+
(
43+
["LRUCache", "put", "get", "put", "get", "put", "get"],
44+
[[3], [1, 1], [1], [2, 2], [2], [3, 3], [3]],
45+
[None, None, 1, None, 2, None, 3],
46+
),
47+
(
48+
["LRUCache", "put", "put", "put", "put", "get", "get"],
49+
[[3], [1, 1], [2, 2], [3, 3], [4, 4], [4], [3]],
50+
[None, None, None, None, None, 4, 3],
51+
),
52+
(
53+
["LRUCache", "put", "put", "get", "put", "get", "get"],
54+
[[2], [2, 1], [1, 1], [2], [4, 1], [1], [2]],
55+
[None, None, None, 1, None, -1, 1],
56+
),
57+
(
58+
["LRUCache", "put", "put", "get", "put", "put", "get"],
59+
[[2], [2, 1], [2, 2], [2], [1, 1], [4, 1], [2]],
60+
[None, None, None, 2, None, None, -1],
61+
),
62+
(
63+
["LRUCache", "put", "put", "put", "get", "put", "get", "get", "get", "get"],
64+
[[3], [1, 1], [2, 2], [3, 3], [2], [4, 4], [1], [3], [4], [2]],
65+
[None, None, None, None, 2, None, -1, 3, 4, 2],
66+
),
3167
],
3268
)
33-
def test_lru_cache(
34-
self,
35-
operations: list[str],
36-
inputs: list[list[int]],
37-
expected: list[int | None],
38-
solution_class: type,
39-
):
40-
result, _ = run_lru_cache(solution_class, operations, inputs)
69+
def test_lru_cache(self, operations: list[str], inputs: list[list[int]], expected: list[int | None]):
70+
result, _ = run_lru_cache(LRUCache, operations, inputs)
4171
assert_lru_cache(result, expected)

leetcode/min_stack/test_solution.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,86 @@ class TestTestMinStack:
2727
[[], [1], [1], [2], [], [], [], [], []],
2828
[None, None, None, None, 1, None, 1, None, 1],
2929
),
30+
(["MinStack", "push", "getMin", "top"], [[], [0], [], []], [None, None, 0, 0]),
31+
(
32+
["MinStack", "push", "push", "getMin", "push", "getMin", "pop", "getMin"],
33+
[[], [2], [1], [], [0], [], [], []],
34+
[None, None, None, 1, None, 0, None, 1],
35+
),
36+
(
37+
["MinStack", "push", "push", "push", "top", "getMin", "pop", "pop", "top", "getMin"],
38+
[[], [3], [1], [4], [], [], [], [], [], []],
39+
[None, None, None, None, 4, 1, None, None, 3, 3],
40+
),
41+
(
42+
["MinStack", "push", "push", "getMin", "pop", "push", "getMin"],
43+
[[], [-1], [-2], [], [], [0], []],
44+
[None, None, None, -2, None, None, -1],
45+
),
46+
(
47+
["MinStack", "push", "push", "push", "push", "getMin", "pop", "pop", "getMin"],
48+
[[], [5], [3], [7], [2], [], [], [], []],
49+
[None, None, None, None, None, 2, None, None, 3],
50+
),
51+
(
52+
[
53+
"MinStack",
54+
"push",
55+
"push",
56+
"push",
57+
"getMin",
58+
"pop",
59+
"getMin",
60+
"pop",
61+
"getMin",
62+
"pop",
63+
"push",
64+
"getMin",
65+
],
66+
[[], [10], [5], [15], [], [], [], [], [], [], [8], []],
67+
[None, None, None, None, 5, None, 5, None, 10, None, None, 8],
68+
),
69+
(
70+
[
71+
"MinStack",
72+
"push",
73+
"push",
74+
"push",
75+
"push",
76+
"push",
77+
"getMin",
78+
"pop",
79+
"getMin",
80+
"pop",
81+
"getMin",
82+
],
83+
[[], [1], [2], [0], [3], [4], [], [], [], [], []],
84+
[None, None, None, None, None, None, 0, None, 0, None, 0],
85+
),
86+
(
87+
["MinStack", "push", "getMin", "push", "getMin", "push", "getMin", "top"],
88+
[[], [2147483647], [], [-2147483648], [], [0], [], []],
89+
[None, None, 2147483647, None, -2147483648, None, -2147483648, 0],
90+
),
91+
(
92+
[
93+
"MinStack",
94+
"push",
95+
"push",
96+
"push",
97+
"push",
98+
"push",
99+
"top",
100+
"getMin",
101+
"pop",
102+
"top",
103+
"getMin",
104+
"pop",
105+
"getMin",
106+
],
107+
[[], [1], [1], [1], [1], [1], [], [], [], [], [], [], []],
108+
[None, None, None, None, None, None, 1, 1, None, 1, 1, None, 1],
109+
),
30110
],
31111
)
32112
def test_min_stack(self, operations: list[str], inputs: list[list[int]], expected: list[int | None]):

0 commit comments

Comments
 (0)