Coverage for e2xgrader/graders/singlechoice.py: 100%
13 statements
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
« prev ^ index » next coverage.py v7.4.2, created at 2024-03-14 13:22 +0100
1from logging import Logger
2from typing import Optional, Tuple
4from nbformat.notebooknode import NotebookNode
6from ..utils.extra_cells import get_choices, get_instructor_choices
7from .base import BaseGrader
10class SingleChoiceGrader(BaseGrader):
11 def determine_grade(
12 self, cell: NotebookNode, log: Logger = None
13 ) -> Tuple[Optional[float], float]:
14 max_points = float(cell.metadata["nbgrader"]["points"])
15 student_choices = get_choices(cell)
16 instructor_choices = get_instructor_choices(cell)
18 if (
19 (len(student_choices) > 0)
20 and (len(instructor_choices) > 0)
21 and (student_choices[0] == instructor_choices[0])
22 ):
23 return max_points, max_points
25 return 0, max_points