Commit Graph

244 Commits

Author SHA1 Message Date
Dustin Carlino
a1988f269c Based on importer config, try using separate cyclepaths directly. #330
Small adjustments to unzoomed rendering and stop sign placement.

Regenerate all maps because of the format change, but only Cambridge
changes. Since we're doing this anyway, also pull in leisure=garden.
2021-01-12 11:13:45 -08:00
Dustin Carlino
e99def9124 Switch all error handling to anyhow. Nothing consumes our code as a
library yet, so this is a step forward from string errors. Manually
tested how errors show up (including the nice with_context bit).
2021-01-05 11:35:03 -08:00
Dustin Carlino
d529ae2e5c Upgrade usvg and rand 2021-01-04 09:19:54 -08:00
Dustin Carlino
2945913fb3 Upgrade rand 2021-01-03 19:48:03 -08:00
Dustin Carlino
5c04923dff Split abstio crate out from abstutil. #253
widgetry, geom, and abstutil may wind up on crates.io in some form to
let other projects use widgetry. abstio has A/B Street-specific tricks
for reading data on native/web. Note widgetry still depends on abstio,
will figure out how to clean that up next.
2021-01-02 10:28:00 -08:00
Dustin Carlino
0b8c86e2c8 Adjust the threshold for what counts as a straight vs right turn from 10
degrees to 30 degrees. It works around the issue in #428, but it doesn't
solve the root cause there, so the unit test is also adjusted to provide
a way to solve the harder problem.

Regenerated all maps accordingly. Many traffic signals tended to
improve, with a straight turn marked protected, instead of permitted as
a "right turn."
2020-12-18 12:06:16 -08:00
Dustin Carlino
c256c5ebee Get a small unit testable repro of #428 2020-12-17 11:11:17 -08:00
Dustin Carlino
915e12ff7e Remove PersonID from Scenario; the simulation will assign IDs sequentially. They're redundant. #258
Slightly reduces scenario file size, and simpler code to construct
scenarios.
2020-11-18 14:13:25 -08:00
Dustin Carlino
4ab98b1477 Compact the schedule in Scenario by just storing each TripEndpoint. #258
The schedule validation changes slightly. No-op trips between the same
origin/destination are now an error and get filtered out.

huge_seattle scenario goes from 129MB to 110MB with the redundant
endpoints removed.
2020-11-18 11:13:09 -08:00
Dustin Carlino
8d80668a56 The big cutover: a Scenario's trips are now just start/endpoints and mode, not the old SpawnTrip structure with a bunch of different cases and details picked out. #258
Not regenerating scenarios yet...
2020-11-17 16:28:52 -08:00
Dustin Carlino
0599d4b47b Whittle down places constructing SpawnTrip manually. #258 2020-11-17 14:10:47 -08:00
Dustin Carlino
5ea3c2ba6f Remove support for remote trips, and stop plumbing off-map locations. A
remote trip goes between two locations off-map, specified just by a GPS
coordinate. The trips aren't simulated at all. They were originally
added to support Orestis's pandemic model, to handle transmission
off-map in shared buildings. This work has died off, there are no other
anticipated use cases for remote trips, and they complicate bigger
refactorings. #258

This also has the nice side effect of substantially reducing scenario
size -- huge_seattle from 177MB to 147MB. That unused metadata was
expensive!
2020-11-17 10:14:23 -08:00
Dustin Carlino
22cef74aec Always allow blocking a degenerate intersection. Visually inspected on
the lane-changing test map. #382

