import { ResponseKind } from "../response/common"; import { AssignedQuestion, GradedQuestion } from "../core/assigned_exams"; import { GradingResult, QuestionGrader } from "./QuestionGrader"; type TestCaseGradingResult = GradingResult & { bugs_caught: BugInfo[]; }; export type BugInfo = { num: number; name: string; description: string; /** * Indices of test cases that catch this bug */ test_cases: number[]; }; export type BugCatchingGraderSpecification = { readonly grader_kind: "bug_catching"; readonly bugs: readonly BugInfo[]; readonly target: number; readonly points_possible: number; }; export declare class BugCatchingGrader implements QuestionGrader<"multiple_choice"> { readonly spec: BugCatchingGraderSpecification; readonly t_response_kinds: "multiple_choice"; constructor(spec: BugCatchingGraderSpecification); scale(new_points_possible: number): BugCatchingGrader; isGrader(responseKind: T): this is QuestionGrader; prepare(exam_id: string, question_id: string, spec: BugCatchingGraderSpecification): void; grade(aq: AssignedQuestion<"multiple_choice">): TestCaseGradingResult; pointsEarned(gr: TestCaseGradingResult): number; renderReport(gq: GradedQuestion<"multiple_choice", TestCaseGradingResult>): string; annotateResponseElem(gq: GradedQuestion<"multiple_choice", TestCaseGradingResult>, response_elem: JQuery): void; renderStats(aqs: readonly AssignedQuestion<"multiple_choice">[]): string; renderOverview(gqs: readonly GradedQuestion<"multiple_choice", TestCaseGradingResult>[]): string; } export {};