65 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			65 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 
								 | 
							
								from . import KDL3TestBase
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestFastGoal(KDL3TestBase):
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "open_world": False,
							 | 
						||
| 
								 | 
							
								        "goal_speed": "fast",
							 | 
						||
| 
								 | 
							
								        "total_heart_stars": 30,
							 | 
						||
| 
								 | 
							
								        "heart_stars_required": 50,
							 | 
						||
| 
								 | 
							
								        "filler_percentage": 0,
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_goal(self):
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        heart_stars = self.get_items_by_name("Heart Star")
							 | 
						||
| 
								 | 
							
								        self.collect(heart_stars[0:14])
							 | 
						||
| 
								 | 
							
								        self.assertEqual(self.count("Heart Star"), 14, str(self.multiworld.seed))
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        self.collect(heart_stars[14:15])
							 | 
						||
| 
								 | 
							
								        self.assertEqual(self.count("Heart Star"), 15, str(self.multiworld.seed))
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								        self.remove([self.get_item_by_name("Love-Love Rod")])
							 | 
						||
| 
								 | 
							
								        self.collect_by_name("Kine")  # Ensure a little more progress, but leave out cutter and burning
							 | 
						||
| 
								 | 
							
								        self.collect(heart_stars[15:])
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestNormalGoal(KDL3TestBase):
							 | 
						||
| 
								 | 
							
								    # TODO: open world tests
							 | 
						||
| 
								 | 
							
								    options = {
							 | 
						||
| 
								 | 
							
								        "open_world": False,
							 | 
						||
| 
								 | 
							
								        "goal_speed": "normal",
							 | 
						||
| 
								 | 
							
								        "total_heart_stars": 30,
							 | 
						||
| 
								 | 
							
								        "heart_stars_required": 50,
							 | 
						||
| 
								 | 
							
								        "filler_percentage": 0,
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_goal(self):
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        heart_stars = self.get_items_by_name("Heart Star")
							 | 
						||
| 
								 | 
							
								        self.collect(heart_stars[0:14])
							 | 
						||
| 
								 | 
							
								        self.assertEqual(self.count("Heart Star"), 14, str(self.multiworld.seed))
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        self.collect(heart_stars[14:15])
							 | 
						||
| 
								 | 
							
								        self.assertEqual(self.count("Heart Star"), 15, str(self.multiworld.seed))
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								        self.collect_by_name(["Burning", "Cutter", "Kine"])
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								        self.remove([self.get_item_by_name("Love-Love Rod")])
							 | 
						||
| 
								 | 
							
								        self.collect(heart_stars)
							 | 
						||
| 
								 | 
							
								        self.assertEqual(self.count("Heart Star"), 30, str(self.multiworld.seed))
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_kine(self):
							 | 
						||
| 
								 | 
							
								        self.collect_by_name(["Cutter", "Burning", "Heart Star"])
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_cutter(self):
							 | 
						||
| 
								 | 
							
								        self.collect_by_name(["Kine", "Burning", "Heart Star"])
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    def test_burning(self):
							 | 
						||
| 
								 | 
							
								        self.collect_by_name(["Cutter", "Kine", "Heart Star"])
							 | 
						||
| 
								 | 
							
								        self.assertBeatable(False)
							 |