Files
Archipelago/worlds/alttp/test/TestPotShuffle.py
T

57 lines
1.7 KiB
Python

import random
import unittest
from types import SimpleNamespace
from worlds.alttp.PotShuffle import (
POT_KEY,
POT_HOLE,
generate_pot_shuffle,
get_unique_pot_item_position,
)
class TestPotShuffle(unittest.TestCase):
def test_reserved_key_rooms_only_place_actual_keys(self) -> None:
for seed in range(10):
world = SimpleNamespace(
random=random.Random(seed),
options=SimpleNamespace(retro_bow=False),
)
shuffled_pots = generate_pot_shuffle(world)
conveyor_cross_keys = [
pot for pot in shuffled_pots[0x8B]
if pot.item == POT_KEY
]
self.assertEqual(len(conveyor_cross_keys), 1)
def test_get_unique_pot_item_position_returns_single_match(self) -> None:
world = SimpleNamespace(
random=random.Random(0),
options=SimpleNamespace(retro_bow=False),
)
shuffled_pots = generate_pot_shuffle(world)
self.assertEqual(
get_unique_pot_item_position(shuffled_pots, 0x36, POT_KEY),
(114, 16),
)
def test_reserved_hole_room_keeps_hole_fixed(self) -> None:
for seed in range(25):
world = SimpleNamespace(
random=random.Random(seed),
options=SimpleNamespace(retro_bow=False),
)
shuffled_pots = generate_pot_shuffle(world)
hole_positions = [
(pot.x, pot.y)
for pot in shuffled_pots[206]
if pot.item == POT_HOLE
]
self.assertEqual(hole_positions, [(204, 11)])
if __name__ == "__main__":
unittest.main()