codereview-env / tests /test_graders.py
SyamSashank's picture
Initial commit with OpenEnv structure
6e7ce30
import sys
import os
# Add parent directory to path to import environment
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from environment.graders import grade_easy, grade_medium, grade_hard
from environment.models import Issue
def test_grader_variance():
# Perfect score
perfect = [
Issue(line=8, category="bug", description=""),
Issue(line=2, category="documentation", description="")
]
assert grade_easy(perfect) == 1.0
# Empty
assert grade_easy([]) == 0.0
# Partial
partial = [Issue(line=8, category="bug", description="")]
# F1 score for partial match should be between 0 and 1
# TP=1, FP=0, FN=1 -> P=1, R=0.5 -> F1 = 2*(1*0.5)/(1+0.5) = 2/3 = 0.667
assert grade_easy(partial) == 0.667
# False positive
fp = [Issue(line=99, category="bug", description="")]
assert grade_easy(fp) == 0.0
print("All grader variance tests passed.")
if __name__ == "__main__":
test_grader_variance()