From 6b8e221f6ee60ea6c3eb8e0bf3e9ae8d67836746 Mon Sep 17 00:00:00 2001 From: dabreegster Date: Tue, 1 Mar 2022 15:38:07 +0000 Subject: [PATCH] deploy: a421eaf9006837c164f887eb1b9b3da3ce2cd8e5 --- rustdoc/ltn/draw_cells/fn.color_cells.html | 2 +- rustdoc/ltn/draw_cells/fn.diffusion.html | 2 +- rustdoc/ltn/draw_cells/index.html | 2 +- .../draw_cells/struct.RenderCellsBuilder.html | 2 +- .../built_info/constant.BUILT_TIME_UTC.html | 2 +- .../block/constant.LOSSLESS_BLOCKFINDING.html | 2 +- rustdoc/map_model/objects/block/index.html | 2 +- .../map_model/objects/block/struct.Block.html | 8 ++--- .../objects/block/struct.Perimeter.html | 32 +++++++++---------- rustdoc/map_model/struct.Block.html | 8 ++--- rustdoc/map_model/struct.Perimeter.html | 32 +++++++++---------- rustdoc/src/ltn/draw_cells.rs.html | 8 ++++- .../out/built.rs.html | 2 +- rustdoc/src/map_model/objects/block.rs.html | 22 +++++++++++++ rustdoc/src/tests/main.rs.html | 6 ++++ rustdoc/tests/fn.test_blockfinding.html | 2 +- rustdoc/tests/index.html | 2 +- 17 files changed, 85 insertions(+), 51 deletions(-) diff --git a/rustdoc/ltn/draw_cells/fn.color_cells.html b/rustdoc/ltn/draw_cells/fn.color_cells.html index e6e1046003..920d35bde9 100644 --- a/rustdoc/ltn/draw_cells/fn.color_cells.html +++ b/rustdoc/ltn/draw_cells/fn.color_cells.html @@ -1,4 +1,4 @@ color_cells in ltn::draw_cells - Rust

Function ltn::draw_cells::color_cells[][src]

fn color_cells(
    num_cells: usize,
    adjacencies: HashSet<(usize, usize)>
) -> Vec<Color>
Notable traits for Vec<u8, A>
impl<A> Write for Vec<u8, A> where
    A: Allocator
+

Function ltn::draw_cells::color_cells[][src]

fn color_cells(
    num_cells: usize,
    adjacencies: HashSet<(usize, usize)>
) -> Vec<Color>
Notable traits for Vec<u8, A>
impl<A> Write for Vec<u8, A> where
    A: Allocator
\ No newline at end of file diff --git a/rustdoc/ltn/draw_cells/fn.diffusion.html b/rustdoc/ltn/draw_cells/fn.diffusion.html index 4dea808124..2280532a62 100644 --- a/rustdoc/ltn/draw_cells/fn.diffusion.html +++ b/rustdoc/ltn/draw_cells/fn.diffusion.html @@ -1,6 +1,6 @@ diffusion in ltn::draw_cells - Rust

Function ltn::draw_cells::diffusion[][src]

fn diffusion(
    grid: &mut Grid<Option<usize>>,
    boundary_marker: usize
) -> HashSet<(usize, usize)>
Expand description

Returns a set of adjacent indices. The pairs are symmetric – (x, y) and (y, x) will both be +

Function ltn::draw_cells::diffusion[][src]

fn diffusion(
    grid: &mut Grid<Option<usize>>,
    boundary_marker: usize
) -> HashSet<(usize, usize)>
Expand description

Returns a set of adjacent indices. The pairs are symmetric – (x, y) and (y, x) will both be populated. Adjacency with boundary_marker doesn’t count.

\ No newline at end of file diff --git a/rustdoc/ltn/draw_cells/index.html b/rustdoc/ltn/draw_cells/index.html index c3c55d876b..d782ce197e 100644 --- a/rustdoc/ltn/draw_cells/index.html +++ b/rustdoc/ltn/draw_cells/index.html @@ -1,6 +1,6 @@ ltn::draw_cells - Rust

