Archipelago/test/general
BadMagic100 218f28912e
Core: Generic Entrance Rando (#2883)
* Initial implementation of Generic ER

* Move ERType to Entrance.Type, fix typing imports

* updates based on testing (read: flailing)

* Updates from feedback

* Various bug fixes in ERCollectionState

* Use deque instead of queue.Queue

* Allow partial entrances in collection state earlier, doc improvements

* Prevent early loops in region graph, improve reusability of ER stage code

* Typos, grammar, PEP8, and style "fixes"

* use RuntimeError instead of bare Exceptions

* return tuples from connect since it's slightly faster for our purposes

* move the shuffle to the beginning of find_pairing

* do er_state placements within pairing lookups to remove code duplication

* requested adjustments

* Add some temporary performance logging

* Use CollectionState to track available exits and placed regions

* Add a method to automatically disconnect entrances in a coupled-compliant way

 Update docs and cleanup todos

* Make find_placeable_exits deterministic by sorting blocked_connections set

* Move EntranceType out of Entrance

* Handle minimal accessibility, autodetect regions, and improvements to disconnect

* Add on_connect callback to react to succeeded entrance placements

* Relax island-prevention constraints after a successful run on minimal accessibility; better error message on failure

* First set of unit tests for generic ER

* Change on_connect to send lists, add unit tests for EntranceLookup

* Fix duplicated location names in tests

* Update tests after merge

* Address review feedback, start docs with diagrams

* Fix rendering of hidden nodes in ER doc

* Move most docstring content into a docs article

* Clarify when randomize_entrances can be called safely

* Address review feedback

* Apply suggestions from code review

Co-authored-by: Aaron Wagener <mmmcheese158@gmail.com>

* Docs on ERPlacementState, add coupled/uncoupled handling to deadend detection

* Documentation clarifications

* Update groups to allow any hashable

* Restrict groups from hashable to int

* Implement speculative sweeping in stage 1, address misc review comments

* Clean unused imports in BaseClasses.py

* Restrictive region/speculative sweep test

* sweep_for_events->advancement

* Remove redundant __str__

Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>

* Allow partial entrances in auto indirect condition sweep

* Treat regions needed for logic as non-dead-end regardless of if they have exits, flip order of stage 3 and 4 to ensure there are enough exits for the dead ends

* Typing fixes suggested by mypy

* Remove erroneous newline 

Not sure why the merge conflict editor is different and worse than the normal editor. Crazy

* Use modern typing for ER

* Enforce the use of explicit indirect conditions

* Improve doc on required indirect conditions

---------

Co-authored-by: qwint <qwint.42@gmail.com>
Co-authored-by: alwaysintreble <mmmcheese158@gmail.com>
Co-authored-by: Doug Hoskisson <beauxq@users.noreply.github.com>
2024-12-27 21:04:02 +01:00
..
__init__.py Tests: Add checksum validation to the postgen datapackage test (#3456) 2024-06-10 09:28:28 +02:00
test_client_server_interaction.py Core: Fix auto-fill in the text client when clicking on a hint suggestion (#3267) 2024-06-01 07:32:41 -05:00
test_entrance_rando.py Core: Generic Entrance Rando (#2883) 2024-12-27 21:04:02 +01:00
test_fill.py Tests: Update test_fill.py to use Options API (#4128) 2024-11-01 12:43:28 +01:00
test_groups.py Tests: test that item/location name groups are not empty (#2748) 2024-01-30 08:34:54 +01:00
test_helpers.py Core: don't allow region, location, or entrance with duplicate names (#2453) 2024-02-25 21:56:27 +01:00
test_host_yaml.py settings: safer writing (#3644) 2024-07-25 09:10:36 +02:00
test_ids.py Tests: Add checksum validation to the postgen datapackage test (#3456) 2024-06-10 09:28:28 +02:00
test_implemented.py Tests: Add spheres test for missing indirect conditions (#3924) 2024-12-24 12:38:46 -05:00
test_items.py Tests: Add test that local/non local items aren't modified late #3976 2024-11-29 22:57:35 +01:00
test_locations.py WebHost, Core: Move item and location descriptions to `WebWorld` responsibilities. (#2508) 2024-05-23 02:08:08 -05:00
test_memory.py Core: fix some memory leak sources without removing caching (#2400) 2023-10-31 02:08:56 +01:00
test_names.py Tests: modern PEP8-ify core test modules and methods (#2298) 2023-10-22 13:00:27 +02:00
test_options.py Tests: Use Option.from_any instead of Option() in test_pickle_dumps, which is currently preventing Range options from using default: "random" #4197 2024-11-17 01:52:49 +01:00
test_player_options.py Generate: remove tag "-" (#3036) 2024-05-23 15:03:21 +02:00
test_reachability.py Blasphemous: Total overhaul (#3355) 2024-08-21 01:18:28 +02:00
test_settings.py Core: fix settings API for removal of Python 3.8, 3.9 (#4280) 2024-11-29 21:17:56 +01:00