File size: 1,001 Bytes
c8e832f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from graders.optimization import grade_optimization_task
from graders.syntax import grade_bug_fix_task, grade_syntax_task
from tasks.task_bank import get_task


def test_syntax_grader_partial_score_is_bounded():
    task = get_task("syntax-fix-easy")
    grade = grade_syntax_task(task.starter_code, task)

    assert 0.0 <= grade.score < 1.0


def test_bug_fix_grader_reference_solution_reaches_one():
    task = get_task("bug-fix-medium")
    grade = grade_bug_fix_task(task.reference_code, task, include_hidden=True)

    assert grade.score == 1.0
    assert grade.tests_passed == grade.tests_total


def test_optimization_grader_scores_better_than_starter():
    task = get_task("optimization-hard")
    starter_grade = grade_optimization_task(task.starter_code, task)
    reference_grade = grade_optimization_task(task.reference_code, task)

    assert reference_grade.score > starter_grade.score
    assert reference_grade.runtime_score >= starter_grade.runtime_score