def test_gate_assignment_for_configuration_all_random( echoes_resource_database): # Setup violet = find_resource_info_with_long_name(echoes_resource_database.item, "Violet Translator") emerald = find_resource_info_with_long_name(echoes_resource_database.item, "Emerald Translator") configuration = MagicMock() configuration.translator_configuration.translator_requirement = { TranslatorGate(index): LayoutTranslatorRequirement.RANDOM for index in [1, 15, 23] } rng = MagicMock() rng.choice.side_effect = [ LayoutTranslatorRequirement.EMERALD, LayoutTranslatorRequirement.VIOLET, LayoutTranslatorRequirement.EMERALD, ] # Run results = base_patches_factory.gate_assignment_for_configuration( configuration, echoes_resource_database, rng) # Assert assert results == { TranslatorGate(1): emerald, TranslatorGate(15): violet, TranslatorGate(23): emerald, }
def _test_data(default_preset): data = default_data.decode_default_prime2() game = data_reader.decode_data(data) permalink = Permalink( seed_number=15000, spoiler=True, presets={0: default_preset}, ) configuration = permalink.get_preset(0).layout_configuration patches = game.create_game_patches() patches = patches.assign_gate_assignment( base_patches_factory.gate_assignment_for_configuration( configuration, game.resource_database, Random(15000))) game, state = logic_bootstrap(configuration, game, patches) return game, state, permalink
def _test_data(): data = default_data.decode_default_prime2() game = data_reader.decode_data(data) configuration = LayoutConfiguration.from_params() permalink = Permalink( seed_number=15000, spoiler=True, patcher_configuration=PatcherConfiguration.default(), layout_configuration=configuration, ) patches = GamePatches.with_game(game) patches = patches.assign_gate_assignment( base_patches_factory.gate_assignment_for_configuration( configuration, game.resource_database, Random(15000))) game, state = logic_bootstrap(configuration, game, patches) return game, state, permalink
def test_reach_size_from_start(echoes_game_description): # Setup configuration = LayoutConfiguration.from_params( trick_level_configuration=TrickLevelConfiguration( LayoutTrickLevel.HYPERMODE), ) patches = GamePatches.with_game(echoes_game_description) patches = patches.assign_gate_assignment( base_patches_factory.gate_assignment_for_configuration( configuration, echoes_game_description.resource_database, Random(15000))) game, state = logic_bootstrap(configuration, echoes_game_description, patches) # Run reach = GeneratorReach.reach_from_state(game, state) # Assert assert len(list(reach.nodes)) == 26 assert len(list(reach.safe_nodes)) == 4
def test_gate_assignment_for_configuration_all_emerald( echoes_resource_database): # Setup emerald = find_resource_info_with_long_name(echoes_resource_database.item, "Emerald Translator") indices = [1, 15, 23] configuration = MagicMock() configuration.translator_configuration.translator_requirement = { TranslatorGate(index): LayoutTranslatorRequirement.EMERALD for index in indices } rng = MagicMock() # Run results = base_patches_factory.gate_assignment_for_configuration( configuration, echoes_resource_database, rng) # Assert assert results == {TranslatorGate(index): emerald for index in indices}
def test_reach_size_from_start(echoes_game_description, default_layout_configuration): # Setup configuration = dataclasses.replace( default_layout_configuration, trick_level_configuration=TrickLevelConfiguration( LayoutTrickLevel.HYPERMODE), ) patches = echoes_game_description.create_game_patches() patches = patches.assign_gate_assignment( base_patches_factory.gate_assignment_for_configuration( configuration, echoes_game_description.resource_database, Random(15000))) game, state = logic_bootstrap(configuration, echoes_game_description, patches) # Run reach = GeneratorReach.reach_from_state(game, state) # Assert assert len(list(reach.nodes)) == 25 assert len(list(reach.safe_nodes)) == 4