Also abandon sim.run_until_done; the only caller was the LC test, and it
uses 30s steps inappropriately anyway.
2020-11-12 11:34:17 -08:00
Dustin Carlino
7854823c28 Change the to/from permanent map edits APIs to be a little more ergonomic 2020-11-12 10:13:32 -08:00
Dustin Carlino
4b557fa6de Bring in fresh OSM for Seattle. Because it's so annoying to manually
repair proposals when roads change upstream, make the test dump a
repaired file before failing. Manually inspect/amend that.
2020-11-11 15:16:06 -08:00
Dustin Carlino
aa966d7533 Upgrade a bunch of dependencies 2020-11-11 12:02:53 -08:00
Dustin Carlino
3e7c0e51c4 Set up a test scenario for lane-changing to reproduce #382. The same
problems aren't quite captured, but it's a start.
2020-11-11 11:33:47 -08:00
Dustin Carlino
a3bcf5181c Make the map editor be able to produce synthetic .osm, and use it to
create a map exemplifying the lane-changing problems of #382.
2020-11-11 10:44:45 -08:00
Dustin Carlino
ac6eff31ef Rename some maps to remove the now-redundant city. #326 2020-11-05 15:24:02 -08:00
Dustin Carlino
cda586dfc9 Cleanup by moving some methods to belong to MapName. #326 2020-11-05 14:18:13 -08:00
Dustin Carlino
4f2cda8d53 Reorganize data/system/ files by city! The only interesting change is
abstutil::path_all_maps becoming abstutil::list_all_maps. #326
2020-11-05 14:05:48 -08:00
Dustin Carlino
576e64e246 Consolidate integration tests from the map_tests crate and some of the
stuff smushed into game for some reason
2020-11-05 12:42:52 -08:00
Dustin Carlino
f20b7912eb nuke tests and the custom runner. I've never managed to use this regularly, it constantly makes refactoring more annoying, and validation gets expressed in more direct ways by other processes. will revive at some point properly with a better plan. 2020-03-12 14:12:59 -07:00
Dustin Carlino
6e8846bf85 bring back elevation data before the hackathon. manual revert of 35b7c18df9 2020-03-11 11:08:49 -07:00
Dustin Carlino
e5d9d80c14 make sim stepping way more precise, doing minimal amount of time
advancement in the innermost layer

