Skip to content

Commit 7a87496

Browse files
committed
feat: add more test cases for find_median_from_data_stream
1 parent a1c2bd9 commit 7a87496

File tree

4 files changed

+101
-4
lines changed

4 files changed

+101
-4
lines changed

.amazonq/rules/problem-creation.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ When creating JSON properties that use PascalCase (solution_class_name, test_cla
135135
- Multiple methods including `__init__`
136136
- Complex test setup with operation sequences
137137
- Import custom class in test_imports
138+
- **NEVER include custom solution classes** in test_imports - only import the main solution class specified in solution_class_name
138139

139140
### Dict-based Tree Problems (Trie, etc.)
140141

.amazonq/rules/test-case-enhancement.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ When user requests to enhance test cases for a problem, the assistant will:
4949

5050
### 7. Cleanup and Restore
5151

52-
- Remove newly generated files
53-
- Restore original structure from backup
52+
- **CRITICAL**: Remove entire newly generated `leetcode/{problem_name}/` directory
53+
- **CRITICAL**: Restore original structure from `.cache/leetcode/{problem_name}/` backup
54+
- **CRITICAL**: Only THEN copy enhanced `test_solution.py` from generated files to restored structure
5455
- Verify final state with `make p-test PROBLEM={problem_name}`
56+
- Clean up backup directory after successful verification
5557

5658
## Test Case Quality Standards
5759

@@ -91,6 +93,7 @@ When user requests to enhance test cases for a problem, the assistant will:
9193
- Follow existing parametrize format
9294
- Maintain type hints in parametrize_typed
9395
- Ensure test_cases string is valid Python list syntax
96+
- **NEVER include custom solution classes** in test_imports - only import the main solution class specified in solution_class_name
9497

9598
## Commands Reference
9699

.templates/leetcode/json/find_median_from_data_stream.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757
"name": "test_median_finder",
5858
"signature": "(self, operations: list[str], inputs: list[list[int]], expected: list[float | None])",
5959
"parametrize": "operations, inputs, expected",
60-
"test_cases": "[(['MedianFinder', 'addNum', 'addNum', 'findMedian', 'addNum', 'findMedian'], [[], [1], [2], [], [3], []], [None, None, None, 1.5, None, 2.0])]",
60+
"test_cases": "[(['MedianFinder', 'addNum', 'addNum', 'findMedian', 'addNum', 'findMedian'], [[], [1], [2], [], [3], []], [None, None, None, 1.5, None, 2.0]), (['MedianFinder', 'addNum', 'findMedian'], [[], [1], []], [None, None, 1.0]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [1], [1], [1], []], [None, None, None, None, 1.0]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [1], [2], [3], [4], []], [None, None, None, None, None, 2.5]), (['MedianFinder', 'addNum', 'addNum', 'findMedian', 'addNum', 'addNum', 'findMedian'], [[], [-1], [0], [], [1], [2], []], [None, None, None, -0.5, None, None, 0.5]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [5], [1], [3], [2], [4], []], [None, None, None, None, None, None, 3.0]), (['MedianFinder', 'addNum', 'findMedian', 'addNum', 'findMedian', 'addNum', 'findMedian'], [[], [100000], [], [-100000], [], [0], []], [None, None, 100000.0, None, 0.0, None, 0.0]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [10], [5], [15], [3], [7], [12], [18], []], [None, None, None, None, None, None, None, None, 10.0]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [6], [10], [2], [6], [5], [0], []], [None, None, None, None, None, None, None, 5.5]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [1], [2], [3], [4], [5], [6], [7], [8], []], [None, None, None, None, None, None, None, None, None, 4.5]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [9], [8], [7], [6], [5], [4], [3], [2], [1], []], [None, None, None, None, None, None, None, None, None, None, 5.0]), (['MedianFinder', 'addNum', 'addNum', 'addNum', 'addNum', 'addNum', 'findMedian'], [[], [0], [0], [0], [0], [0], []], [None, None, None, None, None, None, 0.0])]",
6161
"body": " result, _ = run_median_finder(MedianFinder, operations, inputs)\n assert_median_finder(result, expected)"
6262
}
6363
]