Module ltn::draw_cells[][src]

Structs

+

Module draw_cells

Module ltn::draw_cells[][src]

Structs

Constants

Functions

Returns a set of adjacent indices. The pairs are symmetric – (x, y) and (y, x) will both be diff --git a/rustdoc/ltn/draw_cells/struct.RenderCellsBuilder.html b/rustdoc/ltn/draw_cells/struct.RenderCellsBuilder.html index 9d952b0b36..006a4d629c 100644 --- a/rustdoc/ltn/draw_cells/struct.RenderCellsBuilder.html +++ b/rustdoc/ltn/draw_cells/struct.RenderCellsBuilder.html @@ -8,7 +8,7 @@ }

Fields

grid: Grid<Option<usize>>

The grid only covers the boundary polygon of the neighborhood. The values are cell indices, and Some(num_cells) marks the boundary of the neighborhood.

colors: Vec<Color>bounds: Bounds

Bounds of the neighborhood boundary polygon

-
boundary_polygon: Polygon

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+
boundary_polygon: Polygon

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can diff --git a/rustdoc/map_gui/tools/title_screen/built_info/constant.BUILT_TIME_UTC.html b/rustdoc/map_gui/tools/title_screen/built_info/constant.BUILT_TIME_UTC.html index d99521574b..a9c415b861 100644 --- a/rustdoc/map_gui/tools/title_screen/built_info/constant.BUILT_TIME_UTC.html +++ b/rustdoc/map_gui/tools/title_screen/built_info/constant.BUILT_TIME_UTC.html @@ -1,5 +1,5 @@ BUILT_TIME_UTC in map_gui::tools::title_screen::built_info - Rust

Constant map_gui::tools::title_screen::built_info::BUILT_TIME_UTC[][src]

pub const BUILT_TIME_UTC: &str = r"Tue, 01 Mar 2022 13:16:44 +0000";
Expand description

The build time in RFC2822, UTC.

+

Constant map_gui::tools::title_screen::built_info::BUILT_TIME_UTC[][src]

pub const BUILT_TIME_UTC: &str = r"Tue, 01 Mar 2022 15:36:31 +0000";
Expand description

The build time in RFC2822, UTC.

\ No newline at end of file diff --git a/rustdoc/map_model/objects/block/constant.LOSSLESS_BLOCKFINDING.html b/rustdoc/map_model/objects/block/constant.LOSSLESS_BLOCKFINDING.html index 6b8d8940a8..d50983ab68 100644 --- a/rustdoc/map_model/objects/block/constant.LOSSLESS_BLOCKFINDING.html +++ b/rustdoc/map_model/objects/block/constant.LOSSLESS_BLOCKFINDING.html @@ -1,4 +1,4 @@ LOSSLESS_BLOCKFINDING in map_model::objects::block - Rust

Constant map_model::objects::block::LOSSLESS_BLOCKFINDING[][src]

const LOSSLESS_BLOCKFINDING: bool = true;
+

Constant map_model::objects::block::LOSSLESS_BLOCKFINDING[][src]

const LOSSLESS_BLOCKFINDING: bool = true;
\ No newline at end of file diff --git a/rustdoc/map_model/objects/block/index.html b/rustdoc/map_model/objects/block/index.html index aeed12a999..d7e54ba434 100644 --- a/rustdoc/map_model/objects/block/index.html +++ b/rustdoc/map_model/objects/block/index.html @@ -1,6 +1,6 @@ map_model::objects::block - Rust

Module map_model::objects::block[][src]

Structs

+

Module block

Module map_model::objects::block[][src]

Structs

