import unittest from math_problems_structure.grade_1 import where_are_more_items class WhereAreMoreItemsTest(unittest.TestCase): def test_creates_problem(self) -> None: problem = where_are_more_items( available_pictures=[ { "id": f"picture-{index}", "name": f"Picture {index}", "image_path": f"/images/{index}.png", } for index in range(6) ], seed=1, ) self.assertEqual(problem["instructions"], "Marca dónde hay más.") self.assertEqual(len(problem["comparisons"]), 3) for comparison in problem["comparisons"]: left_group = comparison["left_group"] right_group = comparison["right_group"] self.assertEqual(left_group["side"], "left") self.assertEqual(right_group["side"], "right") self.assertNotEqual(left_group["quantity"], right_group["quantity"]) self.assertIn("picture", left_group) self.assertIn("picture", right_group) expected_answer_side = ( "left" if left_group["quantity"] > right_group["quantity"] else "right" ) self.assertEqual(comparison["answer_side"], expected_answer_side) def test_raises_for_too_few_figures(self) -> None: with self.assertRaisesRegex( ValueError, "available_pictures must contain at least 2 pictures", ): where_are_more_items( available_pictures=[ { "id": "picture-1", "name": "Picture 1", "image_path": "/images/1.png", } ] ) if __name__ == "__main__": unittest.main()