tested by making sure prebaked results don't budge
2020-02-28 14:52:41 -08:00
Dustin Carlino
b2216bb482 not all lanes have to be the same width. make sidewalks a bit thinner. 2020-01-28 17:26:14 -08:00
Dustin Carlino
d9a68332e5 make all crates build (sim.save became mut) 2019-12-18 16:31:10 -08:00
Dustin Carlino
c3348957c1 group data/input/osm 2019-12-03 12:25:33 -08:00
Dustin Carlino
0e99f40150 merge data/shapes and data/input. stop keeping around raw .kmls. adjust
gitignore to make it easier to spot defunct files in my repo
2019-12-03 11:55:54 -08:00
Dustin Carlino
a043a9ba05 clean up more of abstutil path/filesystem API 2019-12-03 09:59:43 -08:00
Dustin Carlino
720f9b8b30 similar for writing 2019-12-02 20:41:09 -08:00
Dustin Carlino
808c3da141 panic early with a nice error if we cant read a binary or json file 2019-12-02 20:35:20 -08:00
Dustin Carlino
aa1d7faa00 prototyping turn grouping for editing and understanding traffic signals.
half-baked, but worth moving forwards. starting to rip out old turn icon
stuff (oops, accidentally squished into this commit)
2019-11-21 15:09:57 -08:00
Dustin Carlino
463ed7022e small fixes/cleanups to map layer:
- print highest cost in heatmap over all turns
- rm defunct label support for roads/bldgs
- trim out unused methods from Map
- making spawner go through sim layer to get paths, consolidating a bit
2019-11-18 10:33:36 -08:00
Dustin Carlino
7400659820 ah, update fixes to remove synthetic field 2019-11-06 11:30:59 -08:00
Dustin Carlino
6f50cbaa30 finishing the big cutover from stable to original IDs. main path works,
now looking at map editor
2019-10-28 12:40:09 -07:00
Dustin Carlino
75e155fec6 filter out parking lanes without any sidewalks at all nearby (and also
warn about them)
2019-10-26 17:53:09 -07:00
Dustin Carlino
1e903c6cee pass a flag to disable using mapfixes, since it's annoying to keep temporarily deleting these 2019-10-25 10:09:47 -07:00
Dustin Carlino
2313b06995 DISABLED: apply sidewalk hints, same as parking. need to sort out what
should happen with parking without sidewalks
2019-10-23 13:00:42 -07:00
Dustin Carlino
9cab5bf903 prep before bringing in king county sidewalks. clean up lane type
calculation, move motorway/parking filter earlier. stop bringing in
street signs.
2019-10-23 09:35:41 -07:00
Dustin Carlino
393eaff249 compacting SimOptions and SimFlags 2019-10-01 14:22:00 -07:00
Dustin Carlino
f18fc72265 finish structopt removal 2019-09-18 17:29:34 -07:00
Dustin Carlino
dd02010614 switched to my own CLI parsing in convert_osm, away from structopt. compilation time down from 6.7s to 4.5s, and parsing is more clear now! 2019-09-18 16:37:22 -07:00
Dustin Carlino
83834f7d40 actually, deferring remove_disconnected has problems.. still need to remove cul-de-sacs early. also, remove the two synthetic maps... will make them again from scratch once the raw_data format is stable. unused in the meantime. 2019-09-17 10:47:47 -07:00
Dustin Carlino
43c2c72e71 importing street sign dataset to override bad parking categories from blockface. the signs look overeager... so disabling 2019-09-08 17:23:53 -07:00
Dustin Carlino
36f4ccecb6 do the last-minute work of gluing a ped to an available car 2019-09-05 13:39:19 -07:00
Dustin Carlino
6d7d3d4a43 warp to car parked in garage, without having to define a DrawCar for it 2019-09-02 11:42:29 -07:00
Dustin Carlino
408078247c fix fix_map_geom. the grand raw_data simplification is now over! 2019-08-26 17:40:10 -07:00
Dustin Carlino
1936f5f75e match offstreet parking KML to buildings 2019-08-25 14:00:25 -07:00
Dustin Carlino
a5b73c060a make savestate_every a flag again 2019-08-16 13:34:38 -07:00
Dustin Carlino
3cebc3cc44 try using freeform policy at all intersections, to see how it affects gridlock 2019-08-16 11:17:27 -07:00
Dustin Carlino
96db77e8b2 stop importing traffic signal data from king county. OSM's data is higher-quality and already attached to specific nodes. 2019-08-15 14:19:11 -07:00
Dustin Carlino
4e83f492d8 upgrade rand, get rid of now unneeded serde1 feature, in hopes of fixing feature mismatch between deps 2019-08-15 12:14:35 -07:00
Dustin Carlino
77c01580f1 refactoring path references... 2019-08-04 17:11:33 -07:00
Dustin Carlino
6bb5ed4407 parking lane overrides in hints. removing parking from much of 23rd.
more involved than I anticipated, because the override changes road
width and forces us to recalc intersection polygons
2019-07-01 14:14:18 -05:00
Dustin Carlino
7a49c585cf remove building_type and stop reading the residential permit shapefile 2019-06-18 14:58:57 -07:00
Dustin Carlino
0adeac1d53 remove the single point associated with intersections, now that we're
actually going to be mucking with geometry. it wasnt doing anything
useful anyway. also a round of clippy.
2019-06-12 10:10:04 -07:00
Dustin Carlino
35b7c18df9 remove elevation from map model. never been used, no anticipated need for it 2019-06-12 07:25:31 -07:00
Dustin Carlino
4e2d16af29 consistently using file extensions of .json and .bin, merging duplicate abstutil io functions accordingly 2019-06-11 14:30:11 -07:00
Dustin Carlino
5ab5b7b3d3 actually apply scenario name when instantiating to sim run name, so savestates look nice. fix find next/prev savestate to not require exact current match -- why did I ever do that? 2019-06-06 11:55:49 -07:00
Dustin Carlino
a816a3d0be defining a better set of pre-converted maps. disabling fix_ramps in most
cases.
2019-05-16 16:22:52 -07:00
Dustin Carlino
ba71d2d5e6 dont be so confusing with CarAppearing in interactive commands -- dont retry if there's not room 2019-05-12 15:06:12 -07:00
Dustin Carlino
a4f6a773a9 fix up time limits for headless/tests. fix a few tests now that peds
walk slowly.
2019-05-08 20:05:52 -07:00
Dustin Carlino
73ae88bd98 adjust how periodic savestating happens to prep for truly variable timesteps 2019-05-08 12:36:46 -07:00
Dustin Carlino
d207c3c33a rip out parcels entirely; unused for long time and no anticipated uses 2019-04-11 11:40:37 -07:00
Dustin Carlino
3ea3ea199a completely remove most traces of MapEdits. quietly disconnect some
editor plugins
2019-03-18 15:37:02 -07:00
Dustin Carlino
7422877bcb handle ending while clipping into stuff 2019-03-17 18:48:24 -07:00
Dustin Carlino
440ff358cd option to headless to 'draw' everything, flush out all bugs 2019-03-17 18:13:30 -07:00
Dustin Carlino
5ca359998c upgrade some dependencies and list data source licenses in README 2019-03-11 16:04:47 -07:00
Dustin Carlino
5013cae4f9 fixing tests 2019-03-08 12:19:05 -08:00
Dustin Carlino
9d1bb00fbd adding a test for bikes 2019-03-02 17:22:41 -08:00
Dustin Carlino
0f71ee5210 make peds leave bus 2019-03-01 22:33:15 -08:00
Dustin Carlino
9c916e5d11 make sure buses dont block a sim from being considered done 2019-03-01 15:39:34 -08:00
Dustin Carlino
8d9a44fd76 making sure to call TripManager and publish events for most transitions 2019-02-28 19:07:40 -08:00
Dustin Carlino
05ffb18fbc publishing an event to make the parking tests work 2019-02-28 10:54:03 -08:00
Dustin Carlino
e6ff4481e7 do ID allocation more up-front 2019-02-27 14:29:45 -08:00
Dustin Carlino
84c1a94f49 implement test helper for seeding parked cars 2019-02-27 13:23:13 -08:00
Dustin Carlino
50451b6120 make tests build again. cleanup sim::load 2019-02-27 13:16:28 -08:00
Dustin Carlino
76ee37c077 get rid of Tick externally 2019-02-26 14:21:57 -08:00
Dustin Carlino
42c7c21246 removing many external dependencies on Tick. moving time parsing to
Duration.
2019-02-26 14:09:08 -08:00
Dustin Carlino
09af9e6cda removing the log crate completely. remove the DisplayLogs plugin, since
it's unused and unclear how it should work going forwards
2019-02-20 11:56:54 -08:00
Dustin Carlino
1848387ef0 starting to organize warnings in a much more reasonable way. 2019-02-20 10:08:02 -08:00
Dustin Carlino
b8eec25116 store Polygon in Building natively 2019-02-12 12:28:12 -08:00
Dustin Carlino
6da48c28c1 making small_seattle fully convert, with some less messy hacks. added it
as a test!
2019-02-11 16:13:29 -08:00
Dustin Carlino
8693bbc1e3 import residential building dataset 2019-02-10 19:24:34 -08:00
Dustin Carlino
ec01207369 try upgrading rand and serde again 2019-02-10 15:57:28 -08:00
Dustin Carlino
177f639f7b make sure bikes can actually start moving 2019-02-03 22:38:21 -08:00
Dustin Carlino
7b045146da ah, there are speeds low enough to round off to zero distance when applied with the timestep. systematically get rid of EPSILON_SPEED. 2019-02-03 18:10:29 -08:00
Dustin Carlino
7519fdf584 using strong Distance types in many more places 2019-01-30 15:54:54 -08:00
Dustin Carlino
0c6f7c424d removing dimensioned from last few crates 2019-01-30 14:29:42 -08:00
Dustin Carlino
2a70efde5f simplify: slice can fail. all the callers dont have to check for EPSILON_DIST
(also, disable not-so-useful geom unit tests that use randomness)
2019-01-29 18:53:04 -08:00
Dustin Carlino
e274fd9652 making ped_uses_transit test bit more robust by picking bldgs from the bus stops 2019-01-29 17:13:07 -08:00
Dustin Carlino
25e863dfc6 disable tests that've not worked in quite some time and dont seem to be important 2019-01-29 13:49:06 -08:00
Dustin Carlino
2e982ec827 making an infinite line type, to be less confusing 2019-01-28 18:28:05 -08:00
Dustin Carlino
191b87f148 dealing with geom bugs occurring on bigger maps 2019-01-28 15:11:13 -08:00
Dustin Carlino
07397c642a rephrase trim_to_pt way more understandably 2019-01-26 15:05:34 -08:00
Dustin Carlino
76dc85d5c8 remove unnecessarily boxed closures, and use generics instead 2019-01-17 15:22:31 -08:00
Dustin Carlino
3422877d3d adding a stable ID for raw roads and intersections. way easier to refer to things in the midst of deletions. 2019-01-17 11:10:05 -08:00
Dustin Carlino
e8e119dbbf remove all the polyline shifting/polygon variants that might fail 2019-01-15 15:25:00 -08:00
Dustin Carlino
9590ee7e78 preps for Pt2D with 1cm resolution... immutable PolyLine, helper for
pt-pt distance
2019-01-12 19:13:16 -08:00
Dustin Carlino
daa55026ae making shift left/right for polyline too 2019-01-12 14:13:15 -08:00
Dustin Carlino
caf4006837 explicitly making shift right/left for Line 2019-01-12 13:48:14 -08:00
Dustin Carlino
41e487bbcc time limit on completion tests 2019-01-11 11:28:42 -08:00
Dustin Carlino
c09fa98f57 upgrade a few dependencies 2019-01-11 10:55:58 -08:00
Dustin Carlino
1d9f3320fa implementing draw_line and draw_rounded_line directly 2018-12-22 13:58:45 -08:00
Dustin Carlino
bec3e58563 actually clear out line in test results 2018-12-21 09:28:02 -08:00
Dustin Carlino
cdc9c58ab4 start tutorial mode centered on the right thing. improve map label API by returning references. 2018-12-18 09:57:51 -08:00
Dustin Carlino
ebc5419f9a jump to previous/next savestate 2018-12-09 17:47:54 -08:00
Dustin Carlino
897833e446 hacking around bug where cars follow too closely. 2018-12-09 14:20:03 -08:00
Dustin Carlino
56d3c81d82 easily watch logs as a slow test runs 2018-12-09 13:43:06 -08:00
Dustin Carlino
caae9bcc36 clippy pt3 2018-12-09 11:33:24 -08:00
Dustin Carlino
f48757c5e7 clippy pt2 2018-12-08 19:56:54 -08:00
Dustin Carlino
b7edc07580 moving a few inlined unit tests to my test framework. didnt spot these before. 2018-12-06 12:59:08 -08:00
Dustin Carlino
e3f9bcd1b6 fix parking tests; i adjusted the spot length a few days ago 2018-12-06 12:10:53 -08:00
Dustin Carlino
375a923a9d try removing most extern crate's 2018-12-06 11:00:13 -08:00
Dustin Carlino
f64f411093 upgrade all crates to 2018 in Cargo.toml. this requires switching to
crate:: paths everywhere. not yet fiddling with 'extern crate's
2018-12-06 10:57:31 -08:00
Dustin Carlino
6a0cd7f71e rust 2018: run the new fmt, delete the unneeded script 2018-12-06 10:05:50 -08:00
Dustin Carlino
4d7c1203a6 the great control layer merge 2018-11-30 13:52:50 -08:00
Dustin Carlino
14097bebfc moving BusRouteID to map_model layer from sim 2018-11-29 12:38:06 -08:00
Dustin Carlino
e606ab79fa adjust ped_uses_bus test; need a bit more time for the bus to reach the final stop 2018-11-28 13:27:14 -08:00
Dustin Carlino
e150ce3aef new test to make sure raw->map conversion is also deterministic, not just convert_osm 2018-11-28 09:36:42 -08:00
Dustin Carlino
149758d5ae use traffic signal data from new kml, not old shp that's no longer online 2018-11-27 13:10:51 -08:00
Dustin Carlino
5406593843 fix ped_uses_bus test 2018-11-27 12:34:19 -08:00
Dustin Carlino
93dd6b1c17 fix an old path in the map_conversion test 2018-11-27 10:11:10 -08:00
Dustin Carlino
8509b46b0b print how much time all tests took 2018-11-26 16:12:18 -08:00
Dustin Carlino
cb4c5079a6 woops, forgot to hook up logging in tests 2018-11-26 14:46:27 -08:00
Dustin Carlino
f26de57039 revive the other transit test 2018-11-26 14:36:59 -08:00
Dustin Carlino
118d87fc66 get a transit test passing again, and make debugging bus stops in the UI a little easier 2018-11-26 13:56:35 -08:00
Dustin Carlino
b260de1d50 make test output stuff clickable inside urxvt 2018-11-26 12:27:06 -08:00
Dustin Carlino
88ad929644 revive the other parking test. add option to always show savestate 2018-11-26 11:31:45 -08:00
Dustin Carlino
56c885e7ab revive the first parking test. make helpers to look up labeled stuff from synthetic maps. make helpers to seed specific parked cars and start certain trips again. 2018-11-26 11:22:17 -08:00
Dustin Carlino
6fbb22d9e4 port over the last two tests, partly 2018-11-25 08:57:33 -08:00
Dustin Carlino
d5ce679b38 cleaning up runner output 2018-11-24 11:43:38 -08:00
Dustin Carlino
fe9f974c73 optionally associate a test with a sim savestate for easy repro / watching in UI 2018-11-24 11:30:43 -08:00
Dustin Carlino
1e62059815 print test results as they happen 2018-11-24 10:29:11 -08:00
Dustin Carlino
d5e0a6fc49 put test results in different directories and remove successful logs 2018-11-24 10:18:04 -08:00
Dustin Carlino
03712f65d5 filter tests by name 2018-11-24 10:09:47 -08:00
Dustin Carlino
cec29beda5 moving two sim tests over to the new runner 2018-11-23 16:11:27 -08:00
Dustin Carlino
878889133a running just fast/slow tests in runner, and making the helper script
invoke the new runner
2018-11-23 15:53:28 -08:00
Dustin Carlino
ff0e921c15 grouping tests with suite name 2018-11-23 15:19:51 -08:00
Dustin Carlino
5de255b55b printing test progress live, timing things 2018-11-23 15:14:27 -08:00
Dustin Carlino
e8dc01fd98 moving convert_osm test to new runner 2018-11-23 15:07:08 -08:00
Dustin Carlino
9f0b2ea756 more test runner niceness: color 2018-11-23 15:01:24 -08:00
Dustin Carlino
fcf7ea161c prototyping a better rust test runner that captures output in files
and prints results nicely
2018-11-23 14:51:14 -08:00