1
- from ..criteria_utilities import Criterion , no_feedback
1
+ from ..criteria_utilities import Criterion
2
2
3
3
# TODO: Find better way of identifying reference criteria
4
4
# equivalences dictionary should contain a list of variations that are likely to be produced by the following procedure:
5
5
# - rewrite critera as expr=0,
6
6
# - parse left hand side of rewritten critera as a sympy expression
7
7
# - turn sympy expression into a string and remove all whitespace
8
- equivalences = dict ()
8
+ equivalences = dict ()
9
9
criteria = dict ()
10
10
11
11
criteria ["RESPONSE_EQUAL_ANSWER" ] = Criterion ("response=answer" )
12
- equivalences .update ({"RESPONSE_EQUAL_ANSWER" : ["response=answer" ,"answer=response" ,"answer-response=0" ,"-answer+response=0" ,"answer/response=1" ,"response/answer-1=0" ]})
12
+ equivalences .update ({"RESPONSE_EQUAL_ANSWER" : ["response=answer" , "answer=response" , "answer-response=0" , "-answer+response=0" , "answer/response=1" , "response/answer-1=0" ]})
13
13
criteria ["RESPONSE_EQUAL_ANSWER" ][True ] = lambda inputs : "The response matches the expected answer."
14
14
criteria ["RESPONSE_EQUAL_ANSWER" ][False ] = lambda inputs : "The response does not match the expected answer."
15
15
16
16
criteria ["RESPONSE_DOUBLE_ANSWER" ] = Criterion ("response=2*answer" )
17
- equivalences .update ({"RESPONSE_DOUBLE_ANSWER" : ["response=2*answer" ,"response/answer=2" ,"2*answer=response" ,"answer=response/2" ,"answer-response/2" ,"-answer+response/2" ,"-2*answer+response" ,"2*answer-response" ,"-2+answer/response" ,"-2+response/answer" ,"answer-1*response/2" ,"-answer+1*response/2" ,"-2+1*answer/response" ,"-2+1*response/answer" ]})
17
+ equivalences .update ({"RESPONSE_DOUBLE_ANSWER" : ["response=2*answer" ,"response/answer=2" , "2*answer=response" , "answer=response/2" , "answer-response/2" , "-answer+response/2" , "-2*answer+response" , "2*answer-response" , "-2+answer/response" , "-2+response/answer" , "answer-1*response/2" , "-answer+1*response/2" , "-2+1*answer/response" , "-2+1*response/answer" ]})
18
18
criteria ["RESPONSE_DOUBLE_ANSWER" ][True ] = lambda inputs : "The response is the expected answer multiplied by 2."
19
19
criteria ["RESPONSE_DOUBLE_ANSWER" ][False ] = lambda inputs : "The response is not the expected answer multiplied by 2."
20
20
21
21
criteria ["RESPONSE_NEGATIVE_ANSWER" ] = Criterion ("response=-answer" )
22
- equivalences .update ({"RESPONSE_NEGATIVE_ANSWER" : ["response=-answer" ,"answer=-response" ,"answer+response=0" ,"answer+response" ,"answer/response=-1" ,"response/answer+1" ]})
22
+ equivalences .update ({"RESPONSE_NEGATIVE_ANSWER" : ["response=-answer" , "answer=-response" , "answer+response=0" , "answer+response" ,"answer/response=-1" , "response/answer+1" ]})
23
23
criteria ["RESPONSE_NEGATIVE_ANSWER" ][True ] = lambda inputs : "The response is the expected answer multiplied by -1."
24
24
criteria ["RESPONSE_NEGATIVE_ANSWER" ][False ] = lambda inputs : "The response is not the expected answer multiplied by -1."
25
25
36
36
"EXPRESSION_NOT_EQUALITY" : "The response was an expression but was expected to be an equality." ,
37
37
"EQUALITY_NOT_EXPRESSION" : "The response was an equality but was expected to be an expression." ,
38
38
"WITHIN_TOLERANCE" : "" , # "The difference between the response the answer is within specified error tolerance.",
39
- "NOT_NUMERICAL" : "" , # "The expression cannot be evaluated numerically.",
39
+ "NOT_NUMERICAL" : "" , # "The expression cannot be evaluated numerically.",
40
40
}
41
41
42
42
# Format for feedback string entry: criteria["eval_tag"]("criteria_tag", inputs) = "formatted string" | None
65
65
"EXPRESSION_NOT_EQUALITY" : "The response was an expression but was expected to be an equality." ,
66
66
"EQUALITY_NOT_EXPRESSION" : "The response was an equality but was expected to be an expression." ,
67
67
"WITHIN_TOLERANCE" : None , # "The difference between the response the answer is within specified error tolerance.",
68
- "NOT_NUMERICAL" : None , #"The expression cannot be evaluated numerically.",
68
+ "NOT_NUMERICAL" : None , #"The expression cannot be evaluated numerically.",
69
69
}[tag ]
70
70
feedback_generators ["GENERIC" ] = lambda tag : lambda inputs : {
71
71
"TRUE" : None ,
98
98
"FALSE" : "The response can be simplified further." ,
99
99
}[tag ]
100
100
feedback_generators ["SAME_FORM" ] = lambda tag : lambda inputs : {
101
- "CARTESIAN" : "Response and answer are both written on Cartesian form" , # None,
102
- "EXPONENTIAL" : "Response and answer are both written on exponential form" , # None,
101
+ "CARTESIAN" : "Response and answer are both written on Cartesian form" , # None,
102
+ "EXPONENTIAL" : "Response and answer are both written on exponential form" , # None,
103
103
"UNKNOWN" : "The response is not written on the expected form." ,
104
- }[tag ]
104
+ }[tag ]
0 commit comments