A block is defined by a perimeter that traces along the sides of roads. Inside the perimeter, the block may contain buildings and interior roads. In the simple case, a block represents a single “city block”, with no interior roads. It may also cover a “neighborhood”, where the diff --git a/rustdoc/map_model/objects/block/struct.Block.html b/rustdoc/map_model/objects/block/struct.Block.html index be0c96cf15..5df2a398b9 100644 --- a/rustdoc/map_model/objects/block/struct.Block.html +++ b/rustdoc/map_model/objects/block/struct.Block.html @@ -1,6 +1,6 @@ Block in map_model::objects::block - Rust

Struct map_model::objects::block::Block[][src]

pub struct Block {
+        

Struct Block

Struct map_model::objects::block::Block[][src]

pub struct Block {
     pub perimeter: Perimeter,
     pub polygon: Polygon,
 }
Expand description

A block is defined by a perimeter that traces along the sides of roads. Inside the perimeter, @@ -8,10 +8,10 @@ the block may contain buildings and interior roads. In the simple case, a block single “city block”, with no interior roads. It may also cover a “neighborhood”, where the perimeter contains some “major” and the interior consists only of “minor” roads.

Fields

perimeter: Perimeterpolygon: Polygon

The polygon covers the interior of the block.

-

Trait Implementations

Returns a copy of the value. Read more

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/map_model/objects/block/struct.Perimeter.html b/rustdoc/map_model/objects/block/struct.Perimeter.html index 69b8bcfb0a..f66d2958cf 100644 --- a/rustdoc/map_model/objects/block/struct.Perimeter.html +++ b/rustdoc/map_model/objects/block/struct.Perimeter.html @@ -1,46 +1,46 @@ Perimeter in map_model::objects::block - Rust

Struct map_model::objects::block::Perimeter[][src]

pub struct Perimeter {
+        

Struct Perimeter

Struct map_model::objects::block::Perimeter[][src]

pub struct Perimeter {
     pub roads: Vec<RoadSideID>,
     pub interior: BTreeSet<RoadID>,
 }
Expand description

A sequence of roads in order, beginning and ending at the same place. No “crossings” – tracing along this sequence should geometrically yield a simple polygon.

Fields

roads: Vec<RoadSideID>interior: BTreeSet<RoadID>

These roads exist entirely within the perimeter

-

Implementations

Starting at any lane, snap to the nearest side of that road, then begin tracing a single +

Implementations

Starting at any lane, snap to the nearest side of that road, then begin tracing a single block, with no interior roads. This will fail if a map boundary is reached. The results are unusual when crossing the entrance to a tunnel or bridge, and so skip is used to avoid tracing there.

-

This calculates all single block perimeters for the entire map. The resulting list does not +

This calculates all single block perimeters for the entire map. The resulting list does not cover roads near the map boundary.

-

Trying to form blocks near railways or cycleways that involve bridges/tunnels often causes +

Trying to form blocks near railways or cycleways that involve bridges/tunnels often causes overlapping geometry or blocks that’re way too large. These are extremely imperfect heuristics to avoid the worst problems.

-

A perimeter has the first and last road matching up, but that’s confusing to +

A perimeter has the first and last road matching up, but that’s confusing to work with. Temporarily undo that.

-

Restore the first=last invariant. Methods may temporarily break this, but must restore it +

Restore the first=last invariant. Methods may temporarily break this, but must restore it before returning.

-

Try to merge two blocks. Returns true if this is successful, which will only be when the +

Try to merge two blocks. Returns true if this is successful, which will only be when the blocks are adjacent, but the merge wouldn’t create an interior “hole”.

Note this may modify both perimeters and still return false. The modification is just to rotate the order of the road loop; this doesn’t logically change the perimeter.

TODO Due to https://github.com/a-b-street/abstreet/issues/841, it seems like rotation sometimes breaks to_block, so for now, always revert to the original upon failure.

-

Try to merge all given perimeters. If successful, only one perimeter will be returned. +

Try to merge all given perimeters. If successful, only one perimeter will be returned. Perimeters are never “destroyed” – if not merged, they’ll appear in the results. If stepwise_debug is true, returns after performing just one merge.

-

If the perimeter follows any dead-end roads, “collapse” them and instead make the perimeter +

If the perimeter follows any dead-end roads, “collapse” them and instead make the perimeter contain the dead-end.

-

Consider the perimeters as a graph, with adjacency determined by sharing any road in common. +

Consider the perimeters as a graph, with adjacency determined by sharing any road in common. Partition adjacent perimeters, subject to the predicate. Each partition should produce a single result with merge_all.

-

Assign each perimeter one of num_colors, such that no two adjacent perimeters share the +

Assign each perimeter one of num_colors, such that no two adjacent perimeters share the same color. May fail. The resulting colors are expressed as [0, num_colors).

-

Does this perimeter completely enclose the other?

-

Trait Implementations

Returns a copy of the value. Read more

+

Does this perimeter completely enclose the other?

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/map_model/struct.Block.html b/rustdoc/map_model/struct.Block.html index f941e8ed7d..fb746e05df 100644 --- a/rustdoc/map_model/struct.Block.html +++ b/rustdoc/map_model/struct.Block.html @@ -1,6 +1,6 @@ Block in map_model - Rust

Struct map_model::Block[][src]

pub struct Block {
+        

Struct Block

Struct map_model::Block[][src]

pub struct Block {
     pub perimeter: Perimeter,
     pub polygon: Polygon,
 }
Expand description

A block is defined by a perimeter that traces along the sides of roads. Inside the perimeter, @@ -8,10 +8,10 @@ the block may contain buildings and interior roads. In the simple case, a block single “city block”, with no interior roads. It may also cover a “neighborhood”, where the perimeter contains some “major” and the interior consists only of “minor” roads.

Fields

perimeter: Perimeterpolygon: Polygon

The polygon covers the interior of the block.

-

Trait Implementations

Returns a copy of the value. Read more

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/map_model/struct.Perimeter.html b/rustdoc/map_model/struct.Perimeter.html index 4b695279f2..ca8b581523 100644 --- a/rustdoc/map_model/struct.Perimeter.html +++ b/rustdoc/map_model/struct.Perimeter.html @@ -1,46 +1,46 @@ Perimeter in map_model - Rust

Struct map_model::Perimeter[][src]

pub struct Perimeter {
+        

Struct Perimeter

Struct map_model::Perimeter[][src]

pub struct Perimeter {
     pub roads: Vec<RoadSideID>,
     pub interior: BTreeSet<RoadID>,
 }
Expand description

A sequence of roads in order, beginning and ending at the same place. No “crossings” – tracing along this sequence should geometrically yield a simple polygon.

Fields

roads: Vec<RoadSideID>interior: BTreeSet<RoadID>

These roads exist entirely within the perimeter

-

Implementations

Starting at any lane, snap to the nearest side of that road, then begin tracing a single +

Implementations

Starting at any lane, snap to the nearest side of that road, then begin tracing a single block, with no interior roads. This will fail if a map boundary is reached. The results are unusual when crossing the entrance to a tunnel or bridge, and so skip is used to avoid tracing there.

-

This calculates all single block perimeters for the entire map. The resulting list does not +

This calculates all single block perimeters for the entire map. The resulting list does not cover roads near the map boundary.

-

Trying to form blocks near railways or cycleways that involve bridges/tunnels often causes +

Trying to form blocks near railways or cycleways that involve bridges/tunnels often causes overlapping geometry or blocks that’re way too large. These are extremely imperfect heuristics to avoid the worst problems.

-

A perimeter has the first and last road matching up, but that’s confusing to +

A perimeter has the first and last road matching up, but that’s confusing to work with. Temporarily undo that.

-

Restore the first=last invariant. Methods may temporarily break this, but must restore it +

Restore the first=last invariant. Methods may temporarily break this, but must restore it before returning.

-

Try to merge two blocks. Returns true if this is successful, which will only be when the +

Try to merge two blocks. Returns true if this is successful, which will only be when the blocks are adjacent, but the merge wouldn’t create an interior “hole”.

Note this may modify both perimeters and still return false. The modification is just to rotate the order of the road loop; this doesn’t logically change the perimeter.

TODO Due to https://github.com/a-b-street/abstreet/issues/841, it seems like rotation sometimes breaks to_block, so for now, always revert to the original upon failure.

-

Try to merge all given perimeters. If successful, only one perimeter will be returned. +

Try to merge all given perimeters. If successful, only one perimeter will be returned. Perimeters are never “destroyed” – if not merged, they’ll appear in the results. If stepwise_debug is true, returns after performing just one merge.

-

If the perimeter follows any dead-end roads, “collapse” them and instead make the perimeter +

If the perimeter follows any dead-end roads, “collapse” them and instead make the perimeter contain the dead-end.

-

Consider the perimeters as a graph, with adjacency determined by sharing any road in common. +

Consider the perimeters as a graph, with adjacency determined by sharing any road in common. Partition adjacent perimeters, subject to the predicate. Each partition should produce a single result with merge_all.

-

Assign each perimeter one of num_colors, such that no two adjacent perimeters share the +

Assign each perimeter one of num_colors, such that no two adjacent perimeters share the same color. May fail. The resulting colors are expressed as [0, num_colors).

-

Does this perimeter completely enclose the other?

-

Trait Implementations

Returns a copy of the value. Read more

+

Does this perimeter completely enclose the other?

+

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

diff --git a/rustdoc/src/ltn/draw_cells.rs.html b/rustdoc/src/ltn/draw_cells.rs.html index 68b6fe4cf3..e55f8b4489 100644 --- a/rustdoc/src/ltn/draw_cells.rs.html +++ b/rustdoc/src/ltn/draw_cells.rs.html @@ -300,6 +300,9 @@ 298 299 300 +301 +302 +303
use std::collections::{HashSet, VecDeque};
 
