54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			54 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | from . import SoETestBase | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestFragmentGoal(SoETestBase): | ||
|  |     options = { | ||
|  |         "energy_core": "fragments", | ||
|  |         "available_fragments": 21, | ||
|  |         "required_fragments": 20, | ||
|  |     } | ||
|  | 
 | ||
|  |     def testFragments(self): | ||
|  |         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) | ||
|  | 
 | ||
|  |     def testNoWeapon(self): | ||
|  |         self.collect_by_name(["Diamond Eye", "Wheel", "Gauge", "Energy Core Fragment"]) | ||
|  |         self.assertBeatable(False) | ||
|  | 
 | ||
|  |     def testNoRocket(self): | ||
|  |         self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Energy Core Fragment"]) | ||
|  |         self.assertBeatable(False) | ||
|  | 
 | ||
|  | 
 | ||
|  | class TestShuffleGoal(SoETestBase): | ||
|  |     options = { | ||
|  |         "energy_core": "shuffle", | ||
|  |     } | ||
|  | 
 | ||
|  |     def testCore(self): | ||
|  |         self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Gauge"]) | ||
|  |         self.assertBeatable(False) | ||
|  |         self.collect_by_name(["Energy Core"]) | ||
|  |         self.assertBeatable(True) | ||
|  | 
 | ||
|  |     def testNoWeapon(self): | ||
|  |         self.collect_by_name(["Diamond Eye", "Wheel", "Gauge", "Energy Core"]) | ||
|  |         self.assertBeatable(False) | ||
|  | 
 | ||
|  |     def testNoRocket(self): | ||
|  |         self.collect_by_name(["Gladiator Sword", "Diamond Eye", "Wheel", "Energy Core"]) | ||
|  |         self.assertBeatable(False) |