| 
									
										
										
										
											2022-10-14 19:35:53 +02:00
										 |  |  | from . import SoETestBase | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestFragmentGoal(SoETestBase): | 
					
						
							|  |  |  |     options = { | 
					
						
							|  |  |  |         "energy_core": "fragments", | 
					
						
							|  |  |  |         "available_fragments": 21, | 
					
						
							|  |  |  |         "required_fragments": 20, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-15 09:17:46 +01:00
										 |  |  |     def test_fragments(self) -> None: | 
					
						
							| 
									
										
										
										
											2022-10-14 19:35:53 +02:00
										 |  |  |         self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Gauge"]) | 
					
						
							|  |  |  |         self.assertBeatable(False)  # 0 fragments | 
					
						
							|  |  |  |         fragments = self.get_items_by_name("Energy Core Fragment") | 
					
						
							|  |  |  |         victory = self.get_item_by_name("Victory") | 
					
						
							|  |  |  |         self.collect(fragments[:-2])  # 1 too few | 
					
						
							|  |  |  |         self.assertEqual(self.count("Energy Core Fragment"), 19) | 
					
						
							|  |  |  |         self.assertBeatable(False) | 
					
						
							|  |  |  |         self.collect(fragments[-2:-1])  # exact | 
					
						
							|  |  |  |         self.assertEqual(self.count("Energy Core Fragment"), 20) | 
					
						
							|  |  |  |         self.assertBeatable(True) | 
					
						
							|  |  |  |         self.remove([victory])  # reset | 
					
						
							|  |  |  |         self.collect(fragments[-1:])  # 1 extra | 
					
						
							|  |  |  |         self.assertEqual(self.count("Energy Core Fragment"), 21) | 
					
						
							|  |  |  |         self.assertBeatable(True) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-15 09:17:46 +01:00
										 |  |  |     def test_no_weapon(self) -> None: | 
					
						
							| 
									
										
										
										
											2022-10-14 19:35:53 +02:00
										 |  |  |         self.collect_by_name(["Diamond Eye", "Wheel", "Gauge", "Energy Core Fragment"]) | 
					
						
							|  |  |  |         self.assertBeatable(False) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-15 09:17:46 +01:00
										 |  |  |     def test_no_rocket(self) -> None: | 
					
						
							| 
									
										
										
										
											2022-10-14 19:35:53 +02:00
										 |  |  |         self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Energy Core Fragment"]) | 
					
						
							|  |  |  |         self.assertBeatable(False) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestShuffleGoal(SoETestBase): | 
					
						
							|  |  |  |     options = { | 
					
						
							|  |  |  |         "energy_core": "shuffle", | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-15 09:17:46 +01:00
										 |  |  |     def test_core(self) -> None: | 
					
						
							| 
									
										
										
										
											2022-10-14 19:35:53 +02:00
										 |  |  |         self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Gauge"]) | 
					
						
							|  |  |  |         self.assertBeatable(False) | 
					
						
							|  |  |  |         self.collect_by_name(["Energy Core"]) | 
					
						
							|  |  |  |         self.assertBeatable(True) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-15 09:17:46 +01:00
										 |  |  |     def test_no_weapon(self) -> None: | 
					
						
							| 
									
										
										
										
											2022-10-14 19:35:53 +02:00
										 |  |  |         self.collect_by_name(["Diamond Eye", "Wheel", "Gauge", "Energy Core"]) | 
					
						
							|  |  |  |         self.assertBeatable(False) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-15 09:17:46 +01:00
										 |  |  |     def test_no_rocket(self) -> None: | 
					
						
							| 
									
										
										
										
											2022-10-14 19:35:53 +02:00
										 |  |  |         self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Energy Core"]) | 
					
						
							|  |  |  |         self.assertBeatable(False) |