 use geom::{Bounds, Distance, Polygon};
@@ -394,7 +397,10 @@
                 let road = map.get_r(*r);
                 // Some roads with a filter are _very_ short, and this fails. The connecting roads
                 // on either side should contribute a grid cell and wind up fine.
-                if let Ok(slice) = road.center_pts.maybe_exact_slice(interval.start, interval.end) {
+                if let Ok(slice) = road
+                    .center_pts
+                    .maybe_exact_slice(interval.start, interval.end)
+                {
                     // Walk along the center line. We could look at the road's thickness and fill
                     // out points based on that, but the diffusion should take care of it.
                     for (pt, _) in
diff --git a/rustdoc/src/map_gui/home/runner/work/abstreet/abstreet/target/debug/build/map_gui-49fc0ec202264eb2/out/built.rs.html b/rustdoc/src/map_gui/home/runner/work/abstreet/abstreet/target/debug/build/map_gui-49fc0ec202264eb2/out/built.rs.html
index 0c8ae2e83a..d931a48053 100644
--- a/rustdoc/src/map_gui/home/runner/work/abstreet/abstreet/target/debug/build/map_gui-49fc0ec202264eb2/out/built.rs.html
+++ b/rustdoc/src/map_gui/home/runner/work/abstreet/abstreet/target/debug/build/map_gui-49fc0ec202264eb2/out/built.rs.html
@@ -176,7 +176,7 @@
 pub const RUSTDOC_VERSION: &str = r"rustdoc 1.59.0 (9d1b2106e 2022-02-23)";
 #[doc=r#"The build time in RFC2822, UTC."#]
 #[allow(dead_code)]
-pub const BUILT_TIME_UTC: &str = r"Tue, 01 Mar 2022 13:16:44 +0000";
+pub const BUILT_TIME_UTC: &str = r"Tue, 01 Mar 2022 15:36:31 +0000";
 #[doc=r#"The target architecture, given by `CARGO_CFG_TARGET_ARCH`."#]
 #[allow(dead_code)]
 pub const CFG_TARGET_ARCH: &str = r"x86_64";
diff --git a/rustdoc/src/map_model/objects/block.rs.html b/rustdoc/src/map_model/objects/block.rs.html
index 31ffa47434..8bd44d9f39 100644
--- a/rustdoc/src/map_model/objects/block.rs.html
+++ b/rustdoc/src/map_model/objects/block.rs.html
@@ -598,12 +598,24 @@
 596
 597
 598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608
+609
 
use std::collections::{BTreeSet, HashMap, HashSet};
 use std::fmt;
 
 use anyhow::Result;
 use serde::{Deserialize, Serialize};
 
+use abstio::MapName;
 use abstutil::wraparound_get;
 use geom::{Polygon, Pt2D, Ring};
 
@@ -735,6 +747,16 @@
                 skip.insert(r.id);
             }
         }
+
+        // TODO This map crashes otherwise. Workaround temporarily.
+        if map.get_name() == &MapName::new("fr", "lyon", "center") {
+            for r in map.all_roads() {
+                if r.zorder != 0 {
+                    skip.insert(r.id);
+                }
+            }
+        }
+
         skip
     }
 
diff --git a/rustdoc/src/tests/main.rs.html b/rustdoc/src/tests/main.rs.html
index 5e545a9245..6338891255 100644
--- a/rustdoc/src/tests/main.rs.html
+++ b/rustdoc/src/tests/main.rs.html
@@ -297,6 +297,9 @@
 295
 296
 297
+298
+299
+300
 
//! Integration tests
 
