1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-18 12:33:17 +01:00
Commit Graph

557 Commits

Author SHA1 Message Date
Richard Fine
357ee293f3 Remove default value for SimplePathfindingScenario steps
Remove the default value as it's more consistent to just always have the test case specify it explicitly.
2019-01-02 14:12:51 +00:00
Richard Fine
49e46f8940 Replace GetSurfaceStyleAtLocation with map_get_surface_element_at
There exists a helper function map_get_surface_element_at which already searches a tile's element list for the surface element, so we can just use that.
2019-01-02 14:12:51 +00:00
Michał Janiszewski
f4685f7b94 Add Pathfinding test to CMake 2019-01-02 14:12:51 +00:00
Richard Fine
8fb81a2d89 Initial data-driven tests for pathfinder behaviour
Introduce some basic scenario-style tests for the pathfinding AI. There
are two tests:

* Test that a peep can get from a given start position to a given end
  position, and that it takes them an expected number of ticks to do so.
  Also test that they did not walk on any 'forbidden' tiles in the process,
  e.g. tiles that are completely the wrong direction from the goal etc.

* Test that a peep can *not* get from a given start position to a given
  end position after a given number of ticks.

Each test is parametric, and instantiated for multiple different
start/end positions within the provided test park. If we find a new
situation that needs a test, it should just be a matter of building
that situation in the saved game and then adding a line to the code to
set it up.

Indicating 'forbidden' tiles is done using terrain surface type IDs:
tiles that the pathfinder should never send the peep into should be
painted with the red neon surface type (index 8). This means we have
no way to forbid some path elements on a tile while allowing others,
but we don't need that right now.

Similarly, to help ensure that the test data and code are kept in
sync, the tests also require that peep start tiles are painted with
the green neon surface type (index 11) and that goal tiles are
painted with the yellow neon surface type (index 9).
2019-01-02 14:12:08 +00:00
Matt
045e72e863 Add more replays to test. 2019-01-02 08:30:33 +01:00
Matt
8615690891 Fix timestamp not being stored. 2019-01-02 05:36:31 +01:00
Ted John
37f76d1687 Move station fields into new station struct 2019-01-01 02:26:14 +00:00
Matt
8721bef807 Fix TileElementWantsFootpathConnection test not releasing context. 2018-12-30 12:24:41 +01:00
Matt
f868c23077 Update replay. 2018-12-30 00:07:39 +01:00
Matt
0ba42d6899 Fix TileElementWantsFootpathConnection test not releasing context. 2018-12-29 22:58:33 +01:00
Matt
5497036f01 Add missing static keyword. 2018-12-29 19:23:28 +01:00
Matt
871a24c410 Rename replay file. 2018-12-29 19:23:28 +01:00
Matt
0a62938e42 Pretty print the test parameter. 2018-12-29 19:23:28 +01:00
Matt
711d93cb30 Update replay test. 2018-12-29 19:23:27 +01:00
Matt
5cfc06573e Ignore replay test when network is disabled. 2018-12-29 19:23:27 +01:00
Matt
ccc3227113 Cleanup. 2018-12-29 19:23:27 +01:00
Matt
669fbd62dd Add missing source file. 2018-12-29 19:23:27 +01:00
Matt
017f190a52 Add basic regression tests via the replay system. 2018-12-29 19:23:27 +01:00
Michał Janiszewski
05ede45b8e Fix ICU include dirs for tests (#8499) 2018-12-19 23:31:24 +01:00
Ted John
06f203a7e7 Implement surfaces, edges and stations as objects 2018-12-09 23:30:40 +00:00
Matt
468d94a6ca Remove gCurrentViewportFlags 2018-12-05 23:09:17 +01:00
Hielke Morsink
354d973a48 Use std::size instead of Util::CountOf 2018-11-23 21:59:08 +01:00
Felix Pelletier
0cd7f1e07c Fix #8142: Reliability of unbreakable rides can go below 100% 2018-11-02 09:04:27 +01:00
Michael Steenbeek
f8add7f62e Rename rct_tile_element to TileElement 2018-11-01 13:53:50 +01:00
Michael Steenbeek
d89c3d9e67 Replace calls to get path edges
This replaces most calls/direct access to the footpath edges (i.e. the orthogonal directions, not the corners). This includes places where the whole byte was retrieved, but only compared against orthogonal directions.
2018-10-31 15:08:06 +01:00
Ted John
211bd84cc3 Merge pull request #7806 from Gymnasiast/feature/rtl-rendering
Fix RTL text rendering for Linux / macOS
2018-10-16 22:26:45 +01:00
Gymnasiast
37f59e17dc Replace C-style isSloped() function 2018-10-04 12:13:17 +02:00
Michael Steenbeek
28d302d653 Remove more direct access to TileElement->type 2018-10-03 12:31:02 +02:00
Gymnasiast
eae09ea16d Attempt at fixing language pack test 2018-10-01 19:34:09 +02:00
Michael Steenbeek
ce13d1b961 Fix tests 2018-09-27 22:15:04 +02:00
Gymnasiast
5d22166fc3 Fix TestPaint 2018-09-25 21:57:21 +02:00
Gymnasiast
eecf465e3b Fix formatting 2018-09-25 21:57:21 +02:00
Michael Steenbeek
5047d326a6 Copy new struct methods to TestPaint compat 2018-09-25 21:57:21 +02:00
Michael Steenbeek
3f17782692 Move direct access to maze entry to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek
75b5c45a97 Remove residual direct access to most track fields 2018-09-25 21:57:21 +02:00
Michael Steenbeek
104d4f2f58 Move photo functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek
897a2982a0 Move brake/booster speed functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek
e6d5638815 Move inverted() functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek
0cea008c18 Move cable lift functions to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek
69f02400f9 Move GetColourScheme to struct methods 2018-09-25 21:57:21 +02:00
Michael Steenbeek
650971bc68 Move HasChain to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast
67d7d5c022 Move getting station index to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast
ae4c464ce7 Move getting track sequence to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast
8908f3f47e Move getting track type to struct methods 2018-09-25 21:57:21 +02:00
Gymnasiast
e20ba5d4a3 Add missing stuff to TestPaint 2018-09-16 21:34:51 +02:00
Gymnasiast
e6dd093218 Remove unused function from Testpaint compat 2018-09-16 21:34:51 +02:00
Michael Steenbeek
1d3baef9b7 Remove some C-style tile element functions 2018-09-16 21:34:04 +02:00
Michał Janiszewski
92b556352b Allow compilation of testpaint on non-x86 targets (#7989)
This will enable compilation of testpaint on targets different than x86.
It won't function the way it does on x86, but it should provide a way of
tackling various compilation errors that can only be seen in the very
specific environment required by testpaint proper.
2018-09-15 23:37:45 +02:00
Gymnasiast
d0f4b45bd2 Fix Testpaint 2018-09-13 20:14:44 +02:00
Ted John
7faa4e06e0 Update gtest to latest snapshot (#7950)
This fixes issues when building with MSVC 15.8.
2018-08-30 10:10:36 +02:00