diff --git a/common/lib/capa/capa/tests/test_files/imageresponse.xml b/common/lib/capa/capa/tests/test_files/imageresponse.xml
index 34dba37e3b..c4590b211f 100644
--- a/common/lib/capa/capa/tests/test_files/imageresponse.xml
+++ b/common/lib/capa/capa/tests/test_files/imageresponse.xml
@@ -18,4 +18,23 @@ Hello
Use conservation of energy.
+
+
+
+
+
+
+
+Click on either of the two positions as discussed previously.
+
+Click on either of the two positions as discussed previously.
+
+
+Click on either of the two positions as discussed previously.
+
+Use conservation of energy.
+
+
+
+
diff --git a/common/lib/capa/capa/tests/test_responsetypes.py b/common/lib/capa/capa/tests/test_responsetypes.py
index bcac555b5e..3564ad3fe8 100644
--- a/common/lib/capa/capa/tests/test_responsetypes.py
+++ b/common/lib/capa/capa/tests/test_responsetypes.py
@@ -52,24 +52,52 @@ class ImageResponseTest(unittest.TestCase):
def test_ir_grade(self):
imageresponse_file = os.path.dirname(__file__) + "/test_files/imageresponse.xml"
test_lcp = lcp.LoncapaProblem(open(imageresponse_file).read(), '1', system=test_system)
- correct_answers = {'1_2_1': '(490,11)-(556,98)',
+ # testing regions only
+ correct_answers = {
+ #regions
+ '1_2_1': '(490,11)-(556,98)',
'1_2_2': '(242,202)-(296,276)',
'1_2_3': '(490,11)-(556,98);(242,202)-(296,276)',
'1_2_4': '(490,11)-(556,98);(242,202)-(296,276)',
'1_2_5': '(490,11)-(556,98);(242,202)-(296,276)',
+ #testing regions and rectanges
+ '1_3_1': '(490,11)-(556,98)',
+ '1_3_2': '(242,202)-(296,276)',
+ '1_3_3': '(490,11)-(556,98);(242,202)-(296,276)',
+ '1_3_4': '(490,11)-(556,98);(242,202)-(296,276)',
+ '1_3_5': '(490,11)-(556,98);(242,202)-(296,276)',
}
test_answers = {'1_2_1': '[500,20]',
'1_2_2': '[250,300]',
'1_2_3': '[500,20]',
'1_2_4': '[250,250]',
'1_2_5': '[10,10]',
+
+ '1_3_1': '[500,20]',
+ '1_3_2': '[15,15]',
+ '1_3_3': '[500,20]',
+ '1_3_4': '[115,115]',
+ '1_3_5': '[15,15]',
+ '1_3_6': '[20,20]',
+ '1_3_7': '[20,20]',
}
+
+ # regions
self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_2_1'), 'correct')
self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_2_2'), 'incorrect')
self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_2_3'), 'correct')
self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_2_4'), 'correct')
self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_2_5'), 'incorrect')
+ # regions and rectangles
+ self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_3_1'), 'correct')
+ self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_3_2'), 'correct')
+ self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_3_3'), 'incorrect')
+ self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_3_4'), 'correct')
+ self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_3_5'), 'correct')
+ self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_3_6'), 'incorrect')
+ self.assertEquals(test_lcp.grade_answers(test_answers).get_correctness('1_3_7'), 'correct')
+
class SymbolicResponseTest(unittest.TestCase):
def test_sr_grade(self):