 use std::io::Write;
@@ -557,6 +560,7 @@
         MapName::new("gb", "london", "camden"),
         MapName::new("gb", "london", "southwark"),
         MapName::new("gb", "manchester", "levenshulme"),
+        MapName::new("fr", "lyon", "center"),
     ] {
         let map = map_model::Map::load_synchronously(name.path(), &mut timer);
         let mut single_blocks = Perimeter::find_all_single_blocks(&map);
@@ -585,6 +589,8 @@
         let mut num_merged_block_failures = 0;
         for perimeter in merged {
             if perimeter.to_block(&map).is_err() {
+                // Note this means the LTN UI will crash upfront -- every block must be in the
+                // partitioning.
                 num_merged_block_failures += 1;
             }
         }
diff --git a/rustdoc/tests/fn.test_blockfinding.html b/rustdoc/tests/fn.test_blockfinding.html
index 8bf9f8978c..2943e9f720 100644
--- a/rustdoc/tests/fn.test_blockfinding.html
+++ b/rustdoc/tests/fn.test_blockfinding.html
@@ -1,6 +1,6 @@
 test_blockfinding in tests - Rust
     

Function tests::test_blockfinding[][src]

pub(crate) fn test_blockfinding() -> Result<()>
Expand description

Generate single blocks and merged LTN-style blocks for some maps, counting the number of +

Function tests::test_blockfinding[][src]

pub(crate) fn test_blockfinding() -> Result<()>
Expand description

Generate single blocks and merged LTN-style blocks for some maps, counting the number of failures. Store in a goldenfile, so somebody can manually do a visual diff if anything changes.

\ No newline at end of file diff --git a/rustdoc/tests/index.html b/rustdoc/tests/index.html index 70f5035408..da2d10d643 100644 --- a/rustdoc/tests/index.html +++ b/rustdoc/tests/index.html @@ -1,6 +1,6 @@ tests - Rust

Crate tests[][src]

Expand description

Integration tests

+

Crate tests

Version 0.1.0

Crate tests[][src]

Expand description

Integration tests

Functions

Verify all edits under version control can be correctly apply to their map.

Describe all public transit routes and keep under version control to spot diffs easily.