Skip to content

Add possibility to choose between NODES and EDGES dynamics - #546

Open
Grufoony wants to merge 1 commit into
mainfrom
nodedge-dyn
Open

Grufoony wants to merge 1 commit into
mainfrom
nodedge-dyn

Conversation

@Grufoony

@Grufoony Grufoony commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

@claude

claude Bot commented Oct 28, 2026

Copy link
Copy Markdown

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@github-actions

github-actions Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Benchmark comparison

✅ No performance regressions detected.

f27e92e32e723791552e081b332a90fc7ec0f3ae → 417670c77a7899e03a91bf5f6226d85c44598438 · tolerance ±10% · α = 0.05 · regressions below 5 ns are not flagged

🟢 improvement: 2 · ⚪ within noise: 85

Benchmark Base Head Δ p-value Status
BM_Street_SetLaneMapping 1.97 ns 1.72 ns -12.4% 0.000 🟢 improvement
BM_Street_nAgents 2.18 ns 1.93 ns -11.5% 0.000 🟢 improvement
All benchmarks (87)
Benchmark Base Head Δ p-value Status
BM_Agent_ConstructionRandom 8.42 ns 8.42 ns +0.0% 0.885 ⚪ within noise
BM_Agent_ConstructionWithItinerary 23.6 ns 23.7 ns +0.8% 0.126 ⚪ within noise
BM_Agent_ConstructionWithTrip 11.4 ns 11.4 ns -0.0% 0.665 ⚪ within noise
BM_Agent_Getters 0.957 ns 0.957 ns +0.0% 0.665 ⚪ within noise
BM_Agent_IncrementDistance 0.443 ns 0.443 ns +0.0% 0.840 ⚪ within noise
BM_Agent_Itinerary 0.225 ns 0.226 ns +0.5% 0.403 ⚪ within noise
BM_Agent_Reset 0.111 ns 0.111 ns +0.1% 0.885 ⚪ within noise
BM_Agent_SetFreeTime 5.41e-10 ns 5.15e-10 ns -4.7% 0.402 ⚪ within noise
BM_Agent_SetNextStreetId 5.81e-10 ns 5.25e-10 ns -9.6% 0.030 ⚪ within noise
BM_Agent_SetSpeed 5.36e-10 ns 5.35e-10 ns -0.2% 0.908 ⚪ within noise
BM_Agent_SetSrcNodeId 5.6e-10 ns 5.41e-10 ns -3.5% 0.665 ⚪ within noise
BM_Agent_SetStreetId 0.111 ns 0.111 ns -0.1% 0.078 ⚪ within noise
BM_Agent_Trip 9.67 ns 9.63 ns -0.4% 0.030 ⚪ within noise
BM_Agent_UpdateItinerary 5.81e-10 ns 5.56e-10 ns -4.4% 0.236 ⚪ within noise
BM_CoilStreet_AddAgent 36.5 ns 44.3 ns +21.3% 0.470 ⚪ within noise
BM_CoilStreet_Dequeue 1.48e-09 ns 2.05e-09 ns +38.5% 0.402 ⚪ within noise
BM_CoilStreet_MeanFlow 0.241 ns 0.245 ns +1.4% 0.000 ⚪ within noise
BM_FirstOrderDynamics_AddAgents_RandomODs/agents:1000 398 µs 417 µs +4.8% 0.260 ⚪ within noise
BM_FirstOrderDynamics_AddAgents_RandomODs/agents:10000 4.25 ms 4.2 ms -1.2% 0.371 ⚪ within noise
BM_FirstOrderDynamics_Empty_Evolve 356 µs 358 µs +0.7% 0.157 ⚪ within noise
BM_FirstOrderDynamics_Evolve_ConstantSpeed/agents:5000 455 µs 481 µs +5.5% 0.002 ⚪ within noise
BM_FirstOrderDynamics_Evolve_DataCollection/agents:5000 3.79 ms 3.88 ms +2.3% 0.237 ⚪ within noise
BM_FirstOrderDynamics_Evolve_ODs/agents:1000 388 µs 383 µs -1.2% 0.141 ⚪ within noise
BM_FirstOrderDynamics_Evolve_ODs/agents:10000 571 µs 563 µs -1.3% 0.583 ⚪ within noise
BM_FirstOrderDynamics_Evolve_ODs/agents:5000 456 µs 481 µs +5.5% 0.019 ⚪ within noise
BM_FirstOrderDynamics_Evolve_Random/agents:5000 492 µs 505 µs +2.5% 0.157 ⚪ within noise
BM_FirstOrderDynamics_Evolve_TransitionMatrix/agents:5000 509 µs 506 µs -0.6% 0.341 ⚪ within noise
BM_FirstOrderDynamics_UpdatePaths/destinations:10 49.4 ms 46.2 ms -6.5% 0.100 ⚪ within noise
BM_FirstOrderDynamics_UpdatePaths/destinations:100 421 ms 432 ms +2.5% 0.840 ⚪ within noise
BM_Intersection_AddAgentWithAngle 37.3 ns 37.9 ns +1.5% 0.019 ⚪ within noise
BM_Intersection_AddAgentWithoutAngle 38.1 ns 38.9 ns +2.1% 0.004 ⚪ within noise
BM_Intersection_AddStreetPriority 17.3 ns 17.2 ns -0.5% 0.312 ⚪ within noise
BM_Intersection_Construction 4.47 ns 4.46 ns -0.3% 0.100 ⚪ within noise
BM_Intersection_ConstructionWithPoint 4.69 ns 4.69 ns -0.1% 0.665 ⚪ within noise
BM_Intersection_Density 0.887 ns 0.887 ns +0.0% 1.000 ⚪ within noise
BM_Intersection_IsFull 0.223 ns 0.225 ns +0.8% 0.078 ⚪ within noise
BM_Intersection_SetStreetPriorities 24 ns 24.3 ns +1.1% 0.175 ⚪ within noise
BM_Intersection_nAgents 0.122 ns 0.111 ns -9.1% 0.003 ⚪ within noise
BM_Point_Haversine 35.4 ns 36.1 ns +2.0% 0.009 ⚪ within noise
BM_Point_ParseWKT 271 ns 274 ns +1.1% 0.078 ⚪ within noise
BM_PolyLine_FormatWKT/2 245 ns 246 ns +0.1% 0.795 ⚪ within noise
BM_PolyLine_FormatWKT/50 5.75 µs 5.91 µs +2.8% 0.157 ⚪ within noise
BM_PolyLine_ParseWKT/2 691 ns 712 ns +3.0% 0.112 ⚪ within noise
BM_PolyLine_ParseWKT/50 15.3 µs 15.5 µs +1.5% 0.040 ⚪ within noise
BM_RoadNetwork_AddEdge 446 ns 451 ns +1.1% 0.931 ⚪ within noise
BM_RoadNetwork_AddNode 50.9 ns 57 ns +11.9% 0.583 ⚪ within noise
BM_RoadNetwork_AdjustNodeCapacities 236 µs 252 µs +6.6% 0.194 ⚪ within noise
BM_RoadNetwork_AllEdgePathsTo 7.21 ms 7.1 ms -1.5% 0.470 ⚪ within noise
BM_RoadNetwork_AllPathsTo 3.71 ms 3.88 ms +4.6% 0.194 ⚪ within noise
BM_RoadNetwork_AutoAssignRoadPriorities 1.39 ms 1.4 ms +1.0% 0.507 ⚪ within noise
BM_RoadNetwork_CSVImport 803 µs 812 µs +1.1% 0.583 ⚪ within noise
BM_RoadNetwork_CSVImport_Forli 269 ms 257 ms -4.3% 0.751 ⚪ within noise
BM_RoadNetwork_EdgeRandomAccess 15.5 ns 16.1 ns +4.1% 0.157 ⚪ within noise
BM_RoadNetwork_EdgesLooping 420 µs 441 µs +5.2% 0.285 ⚪ within noise
BM_RoadNetwork_GeoJSONImport 298 µs 300 µs +0.6% 0.624 ⚪ within noise
BM_RoadNetwork_NodeRandomAccess 13.6 ns 13.9 ns +1.9% 0.624 ⚪ within noise
BM_RoadNetwork_NodesLooping 139 µs 139 µs -0.4% 0.795 ⚪ within noise
BM_RoadNetwork_ShortestPath 4.55 ms 4.73 ms +3.9% 0.665 ⚪ within noise
BM_RoadNetwork_StreetLookup 29.1 ns 30.6 ns +5.1% 0.371 ⚪ within noise
BM_Roundabout_Construction 18.6 ns 19 ns +2.5% 0.000 ⚪ within noise
BM_Roundabout_ConstructionWithPoint 18.8 ns 19.2 ns +2.1% 0.001 ⚪ within noise
BM_Roundabout_Density 0.965 ns 0.965 ns +0.0% 0.931 ⚪ within noise
BM_Roundabout_Dequeue 47.8 ns 49 ns +2.6% 0.009 ⚪ within noise
BM_Roundabout_Enqueue 91.5 ns 94.6 ns +3.3% 0.126 ⚪ within noise
BM_Roundabout_IsFull 0.696 ns 0.693 ns -0.5% 0.507 ⚪ within noise
BM_Street_AddAgent 42.7 ns 70 ns +63.7% 0.237 ⚪ within noise
BM_Street_Construction 60.6 ns 60.1 ns -0.9% 0.030 ⚪ within noise
BM_Street_Density 2.43 ns 2.43 ns -0.1% 0.470 ⚪ within noise
BM_Street_Dequeue 1.82e-09 ns 1.69e-09 ns -7.2% 0.386 ⚪ within noise
BM_Street_Enqueue 1.88e-09 ns 2.14e-09 ns +13.9% 0.371 ⚪ within noise
BM_Street_SetLaneMapping 1.97 ns 1.72 ns -12.4% 0.000 🟢 improvement
BM_Street_nAgents 2.18 ns 1.93 ns -11.5% 0.000 🟢 improvement
BM_Street_nExitingAgents 2.22 ns 2.21 ns -0.5% 0.126 ⚪ within noise
BM_Street_nMovingAgents 0.241 ns 0.242 ns +0.1% 0.840 ⚪ within noise
BM_TrafficLight_Construction 6.51 ns 6.53 ns +0.3% 0.100 ⚪ within noise
BM_TrafficLight_ConstructionWithPoint 7.01 ns 7.04 ns +0.4% 0.069 ⚪ within noise
BM_TrafficLight_IncreasePhases 179 ns 368 ns +105.3% 0.341 ⚪ within noise
BM_TrafficLight_IsGreen 3.68 ns 3.69 ns +0.3% 0.175 ⚪ within noise
BM_TrafficLight_MeanGreenTime 44 ns 44.6 ns +1.4% 0.260 ⚪ within noise
BM_TrafficLight_OperatorIncrement 2.64 ns 2.64 ns +0.3% 0.126 ⚪ within noise
BM_TrafficLight_ResetCycles 21.3 ns 21.7 ns +1.8% 0.260 ⚪ within noise
BM_TrafficLight_SetComplementaryCycle 368 ns 382 ns +3.8% 0.023 ⚪ within noise
BM_TrafficLight_SetCycle 94.5 ns 100 ns +6.0% 0.078 ⚪ within noise
BM_TrajectoryCollection_Filter/100 6.28 ms 6.34 ms +1.0% 0.005 ⚪ within noise
BM_TrajectoryCollection_Filter/1000 68.1 ms 69.5 ms +2.0% 0.007 ⚪ within noise
BM_TrajectoryCollection_FromDataframe/100 2.09 ms 2.07 ms -1.1% 0.069 ⚪ within noise
BM_TrajectoryCollection_FromDataframe/1000 23 ms 23 ms +0.1% 0.403 ⚪ within noise

@codecov

codecov Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.42857% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.17%. Comparing base (b1292e5) to head (417670c).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
test/mobility/Test_dynamics.cpp 94.73% 3 Missing and 2 partials ⚠️
src/dsf/mobility/FirstOrderDynamics.cpp 98.13% 2 Missing ⚠️
test/mobility/Test_traffic_simulator.cpp 92.85% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #546      +/-   ##
==========================================
- Coverage   95.19%   95.17%   -0.02%     
==========================================
  Files          65       65              
  Lines        9836     9920      +84     
  Branches     1177     1190      +13     
==========================================
+ Hits         9363     9441      +78     
- Misses        446      450       +4     
- Partials       27       29       +2     
Flag Coverage Δ
unittests 95.17% <96.42%> (-0.02%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add a clear way to select between Node-based Dynamics and Edge-based Dynamics

1 participant