Tests: now autoload tests from /worlds/*/test (#1318)

Co-authored-by: black-sliver <59490463+black-sliver@users.noreply.github.com>
This commit is contained in:
Fabian Dill
2022-12-11 13:15:23 +01:00
committed by GitHub
parent ec45479c52
commit 2dcfbff751
81 changed files with 715 additions and 683 deletions

View File

@@ -0,0 +1,74 @@
from .TestInvertedOWG import TestInvertedOWG
class TestDarkWorld(TestInvertedOWG):
def testSouthDarkWorld(self):
self.run_location_tests([
["Hype Cave - Top", True, []],
["Hype Cave - Middle Right", True, []],
["Hype Cave - Middle Left", True, []],
["Hype Cave - Bottom", True, []],
["Hype Cave - Generous Guy", True, []],
["Stumpy", True, []],
["Digging Game", True, []],
])
def testWestDarkWorld(self):
self.run_location_tests([
["Brewery", True, []],
["C-Shaped House", True, []],
["Chest Game", True, []],
["Peg Cave", False, []],
["Peg Cave", False, [], ['Hammer']],
["Peg Cave", True, ['Hammer', 'Pegasus Boots']],
["Bumper Cave Ledge", False, []],
["Bumper Cave Ledge", True, ['Pegasus Boots']],
["Blacksmith", False, []],
["Blacksmith", True, ['Magic Mirror', 'Pegasus Boots']],
["Blacksmith", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
["Purple Chest", False, []],
["Purple Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Purple Chest", True, ['Progressive Glove', 'Progressive Glove', 'Moon Pearl']],
])
def testEastDarkWorld(self):
self.run_location_tests([
["Catfish", False, []],
["Catfish", True, ['Pegasus Boots']],
["Pyramid", True, []],
["Pyramid Fairy - Left", False, []],
["Pyramid Fairy - Left", False, [], ['Magic Mirror']],
["Pyramid Fairy - Left", False, [], ['Crystal 5']],
["Pyramid Fairy - Left", False, [], ['Crystal 6']],
["Pyramid Fairy - Left", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Pegasus Boots']],
["Pyramid Fairy - Right", False, []],
["Pyramid Fairy - Right", False, [], ['Magic Mirror']],
["Pyramid Fairy - Right", False, [], ['Crystal 5']],
["Pyramid Fairy - Right", False, [], ['Crystal 6']],
["Pyramid Fairy - Right", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Pegasus Boots']],
])
def testMireArea(self):
self.run_location_tests([
["Mire Shed - Left", False, []],
["Mire Shed - Left", True, ['Pegasus Boots']],
["Mire Shed - Right", False, []],
["Mire Shed - Right", True, ['Pegasus Boots']],
])

View File

@@ -0,0 +1,118 @@
from .TestInvertedOWG import TestInvertedOWG
class TestDeathMountain(TestInvertedOWG):
def testWestDeathMountain(self):
self.run_location_tests([
["Old Man", False, []],
["Old Man", False, [], ['Lamp']],
["Old Man", True, ['Pegasus Boots', 'Lamp']],
["Spectacle Rock Cave", False, []],
["Spectacle Rock Cave", True, ['Pegasus Boots']],
])
def testEastDeathMountain(self):
self.run_location_tests([
["Spiral Cave", False, []],
["Spiral Cave", False, [], ['Moon Pearl', 'Magic Mirror']],
["Spiral Cave", False, [], ['Moon Pearl', 'Progressive Sword']],
["Spiral Cave", True, ['Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Lamp', 'Progressive Sword']],
["Spiral Cave", True, ['Magic Mirror', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots', 'Progressive Sword']],
["Spiral Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Far Left", False, []],
["Paradox Cave Lower - Far Left", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Far Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Left", False, []],
["Paradox Cave Lower - Left", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Middle", False, []],
["Paradox Cave Lower - Middle", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Right", False, []],
["Paradox Cave Lower - Right", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Lower - Far Right", False, []],
["Paradox Cave Lower - Far Right", False, [], ['Moon Pearl']],
["Paradox Cave Lower - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Upper - Left", False, []],
["Paradox Cave Upper - Left", False, [], ['Moon Pearl']],
["Paradox Cave Upper - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Paradox Cave Upper - Right", False, []],
["Paradox Cave Upper - Right", False, [], ['Moon Pearl']],
["Paradox Cave Upper - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mimic Cave", False, []],
["Mimic Cave", False, [], ['Moon Pearl']],
["Mimic Cave", False, [], ['Hammer']],
["Mimic Cave", True, ['Moon Pearl', 'Hammer', 'Pegasus Boots']],
["Ether Tablet", False, []],
["Ether Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Ether Tablet", False, [], ['Book of Mudora']],
["Ether Tablet", False, [], ['Moon Pearl']],
["Ether Tablet", True, ['Pegasus Boots', 'Moon Pearl', 'Book of Mudora', 'Progressive Sword', 'Progressive Sword']],
["Spectacle Rock", False, []],
["Spectacle Rock", False, [], ['Moon Pearl']],
["Spectacle Rock", True, ['Moon Pearl', 'Pegasus Boots']],
])
def testWestDarkWorldDeathMountain(self):
self.run_location_tests([
["Spike Cave", False, []],
["Spike Cave", False, [], ['Progressive Glove']],
["Spike Cave", False, [], ['Hammer']],
["Spike Cave", False, [], ['Cape', 'Cane of Byrna']],
["Spike Cave", False, [], ['Cane of Byrna', 'AnyBottle', 'Magic Upgrade (1/2)']],
["Spike Cave", False, [], ['AnyBottle', 'Magic Upgrade (1/2)', 'Pegasus Boots', 'Boss Heart Container', 'Piece of Heart', 'Sanctuary Heart Container']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
# Change from base ER - this fork places a blue potion in dark world
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Bottle', 'Hammer', 'Progressive Glove', 'Flute', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Lamp', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Flute', 'Cape']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Magic Upgrade (1/2)', 'Hammer', 'Progressive Glove', 'Flute', 'Cane of Byrna']],
["Spike Cave", True, ['Pegasus Boots', 'Hammer', 'Progressive Glove', 'Cane of Byrna']],
["Spike Cave", True, ['Boss Heart Container', 'Hammer', 'Progressive Glove', 'Lamp', 'Cane of Byrna']],
["Spike Cave", True, ['Boss Heart Container', 'Hammer', 'Progressive Glove', 'Flute', 'Cane of Byrna']],
])
def testEastDarkWorldDeathMountain(self):
self.run_location_tests([
["Superbunny Cave - Top", False, []],
["Superbunny Cave - Top", True, ['Pegasus Boots']],
["Superbunny Cave - Bottom", False, []],
["Superbunny Cave - Bottom", True, ['Pegasus Boots']],
["Hookshot Cave - Bottom Right", False, []],
["Hookshot Cave - Bottom Right", False, [], ['Hookshot', 'Pegasus Boots']],
["Hookshot Cave - Bottom Right", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Bottom Right", True, ['Pegasus Boots']],
["Hookshot Cave - Bottom Left", False, []],
["Hookshot Cave - Bottom Left", False, [], ['Hookshot']],
["Hookshot Cave - Bottom Left", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Bottom Left", True, ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Left", False, []],
["Hookshot Cave - Top Left", False, [], ['Hookshot']],
["Hookshot Cave - Top Left", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Top Left", True, ['Pegasus Boots', 'Hookshot']],
["Hookshot Cave - Top Right", False, []],
["Hookshot Cave - Top Right", False, [], ['Hookshot']],
["Hookshot Cave - Top Right", False, [], ['Progressive Glove', 'Pegasus Boots', 'Magic Mirror']],
["Hookshot Cave - Top Right", True, ['Pegasus Boots', 'Hookshot']],
])

View File

@@ -0,0 +1,109 @@
from .TestInvertedOWG import TestInvertedOWG
class TestDungeons(TestInvertedOWG):
def testFirstDungeonChests(self):
self.run_location_tests([
["Hyrule Castle - Map Chest", False, []],
["Hyrule Castle - Map Chest", True, ['Beat Agahnim 1']],
["Hyrule Castle - Map Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Hyrule Castle - Map Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Sanctuary", False, []],
["Sanctuary", False, ['Beat Agahnim 1']],
["Sanctuary", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Sanctuary", True, ['Lamp', 'Beat Agahnim 1', 'Small Key (Hyrule Castle)']],
["Sanctuary", True, ['Moon Pearl', 'Pegasus Boots']],
["Sanctuary", True, ['Magic Mirror', 'Pegasus Boots']],
["Sewers - Secret Room - Left", False, []],
["Sewers - Secret Room - Left", True, ['Moon Pearl', 'Progressive Glove', 'Pegasus Boots']],
["Sewers - Secret Room - Left", True, ['Moon Pearl', 'Pegasus Boots', 'Lamp', 'Small Key (Hyrule Castle)']],
["Sewers - Secret Room - Left", True,
['Magic Mirror', 'Pegasus Boots', 'Lamp', 'Small Key (Hyrule Castle)']],
["Sewers - Secret Room - Left", True, ['Beat Agahnim 1', 'Lamp', 'Small Key (Hyrule Castle)']],
["Eastern Palace - Compass Chest", False, []],
["Eastern Palace - Compass Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Eastern Palace - Compass Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Eastern Palace - Compass Chest", True, ['Beat Agahnim 1']],
["Desert Palace - Map Chest", False, []],
["Desert Palace - Map Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Desert Palace - Map Chest", True, ['Book of Mudora', 'Magic Mirror', 'Pegasus Boots']],
["Desert Palace - Boss", False, []],
["Desert Palace - Boss", False, [], ['Small Key (Desert Palace)']],
["Desert Palace - Boss", False, [], ['Big Key (Desert Palace)']],
["Desert Palace - Boss", False, [], ['Lamp', 'Fire Rod']],
["Desert Palace - Boss", True, ['Progressive Sword', 'Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Moon Pearl', 'Pegasus Boots', 'Lamp']],
["Desert Palace - Boss", True, ['Small Key (Desert Palace)', 'Big Key (Desert Palace)', 'Moon Pearl', 'Pegasus Boots', 'Fire Rod']],
["Tower of Hera - Basement Cage", False, []],
["Tower of Hera - Basement Cage", False, [], ['Moon Pearl']],
["Tower of Hera - Basement Cage", True, ['Pegasus Boots', 'Moon Pearl']],
["Castle Tower - Room 03", False, []],
["Castle Tower - Room 03", False, [], ['Progressive Sword', 'Hammer', 'Progressive Bow', 'Fire Rod', 'Ice Rod', 'Cane of Somaria', 'Cane of Byrna']],
["Castle Tower - Room 03", True, ['Pegasus Boots', 'Progressive Sword']],
["Castle Tower - Room 03", True, ['Pegasus Boots', 'Progressive Bow']],
# Qirn Jump
["Palace of Darkness - Shooter Room", True, []],
["Swamp Palace - Entrance", False, []],
["Swamp Palace - Entrance", False, [], ['Magic Mirror']],
["Swamp Palace - Entrance", False, [], ['Flippers']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Flippers', 'Pegasus Boots']],
["Swamp Palace - Entrance", True, ['Magic Mirror', 'Flippers', 'Beat Agahnim 1']],
["Skull Woods - Compass Chest", True, []],
["Skull Woods - Big Chest", False, []],
["Skull Woods - Big Chest", False, [], ['Big Key (Skull Woods)']],
["Skull Woods - Big Chest", True, ['Big Key (Skull Woods)']],
["Skull Woods - Big Key Chest", True, []],
["Skull Woods - Bridge Room", False, []],
["Skull Woods - Bridge Room", False, [], ['Fire Rod']],
["Skull Woods - Bridge Room", True, ['Fire Rod']],
["Thieves' Town - Map Chest", True, []],
["Ice Palace - Compass Chest", False, []],
["Ice Palace - Compass Chest", False, [], ['Fire Rod', 'Bombos', 'Progressive Sword']],
# Qirn Jump
["Ice Palace - Compass Chest", True, ['Fire Rod']],
["Ice Palace - Compass Chest", True, ['Bombos', 'Progressive Sword']],
["Misery Mire - Bridge Chest", False, []],
["Misery Mire - Bridge Chest", False, [], ['Ether']],
["Misery Mire - Bridge Chest", False, [], ['Progressive Sword']],
["Misery Mire - Bridge Chest", True, ['Pegasus Boots', 'Ether', 'Progressive Sword']],
["Turtle Rock - Compass Chest", False, []],
["Turtle Rock - Compass Chest", False, [], ['Cane of Somaria']],
["Turtle Rock - Compass Chest", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl', 'Cane of Somaria', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)', 'Small Key (Turtle Rock)']],
["Turtle Rock - Compass Chest", True, ['Pegasus Boots', 'Quake', 'Progressive Sword', 'Cane of Somaria']],
["Turtle Rock - Chain Chomps", False, []],
["Turtle Rock - Chain Chomps", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl']],
["Turtle Rock - Crystaroller Room", False, []],
["Turtle Rock - Crystaroller Room", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl', 'Big Key (Turtle Rock)']],
["Turtle Rock - Crystaroller Room", True, ['Pegasus Boots', 'Magic Mirror', 'Moon Pearl', 'Lamp', 'Cane of Somaria']],
["Ganons Tower - Hope Room - Left", False, []],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 1']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 2']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 3']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 4']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 5']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 6']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Beat Agahnim 1', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Magic Mirror', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Moon Pearl', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
])

View File

@@ -0,0 +1,41 @@
from argparse import Namespace
from BaseClasses import MultiWorld
from worlds.alttp.Dungeons import create_dungeons, get_dungeon_item_pool
from worlds.alttp.EntranceShuffle import link_inverted_entrances
from worlds.alttp.InvertedRegions import create_inverted_regions
from worlds.alttp.ItemPool import generate_itempool, difficulties
from worlds.alttp.Items import ItemFactory
from worlds.alttp.Regions import mark_light_world_regions
from worlds.alttp.Shops import create_shops
from worlds.alttp.Rules import set_rules
from test.TestBase import TestBase
from worlds import AutoWorld
class TestInvertedOWG(TestBase):
def setUp(self):
self.multiworld = MultiWorld(1)
args = Namespace()
for name, option in AutoWorld.AutoWorldRegister.world_types["A Link to the Past"].option_definitions.items():
setattr(args, name, {1: option.from_any(option.default)})
self.multiworld.set_options(args)
self.multiworld.set_default_common_options()
self.multiworld.logic[1] = "owglitches"
self.multiworld.mode[1] = "inverted"
self.multiworld.difficulty_requirements[1] = difficulties['normal']
create_inverted_regions(self.multiworld, 1)
create_dungeons(self.multiworld, 1)
create_shops(self.multiworld, 1)
link_inverted_entrances(self.multiworld, 1)
self.multiworld.worlds[1].create_items()
self.multiworld.required_medallions[1] = ['Ether', 'Quake']
self.multiworld.itempool.extend(get_dungeon_item_pool(self.multiworld))
self.multiworld.itempool.extend(ItemFactory(['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Beat Agahnim 1', 'Beat Agahnim 2', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7'], 1))
self.multiworld.get_location('Agahnim 1', 1).item = None
self.multiworld.get_location('Agahnim 2', 1).item = None
self.multiworld.precollected_items[1].clear()
self.multiworld.itempool.append(ItemFactory('Pegasus Boots', 1))
mark_light_world_regions(self.multiworld, 1)
self.multiworld.worlds[1].set_rules()

View File

@@ -0,0 +1,313 @@
from .TestInvertedOWG import TestInvertedOWG
class TestLightWorld(TestInvertedOWG):
def testLightWorld(self):
self.run_location_tests([
["Master Sword Pedestal", False, []],
["Master Sword Pedestal", False, [], ['Green Pendant']],
["Master Sword Pedestal", False, [], ['Red Pendant']],
["Master Sword Pedestal", False, [], ['Blue Pendant']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Moon Pearl', 'Pegasus Boots']],
["Master Sword Pedestal", True, ['Green Pendant', 'Red Pendant', 'Blue Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Link's Uncle", False, []],
["Link's Uncle", False, [], ['Moon Pearl']],
["Link's Uncle", True, ['Moon Pearl', 'Pegasus Boots']],
["Secret Passage", False, []],
["Secret Passage", False, [], ['Moon Pearl']],
["Secret Passage", True, ['Moon Pearl', 'Pegasus Boots']],
["King's Tomb", False, []],
["King's Tomb", False, [], ['Pegasus Boots']],
["King's Tomb", False, [], ['Moon Pearl']],
["King's Tomb", False, ['Magic Mirror']],
["King's Tomb", True, ['Pegasus Boots', 'Moon Pearl']],
["Floodgate Chest", False, []],
["Floodgate Chest", False, [], ['Moon Pearl', 'Magic Mirror']],
["Floodgate Chest", True, ['Moon Pearl', 'Pegasus Boots']],
["Floodgate Chest", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Tavern", False, []],
["Kakariko Tavern", False, [], ['Moon Pearl', 'Magic Mirror']],
["Kakariko Tavern", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Tavern", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Tavern", True, ['Beat Agahnim 1', 'Moon Pearl']],
["Kakariko Tavern", True, ['Beat Agahnim 1', 'Magic Mirror']],
["Chicken House", False, []],
["Chicken House", False, [], ['Moon Pearl']],
["Chicken House", True, ['Moon Pearl', 'Pegasus Boots']],
["Aginah's Cave", False, []],
["Aginah's Cave", False, [], ['Moon Pearl']],
["Aginah's Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", False, []],
["Sahasrahla's Hut - Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Left", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Magic Mirror', 'Pegasus Boots']],
##todo: Damage boost superbunny not in logic
#["Sahasrahla's Hut - Left", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Middle", False, []],
["Sahasrahla's Hut - Middle", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Middle", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Magic Mirror', 'Pegasus Boots']],
#["Sahasrahla's Hut - Middle", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Middle", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Sahasrahla's Hut - Right", False, []],
["Sahasrahla's Hut - Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sahasrahla's Hut - Right", False, [], ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Magic Mirror', 'Pegasus Boots']],
#["Sahasrahla's Hut - Right", True, ['Beat Agahnim 1', 'Pegasus Boots']],
["Sahasrahla's Hut - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Kakariko Well - Top", False, []],
["Kakariko Well - Top", False, [], ['Moon Pearl']],
["Kakariko Well - Top", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Left", False, []],
["Kakariko Well - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Left", True, ['Beat Agahnim 1']],
["Kakariko Well - Middle", False, []],
["Kakariko Well - Middle", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Middle", True, ['Beat Agahnim 1']],
["Kakariko Well - Right", False, []],
["Kakariko Well - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Right", True, ['Beat Agahnim 1']],
["Kakariko Well - Bottom", False, []],
["Kakariko Well - Bottom", True, ['Moon Pearl', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Magic Mirror', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Kakariko Well - Bottom", True, ['Beat Agahnim 1']],
["Blind's Hideout - Top", False, []],
["Blind's Hideout - Top", False, [], ['Moon Pearl']],
["Blind's Hideout - Top", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Left", False, []],
["Blind's Hideout - Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Left", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Right", False, []],
["Blind's Hideout - Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Right", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Far Left", False, []],
["Blind's Hideout - Far Left", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Far Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Far Left", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Far Left", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Blind's Hideout - Far Right", False, []],
["Blind's Hideout - Far Right", False, [], ['Moon Pearl', 'Magic Mirror']],
["Blind's Hideout - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Blind's Hideout - Far Right", True, ['Magic Mirror', 'Pegasus Boots']],
["Blind's Hideout - Far Right", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Bonk Rock Cave", False, []],
["Bonk Rock Cave", False, [], ['Pegasus Boots']],
["Bonk Rock Cave", False, [], ['Moon Pearl']],
["Bonk Rock Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Far Left", False, []],
["Mini Moldorm Cave - Far Left", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Far Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Left", False, []],
["Mini Moldorm Cave - Left", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Right", False, []],
["Mini Moldorm Cave - Right", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Far Right", False, []],
["Mini Moldorm Cave - Far Right", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Far Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Mini Moldorm Cave - Generous Guy", False, []],
["Mini Moldorm Cave - Generous Guy", False, [], ['Moon Pearl']],
["Mini Moldorm Cave - Generous Guy", True, ['Moon Pearl', 'Pegasus Boots']],
["Ice Rod Cave", False, []],
["Ice Rod Cave", False, [], ['Moon Pearl']],
["Ice Rod Cave", True, ['Moon Pearl', 'Pegasus Boots']],
#I don't think so
#["Ice Rod Cave", True, ['Magic Mirror', 'Pegasus Boots', 'BigRedBomb']],
#["Ice Rod Cave", True, ['Magic Mirror', 'Beat Agahnim 1', 'BigRedBomb']],
["Bottle Merchant", False, []],
["Bottle Merchant", True, ['Pegasus Boots', 'Magic Mirror']],
["Bottle Merchant", True, ['Moon Pearl', 'Pegasus Boots']],
["Bottle Merchant", True, ['Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Bottle Merchant", True, ['Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", False, []],
["Sahasrahla", False, [], ['Green Pendant']],
["Sahasrahla", True, ['Green Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Moon Pearl', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Magic Mirror', 'Pegasus Boots']],
["Sahasrahla", True, ['Green Pendant', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Magic Bat", False, []],
["Magic Bat", False, [], ['Magic Powder']],
["Magic Bat", False, [], ['Moon Pearl']],
["Magic Bat", True, ['Magic Powder', 'Pegasus Boots', 'Moon Pearl']],
["Sick Kid", False, []],
["Sick Kid", False, [], ['AnyBottle']],
["Sick Kid", False, ['Bottle (Bee)']],
["Sick Kid", False, ['Bottle (Fairy)']],
["Sick Kid", False, ['Bottle (Red Potion)']],
["Sick Kid", False, ['Bottle (Green Potion)']],
["Sick Kid", False, ['Bottle (Blue Potion)']],
["Sick Kid", False, ['Bottle']],
["Sick Kid", False, ['Bottle (Good Bee)']],
["Sick Kid", True, ['Bottle (Bee)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Bee)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Fairy)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Fairy)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Red Potion)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Red Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Green Potion)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Green Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Blue Potion)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle (Good Bee)', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Magic Mirror', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Moon Pearl', 'Pegasus Boots']],
["Sick Kid", True, ['Bottle', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Hobo", False, []],
["Hobo", False, [], ['Moon Pearl']],
["Hobo", True, ['Moon Pearl', 'Pegasus Boots']],
["Hobo", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Bombos Tablet", False, []],
["Bombos Tablet", False, ['Progressive Sword'], ['Progressive Sword']],
["Bombos Tablet", False, [], ['Book of Mudora']],
["Bombos Tablet", True, ['Moon Pearl', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Magic Mirror', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["Bombos Tablet", True, ['Progressive Glove', 'Progressive Glove', 'Book of Mudora', 'Pegasus Boots', 'Progressive Sword', 'Progressive Sword']],
["King Zora", False, []],
["King Zora", False, [], ['Moon Pearl']],
["King Zora", True, ['Moon Pearl', 'Pegasus Boots']],
["Lost Woods Hideout", False, []],
["Lost Woods Hideout", False, [], ['Moon Pearl']],
["Lost Woods Hideout", True, ['Moon Pearl', 'Pegasus Boots']],
["Lumberjack Tree", False, []],
["Lumberjack Tree", False, [], ['Beat Agahnim 1']],
["Lumberjack Tree", False, [], ['Pegasus Boots']],
["Lumberjack Tree", False, [], ['Moon Pearl']],
["Lumberjack Tree", True, ['Pegasus Boots', 'Moon Pearl', 'Beat Agahnim 1']],
["Cave 45", False, []],
["Cave 45", False, [], ['Moon Pearl', 'Magic Mirror']],
["Cave 45", True, ['Moon Pearl', 'Pegasus Boots']],
["Cave 45", True, ['Magic Mirror', 'Pegasus Boots']],
["Cave 45", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Graveyard Cave", False, []],
["Graveyard Cave", False, [], ['Moon Pearl']],
["Graveyard Cave", True, ['Moon Pearl', 'Pegasus Boots']],
["Checkerboard Cave", False, []],
["Checkerboard Cave", False, [], ['Progressive Glove']],
["Checkerboard Cave", False, [], ['Moon Pearl']],
["Checkerboard Cave", True, ['Progressive Glove', 'Pegasus Boots', 'Moon Pearl']],
["Library", False, []],
["Library", False, [], ['Pegasus Boots']],
["Library", False, [], ['Moon Pearl', 'Magic Mirror']],
["Library", True, ['Pegasus Boots', 'Moon Pearl']],
["Library", True, ['Pegasus Boots', 'Magic Mirror']],
["Mushroom", False, []],
["Mushroom", False, [], ['Moon Pearl']],
["Mushroom", True, ['Moon Pearl', 'Pegasus Boots']],
["Potion Shop", False, []],
["Potion Shop", False, [], ['Mushroom']],
["Potion Shop", False, [], ['Moon Pearl']],
["Potion Shop", True, ['Mushroom', 'Moon Pearl', 'Pegasus Boots']],
["Maze Race", False, []],
["Maze Race", False, [], ['Moon Pearl']],
["Maze Race", True, ['Moon Pearl', 'Pegasus Boots']],
["Desert Ledge", False, []],
["Desert Ledge", True, ['Book of Mudora', 'Magic Mirror', 'Pegasus Boots']],
["Desert Ledge", True, ['Book of Mudora', 'Progressive Glove', 'Progressive Glove', 'Pegasus Boots']],
["Desert Ledge", True, ['Book of Mudora', 'Beat Agahnim 1']],
["Desert Ledge", True, ['Moon Pearl', 'Pegasus Boots']],
["Lake Hylia Island", False, []],
["Lake Hylia Island", False, [], ['Moon Pearl']],
["Lake Hylia Island", True, ['Moon Pearl', 'Pegasus Boots']],
["Sunken Treasure", False, []],
["Sunken Treasure", False, [], ['Moon Pearl', 'Magic Mirror']],
["Sunken Treasure", True, ['Moon Pearl', 'Pegasus Boots']],
["Sunken Treasure", True, ['Magic Mirror', 'Pegasus Boots']],
["Sunken Treasure", True, ['Magic Mirror', 'Beat Agahnim 1']],
["Zora's Ledge", False, []],
["Zora's Ledge", False, [], ['Moon Pearl']],
["Zora's Ledge", True, ['Moon Pearl', 'Pegasus Boots']],
["Flute Spot", False, []],
["Flute Spot", False, [], ['Shovel']],
["Flute Spot", False, [], ['Moon Pearl']],
["Flute Spot", True, ['Shovel', 'Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Left", False, []],
["Waterfall Fairy - Left", False, [], ['Moon Pearl']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Left", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
["Waterfall Fairy - Right", False, []],
["Waterfall Fairy - Right", False, [], ['Moon Pearl']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Pegasus Boots']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Beat Agahnim 1']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Hammer']],
["Waterfall Fairy - Right", True, ['Moon Pearl', 'Progressive Glove', 'Progressive Glove']],
# Bomb Merchant is not a separate check, and is only used as part of the Pyramid Fairy rules
# ["Bomb Merchant", False, []],
# ["Bomb Merchant", False, [], ['Crystal 5']],
# ["Bomb Merchant", False, [], ['Crystal 6']],
# ["Bomb Merchant", True, ['Crystal 5', 'Crystal 6', 'Moon Pearl', 'Pegasus Boots']],
# ["Bomb Merchant", True, ['Crystal 5', 'Crystal 6', 'Magic Mirror', 'Pegasus Boots']],
# ["Bomb Merchant", True, ['Crystal 5', 'Crystal 6', 'Beat Agahnim 1']],
["Ganon", False, []],
])