 f99ee77325
			
		
	
	f99ee77325
	
	
	
		
			
			* Add hidden early symbol item option, make some unit tests * Add early symbol item false to the arrows test * I guess it's not an issue * more tests * assertEqual * cleanup * add minimum symbols test for all 3 modes * Formatting * Add more minimal beatability tests * one more for the road * I HATE THIS AAAAAAAAAAAHHHHHHHHHHH WHY DID WE GO WITH OPTIONS * loiaqeäsdhgalikSDGHjasDÖKHGASKLDÖGHJASKLJGHJSAÖkfaöslifjasöfASGJÖASDLFGJ'sklgösLGIKsdhJLGÖsdfjälghklDASFJghjladshfgjasdfälkjghasdöLfghasd-kjgjASDLÖGHAESKDLJGJÖsdaLGJHsadöKGjFDSLAkgjölSÄDghbASDFKGjasdLJGhjLÖSDGHLJASKDkgjldafjghjÖLADSFghäasdökgjäsadjlgkjsadkLHGsaDÖLGSADGÖLwSdlgkJLwDSFÄLHBJsaöfdkHweaFGIoeWjvlkdösmVJÄlsafdJKhvjdsJHFGLsdaövhWDsköLV-ksdFJHGVöSEKD * fix imports (within apworld needs to be relative) * Update worlds/witness/options.py Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> * Sure * good suggestion * subtest * Add some EP shuffle unit tests, also an explicit event-checking unit test * add more tests yay * oops * mypy * Update worlds/witness/options.py Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com> * Collapse into one test :( * More efficiency * line length * More collapsing * Cleanup and docstrings --------- Co-authored-by: Exempt-Medic <60412657+Exempt-Medic@users.noreply.github.com> Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
		
			
				
	
	
		
			67 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from ..test import WitnessMultiworldTestBase, WitnessTestBase
 | |
| 
 | |
| 
 | |
| class TestElevatorsComeToYou(WitnessTestBase):
 | |
|     options = {
 | |
|         "elevators_come_to_you": True,
 | |
|         "shuffle_doors": "mixed",
 | |
|         "shuffle_symbols": False,
 | |
|     }
 | |
| 
 | |
|     def test_bunker_laser(self) -> None:
 | |
|         """
 | |
|         In elevators_come_to_you, Bunker can be entered from the back.
 | |
|         This means that you can access the laser with just Bunker Elevator Control (Panel).
 | |
|         It also means that you can, for example, access UV Room with the Control and the Elevator Room Entry Door.
 | |
|         """
 | |
| 
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", self.player))
 | |
| 
 | |
|         self.collect_by_name("Bunker Elevator Control (Panel)")
 | |
| 
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", self.player))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Bunker UV Room 2", "Location", self.player))
 | |
| 
 | |
|         self.collect_by_name("Bunker Elevator Room Entry (Door)")
 | |
|         self.collect_by_name("Bunker Drop-Down Door Controls (Panel)")
 | |
| 
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Bunker UV Room 2", "Location", self.player))
 | |
| 
 | |
| 
 | |
| class TestElevatorsComeToYouBleed(WitnessMultiworldTestBase):
 | |
|     options_per_world = [
 | |
|         {
 | |
|             "elevators_come_to_you": False,
 | |
|         },
 | |
|         {
 | |
|             "elevators_come_to_you": True,
 | |
|         },
 | |
|         {
 | |
|             "elevators_come_to_you": False,
 | |
|         },
 | |
|     ]
 | |
| 
 | |
|     common_options = {
 | |
|         "shuffle_symbols": False,
 | |
|         "shuffle_doors": "panels",
 | |
|     }
 | |
| 
 | |
|     def test_correct_access_per_player(self) -> None:
 | |
|         """
 | |
|         Test that in a multiworld with players that alternate the elevators_come_to_you option,
 | |
|         the actual behavior alternates as well and doesn't bleed over from slot to slot.
 | |
|         (This is essentially a "does connection info bleed over" test).
 | |
|         """
 | |
| 
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", 1))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", 2))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", 3))
 | |
| 
 | |
|         self.collect_by_name(["Bunker Elevator Control (Panel)"], 1)
 | |
|         self.collect_by_name(["Bunker Elevator Control (Panel)"], 2)
 | |
|         self.collect_by_name(["Bunker Elevator Control (Panel)"], 3)
 | |
| 
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", 1))
 | |
|         self.assertTrue(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", 2))
 | |
|         self.assertFalse(self.multiworld.state.can_reach("Bunker Laser Panel", "Location", 3))
 |