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)
 | 