leetcode/find_median_from_data_stream/test_solution.py

Lines changed: 94 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,100 @@ class TestFindMedianFromDataStream:
1717
["MedianFinder", "addNum", "addNum", "findMedian", "addNum", "findMedian"],
1818
[[], [1], [2], [], [3], []],
1919
[None, None, None, 1.5, None, 2.0],
20-
)
20+
),
21+
(["MedianFinder", "addNum", "findMedian"], [[], [1], []], [None, None, 1.0]),
22+
(
23+
["MedianFinder", "addNum", "addNum", "addNum", "findMedian"],
24+
[[], [1], [1], [1], []],
25+
[None, None, None, None, 1.0],
26+
),
27+
(
28+
["MedianFinder", "addNum", "addNum", "addNum", "addNum", "findMedian"],
29+
[[], [1], [2], [3], [4], []],
30+
[None, None, None, None, None, 2.5],
31+
),
32+
(
33+
["MedianFinder", "addNum", "addNum", "findMedian", "addNum", "addNum", "findMedian"],
34+
[[], [-1], [0], [], [1], [2], []],
35+
[None, None, None, -0.5, None, None, 0.5],
36+
),
37+
(
38+
["MedianFinder", "addNum", "addNum", "addNum", "addNum", "addNum", "findMedian"],
39+
[[], [5], [1], [3], [2], [4], []],
40+
[None, None, None, None, None, None, 3.0],
41+
),
42+
(
43+
["MedianFinder", "addNum", "findMedian", "addNum", "findMedian", "addNum", "findMedian"],
44+
[[], [100000], [], [-100000], [], [0], []],
45+
[None, None, 100000.0, None, 0.0, None, 0.0],
46+
),
47+
(
48+
[
49+
"MedianFinder",
50+
"addNum",
51+
"addNum",
52+
"addNum",
53+
"addNum",
54+
"addNum",
55+
"addNum",
56+
"addNum",
57+
"findMedian",
58+
],
59+
[[], [10], [5], [15], [3], [7], [12], [18], []],
60+
[None, None, None, None, None, None, None, None, 10.0],
61+
),
62+
(
63+
[
64+
"MedianFinder",
65+
"addNum",
66+
"addNum",
67+
"addNum",
68+
"addNum",
69+
"addNum",
70+
"addNum",
71+
"findMedian",
72+
],
73+
[[], [6], [10], [2], [6], [5], [0], []],
74+
[None, None, None, None, None, None, None, 5.5],
75+
),
76+
(
77+
[
78+
"MedianFinder",
79+
"addNum",
80+
"addNum",
81+
"addNum",
82+
"addNum",
83+
"addNum",
84+
"addNum",
85+
"addNum",
86+
"addNum",
87+
"findMedian",
88+
],
89+
[[], [1], [2], [3], [4], [5], [6], [7], [8], []],
90+
[None, None, None, None, None, None, None, None, None, 4.5],
91+
),
92+
(
93+
[
94+
"MedianFinder",
95+
"addNum",
96+
"addNum",
97+
"addNum",
98+
"addNum",
99+
"addNum",
100+
"addNum",
101+
"addNum",
102+
"addNum",
103+
"addNum",
104+
"findMedian",
105+
],
106+
[[], [9], [8], [7], [6], [5], [4], [3], [2], [1], []],
107+
[None, None, None, None, None, None, None, None, None, None, 5.0],
108+
),
109+
(
110+
["MedianFinder", "addNum", "addNum", "addNum", "addNum", "addNum", "findMedian"],
111+
[[], [0], [0], [0], [0], [0], []],
112+
[None, None, None, None, None, None, 0.0],
113+
),
21114
],
22115
)
23116
def test_median_finder(

0 commit comments

Comments
 (0)