You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the upcoming weeks, I'm going to work on test cases for the navigation area. I'm going to use this issue as a progress tracker but also as a place where anyone can propose scenarios to implement.
Please note that many scenarios will be tested in 3D only since quite a lot of navigation code is common for 2D and 3D so we don't need to duplicate test cases in many instances.
Server tests
NavigationServer3D
General
Server should be empty when initialized - checking if the internal state of server is correct after initialization
Server should release valid RIDs
Agent
Server should create a valid agent
Server should not report dangling agent in ProcessInfo
Server should not report removed agent in ProcessInfo
Server should report agent with active map in ProcessInfo
Server should be able to set/get basic agent params
Server should be able to set/get all agent's params
(...)
Map
Server should create a valid map
Server should yield default values in response to queries against empty map
Server should report active map in ProcessInfo
Server should not report active map in ProcessInfo
Server should be able to set/get all map's params
Server should report correct number of map's agents
Server should report correct number of map's obstacles
Server should report correct number of map's links
Server should report correct number of map's regions
Server should emit map_changed
Server should emit navigation_debug_changed
(...)
Link
Server should create valid link
Server should not report dangling link in ProcessInfo
Server should report link with active map in ProcessInfo
Server should be able to set/get all link's params
(...)
Region
Server should create valid region
Server should not report dangling region in ProcessInfo
Server should report region with active map in ProcessInfo
Server should yield default values in response to queries against empty region
(...)
Obstacle
Server should create valid obstacle
Server should be able to set/get all obstacle's params
(...)
NavigationServer2D
Server should be empty when initialized - checking if the internal state of server is correct after initialization
(...)
Node tests
NavigationRegion3D
New region should have valid RID
Navigation region should bake navigation mesh correctly
Navigation region should emit bake_finished
Navigation region should emit navigation_mesh_changed
Benchmark ideas are written in format like this:
TYPE: [Groups it Belongs]: Name: Description
Examples:
Exclusive:AStar3D: Create random map with 1000 inter connected points (probably using Delaunay3D), Benchmark solving it 1000 times from random 2 points
Exclusive:Navigation: On a premade map, solve 1000 random paths between two points on the surface of the shapes.
Agents: Benchmark 1000 moving agents in a map with local collision avoidance.
Benchmark ideas are written in format like this: TYPE: [Groups it Belongs]: Name: Description
Examples:
Exclusive:AStar3D: Create random map with 1000 inter connected points (probably using Delaunay3D), Benchmark solving it 1000 times from random 2 points
Exclusive:Navigation: On a premade map, solve 1000 random paths between two points on the surface of the shapes.
Agents: Benchmark 1000 moving agents in a map with local collision avoidance.
Some more examples to consider:
Exclusive:Navigation[Agents]: Benchmark 10 maps with 100 moving agents each and with local collision avoidance.
Exclusive:Navigation[Agents]: Benchmark 100 maps with 10 moving agents each and with local collision avoidance.
Exclusive:Navigation[Agents]: Benchmark 1000 moving agents in a map with local collision avoidance and with 100 triangular, static obstacles spread across the map.
Exclusive:Navigation[Agents/Queries]: Benchmark 1000 moving agents in a map with local collision avoidance while changing desired location (path recalculation) for 100 of them every second for 10 seconds.
In the upcoming weeks, I'm going to work on test cases for the navigation area. I'm going to use this issue as a progress tracker but also as a place where anyone can propose scenarios to implement.
Please note that many scenarios will be tested in 3D only since quite a lot of navigation code is common for 2D and 3D so we don't need to duplicate test cases in many instances.
Server tests
NavigationServer3D
General
Agent
ProcessInfo
ProcessInfo
ProcessInfo
Map
ProcessInfo
ProcessInfo
map_changed
navigation_debug_changed
Link
ProcessInfo
ProcessInfo
Region
ProcessInfo
ProcessInfo
Obstacle
NavigationServer2D
Node tests
NavigationRegion3D
bake_finished
navigation_mesh_changed
NavigationRegion2D
NavigationAgent3D
NavigationAgent2D
NavigationObstacle3D
NavigationObstacle2D
NavigationLink3D
NavigationLink2D
PRs
NavigationObstacle
andNavigationRegion
tests #73700agent
andmap
tests for 'NavigationServer3D' #78449NavigationServer3D
#78480NavigationServer3D
tests #78667This issue supplements #43440
The text was updated successfully, but these errors were encountered: