Task Description
The _derive_grade utility in main.py handles critical business logic. We need to ensure 100% branch coverage to prevent regressions in scoring.
Context and Background
Target: main._derive_grade
Location: tests/test_ci.py
Test Suite: Use pytest with @pytest.mark.parametrize for edge cases.
Acceptance Criteria
Boundary values (e.g., exactly 90% for an 'A').
Type handling (ensure ValueError is raised for non-numeric inputs).
Negative/Over-scale inputs (input > 100 or < 0).
Hints
No response
Task Description
The _derive_grade utility in main.py handles critical business logic. We need to ensure 100% branch coverage to prevent regressions in scoring.
Context and Background
Target: main._derive_grade
Location: tests/test_ci.py
Test Suite: Use pytest with @pytest.mark.parametrize for edge cases.
Acceptance Criteria
Boundary values (e.g., exactly 90% for an 'A').
Type handling (ensure ValueError is raised for non-numeric inputs).
Negative/Over-scale inputs (input > 100 or < 0).
Hints
No response