diff --git a/tests/test_mission.py b/tests/test_mission.py index a26630b9..766fbdeb 100644 --- a/tests/test_mission.py +++ b/tests/test_mission.py @@ -1008,6 +1008,122 @@ def test_big_formation_action_right(self) -> None: self.assertEqual(task, m2_task) + def test_big_formation_action_leader(self) -> None: + m_name = "tests/missions/big-formation.miz" + m = dcs.mission.Mission() + m.load_file(m_name) + + assert isinstance(m.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[0].points[0].tasks[5], WWIIFollowBigFormation) + + task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[0].points[0].tasks[5] + + self.assertNotIn("groupId", task.params) + self.assertNotIn("lastWptIndex", task.params) + self.assertEqual(task.params["formationType"], WWIIFollowBigFormation.FormationType.COMBAT_BOX_FOR_OPEN_FORMATION) + self.assertEqual(task.params["pos"], {"x": 0, "y": 0, "z": 0}) + self.assertTrue(task.params["lastWptIndexFlagChangedManually"]) + self.assertEqual(len(task.params), 7) + + m2_name = "missions/saved_big-formation.miz" + m.save(m2_name) + + m2 = dcs.mission.Mission() + m2.load_file(m2_name) + + assert isinstance(m2.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[0].points[0].tasks[5], WWIIFollowBigFormation) + m2_task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[0].points[0].tasks[5] + + self.assertEqual(task, m2_task) + + def test_big_formation_action_left(self) -> None: + m_name = "tests/missions/big-formation.miz" + m = dcs.mission.Mission() + m.load_file(m_name) + + assert isinstance(m.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[1].points[0].tasks[5], WWIIFollowBigFormation) + task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[1].points[0].tasks[5] + + self.assertEqual(task.params["formationType"], WWIIFollowBigFormation.FormationType.JAVELIN_DOWN) + self.assertEqual(task.params["pos"], {"x": -480, "y": -70, "z": -240}) + self.assertEqual(task.params["groupId"], 2) + self.assertEqual(task.params["posInGroup"], 2) + self.assertEqual(task.params["lastWptIndex"], 3) + self.assertTrue(task.params["lastWptIndexFlag"]) + self.assertEqual(len(task.params), 9) + + m2_name = "missions/saved_big-formation.miz" + m.save(m2_name) + + m2 = dcs.mission.Mission() + m2.load_file(m2_name) + + assert isinstance(m2.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[1].points[0].tasks[5], WWIIFollowBigFormation) + m2_task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[1].points[0].tasks[5] + + self.assertEqual(task, m2_task) + + def test_big_formation_action_back(self) -> None: + m_name = "tests/missions/big-formation.miz" + m = dcs.mission.Mission() + m.load_file(m_name) + + assert isinstance(m.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[2].points[0].tasks[5], WWIIFollowBigFormation) + task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[2].points[0].tasks[5] + + self.assertEqual(task.params["formationType"], WWIIFollowBigFormation.FormationType.COMBAT_BOX) + self.assertEqual(task.params["pos"], {"x": -320, "y": -50, "z": -0}) + self.assertEqual(task.params["groupId"], 2) + self.assertEqual(task.params["posInBox"], 3) + self.assertEqual(task.params["lastWptIndex"], 3) + self.assertFalse(task.params["lastWptIndexFlag"]) + self.assertEqual(len(task.params), 9) + + m2_name = "missions/saved_big-formation.miz" + m.save(m2_name) + + m2 = dcs.mission.Mission() + m2.load_file(m2_name) + + assert isinstance(m2.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[2].points[0].tasks[5], WWIIFollowBigFormation) + m2_task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[2].points[0].tasks[5] + + self.assertEqual(task, m2_task) + + def test_big_formation_action_right(self) -> None: + m_name = "tests/missions/big-formation.miz" + m = dcs.mission.Mission() + m.load_file(m_name) + + assert isinstance(m.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[3].points[0].tasks[5], WWIIFollowBigFormation) + task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[3].points[0].tasks[5] + + self.assertEqual(task.params["formationType"], WWIIFollowBigFormation.FormationType.COMBAT_BOX_FOR_OPEN_FORMATION) + self.assertEqual(task.params["pos"], {"x": -160, "y": 50, "z": 240}) + self.assertEqual(task.params["groupId"], 2) + self.assertEqual(task.params["posInBox"], 1) + self.assertEqual(task.params["lastWptIndex"], 3) + self.assertTrue(task.params["lastWptIndexFlag"]) + self.assertEqual(len(task.params), 9) + + m2_name = "missions/saved_big-formation.miz" + m.save(m2_name) + + m2 = dcs.mission.Mission() + m2.load_file(m2_name) + + assert isinstance(m2.coalition['blue'].country("Combined Joint Task Forces Blue") + .plane_group[3].points[0].tasks[5], WWIIFollowBigFormation) + m2_task = m.coalition['blue'].country("Combined Joint Task Forces Blue").plane_group[3].points[0].tasks[5] + + self.assertEqual(task, m2_task) + def test_action_a_out_picture(self) -> None: mizname = "tests/missions/a_out_picture.miz" m = dcs.mission.Mission()