Spaces:
Sleeping
Sleeping
File size: 1,452 Bytes
90fc756 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | from sql_query_reviewer.models import SQLReviewAction, TaskRecord
from server.grader import grade_episode, match_issue, validate_fix
from server.environment import SQLReviewEnvironment
def test_match_issue_finds_expected_easy_issue() -> None:
environment = SQLReviewEnvironment()
task = environment.tasks["easy_002"]
action = SQLReviewAction(
action_type="identify_issue",
issue_category="syntax",
issue_description="The query is missing the FROM clause before users.",
confidence=0.95,
)
match, score = match_issue(action, task.ground_truth_issues, set())
assert match is not None
assert match.id == "easy_002_missing_from"
assert score >= 0.35
def test_validate_fix_accepts_expected_remediation() -> None:
environment = SQLReviewEnvironment()
task = environment.tasks["easy_003"]
assert validate_fix("SELECT order_id, total FROM orders WHERE shipped_at IS NULL;", task.ground_truth_issues[0])
def test_grade_episode_is_deterministic_and_bounded() -> None:
environment = SQLReviewEnvironment()
task = environment.tasks["medium_001"]
first = grade_episode({"medium_001_select_star"}, task.ground_truth_issues, total_steps=2, max_steps=5, false_positive_count=1)
second = grade_episode({"medium_001_select_star"}, task.ground_truth_issues, total_steps=2, max_steps=5, false_positive_count=1)
assert first == second
assert 0.0 <= first <= 1.0
|