67 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
from ..test import WitnessTestBase
 | 
						|
 | 
						|
 | 
						|
class TestWeirdTraversalRequirements(WitnessTestBase):
 | 
						|
    options = {
 | 
						|
        "shuffle_vault_boxes": True,
 | 
						|
        "shuffle_symbols": False,
 | 
						|
        "shuffle_EPs": "individual",
 | 
						|
        "EP_difficulty": "tedious",
 | 
						|
        "shuffle_doors": "doors",
 | 
						|
        "door_groupings": "off",
 | 
						|
        "puzzle_randomization": "sigma_expert",
 | 
						|
    }
 | 
						|
 | 
						|
    def test_weird_traversal_requirements(self) -> None:
 | 
						|
        """
 | 
						|
        Test that Tunnels Theater Flowers EP and Expert PP2 consider all valid paths logically.
 | 
						|
        """
 | 
						|
 | 
						|
        with self.subTest("Tunnels Theater Flowers EP"):
 | 
						|
            self.assertAccessDependency(
 | 
						|
                ["Tunnels Theater Flowers EP"],
 | 
						|
                [
 | 
						|
                    ["Theater Exit Left (Door)", "Windmill Entry (Door)", "Tunnels Theater Shortcut (Door)"],
 | 
						|
                    ["Theater Exit Right (Door)", "Windmill Entry (Door)", "Tunnels Theater Shortcut (Door)"],
 | 
						|
                    ["Theater Exit Left (Door)", "Tunnels Town Shortcut (Door)"],
 | 
						|
                    ["Theater Exit Right (Door)", "Tunnels Town Shortcut (Door)"],
 | 
						|
                    ["Theater Entry (Door)", "Tunnels Theater Shortcut (Door)"],
 | 
						|
                    ["Theater Entry (Door)", "Windmill Entry (Door)", "Tunnels Town Shortcut (Door)"],
 | 
						|
                ],
 | 
						|
                only_check_listed=True,
 | 
						|
            )
 | 
						|
 | 
						|
        with self.subTest("Expert Keep Pressure Plates 2"):
 | 
						|
            # Always necessary
 | 
						|
            self.assertAccessDependency(
 | 
						|
                ["Keep Pressure Plates 2"],
 | 
						|
                [["Keep Pressure Plates 1 Exit (Door)"]],
 | 
						|
                only_check_listed=True,
 | 
						|
            )
 | 
						|
 | 
						|
            # Always necessary
 | 
						|
            self.assertAccessDependency(
 | 
						|
                ["Keep Pressure Plates 2"],
 | 
						|
                [["Keep Pressure Plates 3 Exit (Door)"]],
 | 
						|
                only_check_listed=True,
 | 
						|
            )
 | 
						|
 | 
						|
            # All the possible "Exit methods" from PP3
 | 
						|
            self.assertAccessDependency(
 | 
						|
                ["Keep Pressure Plates 2"],
 | 
						|
                [
 | 
						|
                    ["Keep Shadows Shortcut (Door)"],
 | 
						|
                    ["Keep Pressure Plates 4 Exit (Door)", "Keep Tower Shortcut (Door)"],
 | 
						|
                    ["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)",
 | 
						|
                     "Keep Hedge Maze 4 Shortcut (Door)"],
 | 
						|
                    ["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)",
 | 
						|
                     "Keep Hedge Maze 3 Exit (Door)", "Keep Hedge Maze 3 Shortcut (Door)"],
 | 
						|
                    ["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)",
 | 
						|
                     "Keep Hedge Maze 3 Exit (Door)", "Keep Hedge Maze 2 Exit (Door)",
 | 
						|
                     "Keep Hedge Maze 2 Shortcut (Door)"],
 | 
						|
                    ["Keep Pressure Plates 4 Exit (Door)", "Keep Hedge Maze 4 Exit (Door)",
 | 
						|
                     "Keep Hedge Maze 3 Exit (Door)", "Keep Hedge Maze 2 Exit (Door)", "Keep Hedge Maze 1 Exit (Door)"],
 | 
						|
                 ],
 | 
						|
                only_check_listed=True,
 | 
						|
            )
 |