[INFO] fetching crate vrp-core 1.25.0...
[INFO] testing vrp-core-1.25.0 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate vrp-core 1.25.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate vrp-core 1.25.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate vrp-core 1.25.0
[INFO] tweaked toml for crates.io crate vrp-core 1.25.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate vrp-core 1.25.0 on toolchain 33835004928d3bf65db4d4712e1330766263b0bd
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate vrp-core 1.25.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] df6e6150faffe2efa0c878f2d4a1b2cde4648ed897904843ea4329b102fb3506
[INFO] running `Command { std: "docker" "start" "-a" "df6e6150faffe2efa0c878f2d4a1b2cde4648ed897904843ea4329b102fb3506", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "df6e6150faffe2efa0c878f2d4a1b2cde4648ed897904843ea4329b102fb3506", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "df6e6150faffe2efa0c878f2d4a1b2cde4648ed897904843ea4329b102fb3506", kill_on_drop: false }`
[INFO] [stdout] df6e6150faffe2efa0c878f2d4a1b2cde4648ed897904843ea4329b102fb3506
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] d25e970943d6201581725d6c2dc1761c7b8ce436be130f36fce7015e36aaa1eb
[INFO] running `Command { std: "docker" "start" "-a" "d25e970943d6201581725d6c2dc1761c7b8ce436be130f36fce7015e36aaa1eb", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.89
[INFO] [stderr]    Compiling unicode-ident v1.0.13
[INFO] [stderr]    Compiling libc v0.2.162
[INFO] [stderr]    Compiling libm v0.2.11
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling rustc-hash v2.0.0
[INFO] [stderr]    Compiling nohash-hasher v0.2.0
[INFO] [stderr]    Compiling tinyvec v1.8.0
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling crossbeam-deque v0.8.5
[INFO] [stderr]    Compiling rayon-core v1.12.1
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling num_cpus v1.16.0
[INFO] [stderr]    Compiling rayon v1.10.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling quote v1.0.37
[INFO] [stderr]    Compiling syn v2.0.87
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling rosomaxa v0.9.0
[INFO] [stderr]    Compiling vrp-core v1.25.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/clustering/vicinity/estimations.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 99 -     transport: &(dyn TransportCost),
[INFO] [stdout] 99 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/clustering/vicinity/estimations.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -     transport: &(dyn TransportCost),
[INFO] [stdout] 124 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/clustering/vicinity/mod.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stdout]    |                         ^                                                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stdout] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/conditional_job.rs:67:26
[INFO] [stdout]    |
[INFO] [stdout] 67 |     context_transition: &(dyn JobContextTransition),
[INFO] [stdout]    |                          ^                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 67 -     context_transition: &(dyn JobContextTransition),
[INFO] [stdout] 67 +     context_transition: &dyn JobContextTransition ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 14 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 14 +     activity: &dyn ActivityCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 15 -     transport: &(dyn TransportCost),
[INFO] [stdout] 15 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 26 +     activity: &dyn ActivityCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -     transport: &(dyn TransportCost),
[INFO] [stdout] 27 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     transport: &(dyn TransportCost),
[INFO] [stdout] 36 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/multi_trip.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stdout]    |                                  ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 -     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stdout] 20 +     fn get_constraint(&self) -> &dyn FeatureConstraint;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 16 +     activity: &dyn ActivityCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -     transport: &(dyn TransportCost),
[INFO] [stdout] 17 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 27 +     activity: &dyn ActivityCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     transport: &(dyn TransportCost),
[INFO] [stdout] 28 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:37:62
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                              ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:37:94
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                                                              ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:59:59
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                           ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:59:91
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                                                           ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/enablers/schedule_update.rs:113:64
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stdout]     |                                                                ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stdout] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost ) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -     transport: &(dyn TransportCost),
[INFO] [stdout] 10 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     transport: &(dyn TransportCost),
[INFO] [stdout] 36 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 -     transport: &(dyn TransportCost),
[INFO] [stdout] 68 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/capacity.rs:138:34
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout]     |                                  ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout] 138 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/recharge.rs:184:34
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout]     |                                  ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 184 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout] 184 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/tour_order.rs:160:19
[INFO] [stdout]     |
[INFO] [stdout] 160 |     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stdout]     |                   ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 160 -     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stdout] 160 +     check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option<T>,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/heuristics/evaluators.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stdout]    |                              ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 -     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stdout] 25 +     pub result_selector: &'a dyn ResultSelector,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:264:24
[INFO] [stdout]     |
[INFO] [stdout] 264 |         job_selector: &(dyn JobSelector),
[INFO] [stdout]     |                        ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 264 -         job_selector: &(dyn JobSelector),
[INFO] [stdout] 264 +         job_selector: &dyn JobSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:265:26
[INFO] [stdout]     |
[INFO] [stdout] 265 |         route_selector: &(dyn RouteSelector),
[INFO] [stdout]     |                          ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 265 -         route_selector: &(dyn RouteSelector),
[INFO] [stdout] 265 +         route_selector: &dyn RouteSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:267:27
[INFO] [stdout]     |
[INFO] [stdout] 267 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 267 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 267 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/heuristics/selectors.rs:77:27
[INFO] [stdout]    |
[INFO] [stdout] 77 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 77 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:105:27
[INFO] [stdout]     |
[INFO] [stdout] 105 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 105 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 105 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:137:27
[INFO] [stdout]     |
[INFO] [stdout] 137 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 137 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 137 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:355:28
[INFO] [stdout]     |
[INFO] [stdout] 355 |     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stdout]     |                            ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 355 -     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stdout] 355 +     pub fn pick(&self) -> &dyn ResultSelector {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/probing/repair_solution.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stdout]    |               ^                            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stdout] 19 +     factory: &dyn Fn() -> InsertionContext,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/goal.rs:450:37
[INFO] [stdout]     |
[INFO] [stdout] 450 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout]     |                                     ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 450 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout] 450 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/goal.rs:474:37
[INFO] [stdout]     |
[INFO] [stdout] 474 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout]     |                                     ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 474 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout] 474 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:245:21
[INFO] [stdout]     |
[INFO] [stdout] 245 |         transport: &(dyn TransportCost),
[INFO] [stdout]     |                     ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 245 -         transport: &(dyn TransportCost),
[INFO] [stdout] 245 +         transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 332 -     transport: &(dyn TransportCost),
[INFO] [stdout] 332 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:385:17
[INFO] [stdout]     |
[INFO] [stdout] 385 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 385 -     transport: &(dyn TransportCost),
[INFO] [stdout] 385 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 404 -     transport: &(dyn TransportCost),
[INFO] [stdout] 404 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:419:17
[INFO] [stdout]     |
[INFO] [stdout] 419 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 419 -     transport: &(dyn TransportCost),
[INFO] [stdout] 419 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_inter_route.rs:180:23
[INFO] [stdout]     |
[INFO] [stdout] 180 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 180 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/local/exchange_swap_star.rs:79:71
[INFO] [stdout]    |
[INFO] [stdout] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stdout]    |                                                                       ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stdout] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_swap_star.rs:291:23
[INFO] [stdout]     |
[INFO] [stdout] 291 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 291 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 291 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_swap_star.rs:372:23
[INFO] [stdout]     |
[INFO] [stdout] 372 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 372 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 372 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/recreate/recreate_with_regret.rs:61:27
[INFO] [stdout]    |
[INFO] [stdout] 61 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 61 +         result_selector: &dyn ResultSelector ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 59 +         result_selector: &dyn ResultSelector ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/ruin/route_removal.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 |     random: &(dyn Random),
[INFO] [stdout]     |              ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 140 -     random: &(dyn Random),
[INFO] [stdout] 140 +     random: &dyn Random,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/removal.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |         random: &(dyn Random),
[INFO] [stdout]    |                  ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -         random: &(dyn Random),
[INFO] [stdout] 82 +         random: &dyn Random,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/removal.rs:97:92
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stdout]    |                                                                                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stdout] 97 +     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/utils/removal.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |         random: &(dyn Random),
[INFO] [stdout]     |                  ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -         random: &(dyn Random),
[INFO] [stdout] 142 +         random: &dyn Random,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:47:14
[INFO] [stdout]    |
[INFO] [stdout] 47 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -     random: &(dyn Random),
[INFO] [stdout] 47 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stdout]    |                    ^                             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 48 -     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stdout] 48 +     route_filter: &dyn Fn(&RouteContext) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout]    |                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 49 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout] 49 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 -     random: &(dyn Random),
[INFO] [stdout] 79 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout]    |                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout] 80 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/tabu_list.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -     random: &(dyn Random),
[INFO] [stdout] 80 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used
[INFO] [stdout]    --> src/construction/enablers/feature_combinator.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | /         self.states.iter().try_for_each(|state| {
[INFO] [stdout] 125 | |             let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len());
[INFO] [stdout] 126 | |
[INFO] [stdout] 127 | |             state.accept_solution_state(ctx);
[INFO] [stdout] ...   |
[INFO] [stdout] 134 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let _ = self.states.iter().try_for_each(|state| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/models/solution/tour.rs:99:27
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn all_activities(&self) -> Iter<Activity> {
[INFO] [stdout]    |                           ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn all_activities(&self) -> Iter<'_, Activity> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/models/solution/tour.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<Activity> {
[INFO] [stdout]     |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/models/solution/tour.rs:114:79
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &Activity> + 'a {
[INFO] [stdout]     |                                --             --                              ^^^^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                                |              |                               |
[INFO] [stdout]     |                                |              the lifetime is named here      the same lifetime is elided here
[INFO] [stdout]     |                                the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &'a Activity> + 'a {
[INFO] [stdout]     |                                                                                ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/solver/mod.rs:144:58
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stdout]     |                      -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stdout]     |                                                           ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/solver/mod.rs:148:56
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stdout]     |                    -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stdout]     |                                                         ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.80s
[INFO] running `Command { std: "docker" "inspect" "d25e970943d6201581725d6c2dc1761c7b8ce436be130f36fce7015e36aaa1eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d25e970943d6201581725d6c2dc1761c7b8ce436be130f36fce7015e36aaa1eb", kill_on_drop: false }`
[INFO] [stdout] d25e970943d6201581725d6c2dc1761c7b8ce436be130f36fce7015e36aaa1eb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 03df777f5fde95385c8679abad5bbbb2ca76a29772c6c63cd1b6d2f885c6918e
[INFO] running `Command { std: "docker" "start" "-a" "03df777f5fde95385c8679abad5bbbb2ca76a29772c6c63cd1b6d2f885c6918e", kill_on_drop: false }`
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/clustering/vicinity/estimations.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 99 -     transport: &(dyn TransportCost),
[INFO] [stdout] 99 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/clustering/vicinity/estimations.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -     transport: &(dyn TransportCost),
[INFO] [stdout] 124 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/clustering/vicinity/mod.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stdout]    |                         ^                                                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stdout] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/conditional_job.rs:67:26
[INFO] [stdout]    |
[INFO] [stdout] 67 |     context_transition: &(dyn JobContextTransition),
[INFO] [stdout]    |                          ^                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 67 -     context_transition: &(dyn JobContextTransition),
[INFO] [stdout] 67 +     context_transition: &dyn JobContextTransition ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 14 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 14 +     activity: &dyn ActivityCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 15 -     transport: &(dyn TransportCost),
[INFO] [stdout] 15 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 26 +     activity: &dyn ActivityCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -     transport: &(dyn TransportCost),
[INFO] [stdout] 27 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     transport: &(dyn TransportCost),
[INFO] [stdout] 36 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/multi_trip.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stdout]    |                                  ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 -     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stdout] 20 +     fn get_constraint(&self) -> &dyn FeatureConstraint;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 16 +     activity: &dyn ActivityCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -     transport: &(dyn TransportCost),
[INFO] [stdout] 17 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 27 +     activity: &dyn ActivityCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     transport: &(dyn TransportCost),
[INFO] [stdout] 28 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:37:62
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                              ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:37:94
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                                                              ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:59:59
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                           ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:59:91
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                                                           ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/enablers/schedule_update.rs:113:64
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stdout]     |                                                                ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stdout] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost ) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -     transport: &(dyn TransportCost),
[INFO] [stdout] 10 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     transport: &(dyn TransportCost),
[INFO] [stdout] 36 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 -     transport: &(dyn TransportCost),
[INFO] [stdout] 68 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/capacity.rs:138:34
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout]     |                                  ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout] 138 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/recharge.rs:184:34
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout]     |                                  ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 184 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout] 184 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/tour_order.rs:160:19
[INFO] [stdout]     |
[INFO] [stdout] 160 |     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stdout]     |                   ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 160 -     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stdout] 160 +     check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option<T>,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/heuristics/evaluators.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stdout]    |                              ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 -     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stdout] 25 +     pub result_selector: &'a dyn ResultSelector,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:264:24
[INFO] [stdout]     |
[INFO] [stdout] 264 |         job_selector: &(dyn JobSelector),
[INFO] [stdout]     |                        ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 264 -         job_selector: &(dyn JobSelector),
[INFO] [stdout] 264 +         job_selector: &dyn JobSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:265:26
[INFO] [stdout]     |
[INFO] [stdout] 265 |         route_selector: &(dyn RouteSelector),
[INFO] [stdout]     |                          ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 265 -         route_selector: &(dyn RouteSelector),
[INFO] [stdout] 265 +         route_selector: &dyn RouteSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:267:27
[INFO] [stdout]     |
[INFO] [stdout] 267 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 267 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 267 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/heuristics/selectors.rs:77:27
[INFO] [stdout]    |
[INFO] [stdout] 77 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 77 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:105:27
[INFO] [stdout]     |
[INFO] [stdout] 105 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 105 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 105 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:137:27
[INFO] [stdout]     |
[INFO] [stdout] 137 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 137 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 137 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:355:28
[INFO] [stdout]     |
[INFO] [stdout] 355 |     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stdout]     |                            ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 355 -     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stdout] 355 +     pub fn pick(&self) -> &dyn ResultSelector {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/probing/repair_solution.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stdout]    |               ^                            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stdout] 19 +     factory: &dyn Fn() -> InsertionContext,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/goal.rs:450:37
[INFO] [stdout]     |
[INFO] [stdout] 450 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout]     |                                     ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 450 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout] 450 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/goal.rs:474:37
[INFO] [stdout]     |
[INFO] [stdout] 474 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout]     |                                     ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 474 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout] 474 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:245:21
[INFO] [stdout]     |
[INFO] [stdout] 245 |         transport: &(dyn TransportCost),
[INFO] [stdout]     |                     ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 245 -         transport: &(dyn TransportCost),
[INFO] [stdout] 245 +         transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 332 -     transport: &(dyn TransportCost),
[INFO] [stdout] 332 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:385:17
[INFO] [stdout]     |
[INFO] [stdout] 385 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 385 -     transport: &(dyn TransportCost),
[INFO] [stdout] 385 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 404 -     transport: &(dyn TransportCost),
[INFO] [stdout] 404 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:419:17
[INFO] [stdout]     |
[INFO] [stdout] 419 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 419 -     transport: &(dyn TransportCost),
[INFO] [stdout] 419 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_inter_route.rs:180:23
[INFO] [stdout]     |
[INFO] [stdout] 180 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 180 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/local/exchange_swap_star.rs:79:71
[INFO] [stdout]    |
[INFO] [stdout] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stdout]    |                                                                       ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stdout] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_swap_star.rs:291:23
[INFO] [stdout]     |
[INFO] [stdout] 291 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 291 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 291 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_swap_star.rs:372:23
[INFO] [stdout]     |
[INFO] [stdout] 372 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 372 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 372 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/recreate/recreate_with_regret.rs:61:27
[INFO] [stdout]    |
[INFO] [stdout] 61 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 61 +         result_selector: &dyn ResultSelector ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 59 +         result_selector: &dyn ResultSelector ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/ruin/route_removal.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 |     random: &(dyn Random),
[INFO] [stdout]     |              ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 140 -     random: &(dyn Random),
[INFO] [stdout] 140 +     random: &dyn Random,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/removal.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |         random: &(dyn Random),
[INFO] [stdout]    |                  ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -         random: &(dyn Random),
[INFO] [stdout] 82 +         random: &dyn Random,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/removal.rs:97:92
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stdout]    |                                                                                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stdout] 97 +     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/utils/removal.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |         random: &(dyn Random),
[INFO] [stdout]     |                  ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -         random: &(dyn Random),
[INFO] [stdout] 142 +         random: &dyn Random,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:47:14
[INFO] [stdout]    |
[INFO] [stdout] 47 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -     random: &(dyn Random),
[INFO] [stdout] 47 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stdout]    |                    ^                             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 48 -     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stdout] 48 +     route_filter: &dyn Fn(&RouteContext) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout]    |                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 49 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout] 49 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 -     random: &(dyn Random),
[INFO] [stdout] 79 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout]    |                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout] 80 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/tabu_list.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -     random: &(dyn Random),
[INFO] [stdout] 80 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used
[INFO] [stdout]    --> src/construction/enablers/feature_combinator.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | /         self.states.iter().try_for_each(|state| {
[INFO] [stdout] 125 | |             let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len());
[INFO] [stdout] 126 | |
[INFO] [stdout] 127 | |             state.accept_solution_state(ctx);
[INFO] [stdout] ...   |
[INFO] [stdout] 134 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let _ = self.states.iter().try_for_each(|state| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/models/solution/tour.rs:99:27
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn all_activities(&self) -> Iter<Activity> {
[INFO] [stdout]    |                           ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn all_activities(&self) -> Iter<'_, Activity> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/models/solution/tour.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<Activity> {
[INFO] [stdout]     |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/models/solution/tour.rs:114:79
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &Activity> + 'a {
[INFO] [stdout]     |                                --             --                              ^^^^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                                |              |                               |
[INFO] [stdout]     |                                |              the lifetime is named here      the same lifetime is elided here
[INFO] [stdout]     |                                the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &'a Activity> + 'a {
[INFO] [stdout]     |                                                                                ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/solver/mod.rs:144:58
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stdout]     |                      -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stdout]     |                                                           ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/solver/mod.rs:148:56
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stdout]     |                    -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stdout]     |                                                         ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling vrp-core v1.25.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/clustering/vicinity/estimations.rs:99:17
[INFO] [stdout]    |
[INFO] [stdout] 99 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 99 -     transport: &(dyn TransportCost),
[INFO] [stdout] 99 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/clustering/vicinity/estimations.rs:124:17
[INFO] [stdout]     |
[INFO] [stdout] 124 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 124 -     transport: &(dyn TransportCost),
[INFO] [stdout] 124 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/clustering/vicinity/mod.rs:28:25
[INFO] [stdout]    |
[INFO] [stdout] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stdout]    |                         ^                                                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stdout] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/conditional_job.rs:67:26
[INFO] [stdout]    |
[INFO] [stdout] 67 |     context_transition: &(dyn JobContextTransition),
[INFO] [stdout]    |                          ^                        ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 67 -     context_transition: &(dyn JobContextTransition),
[INFO] [stdout] 67 +     context_transition: &dyn JobContextTransition ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:14:16
[INFO] [stdout]    |
[INFO] [stdout] 14 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 14 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 14 +     activity: &dyn ActivityCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:15:17
[INFO] [stdout]    |
[INFO] [stdout] 15 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 15 -     transport: &(dyn TransportCost),
[INFO] [stdout] 15 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:26:16
[INFO] [stdout]    |
[INFO] [stdout] 26 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 26 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 26 +     activity: &dyn ActivityCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:27:17
[INFO] [stdout]    |
[INFO] [stdout] 27 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -     transport: &(dyn TransportCost),
[INFO] [stdout] 27 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/departure_time.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     transport: &(dyn TransportCost),
[INFO] [stdout] 36 +     transport: &dyn TransportCost,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/multi_trip.rs:20:34
[INFO] [stdout]    |
[INFO] [stdout] 20 |     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stdout]    |                                  ^                     ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 20 -     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stdout] 20 +     fn get_constraint(&self) -> &dyn FeatureConstraint;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 16 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 16 +     activity: &dyn ActivityCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 17 -     transport: &(dyn TransportCost),
[INFO] [stdout] 17 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:27:16
[INFO] [stdout]    |
[INFO] [stdout] 27 |     activity: &(dyn ActivityCost),
[INFO] [stdout]    |                ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 27 -     activity: &(dyn ActivityCost),
[INFO] [stdout] 27 +     activity: &dyn ActivityCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:28:17
[INFO] [stdout]    |
[INFO] [stdout] 28 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 28 -     transport: &(dyn TransportCost),
[INFO] [stdout] 28 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:37:62
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                              ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:37:94
[INFO] [stdout]    |
[INFO] [stdout] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                                                              ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:59:59
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                           ^                ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/schedule_update.rs:59:91
[INFO] [stdout]    |
[INFO] [stdout] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout]    |                                                                                           ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stdout] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/enablers/schedule_update.rs:113:64
[INFO] [stdout]     |
[INFO] [stdout] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stdout]     |                                                                ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stdout] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost ) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:10:17
[INFO] [stdout]    |
[INFO] [stdout] 10 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -     transport: &(dyn TransportCost),
[INFO] [stdout] 10 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 36 -     transport: &(dyn TransportCost),
[INFO] [stdout] 36 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/enablers/travel_info.rs:68:17
[INFO] [stdout]    |
[INFO] [stdout] 68 |     transport: &(dyn TransportCost),
[INFO] [stdout]    |                 ^                 ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 68 -     transport: &(dyn TransportCost),
[INFO] [stdout] 68 +     transport: &dyn TransportCost ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/capacity.rs:138:34
[INFO] [stdout]     |
[INFO] [stdout] 138 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout]     |                                  ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 138 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout] 138 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/recharge.rs:184:34
[INFO] [stdout]     |
[INFO] [stdout] 184 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout]     |                                  ^                     ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 184 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stdout] 184 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/features/tour_order.rs:160:19
[INFO] [stdout]     |
[INFO] [stdout] 160 |     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stdout]     |                   ^                                                   ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 160 -     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stdout] 160 +     check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option<T>,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/heuristics/evaluators.rs:25:30
[INFO] [stdout]    |
[INFO] [stdout] 25 |     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stdout]    |                              ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 25 -     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stdout] 25 +     pub result_selector: &'a dyn ResultSelector,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:264:24
[INFO] [stdout]     |
[INFO] [stdout] 264 |         job_selector: &(dyn JobSelector),
[INFO] [stdout]     |                        ^               ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 264 -         job_selector: &(dyn JobSelector),
[INFO] [stdout] 264 +         job_selector: &dyn JobSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:265:26
[INFO] [stdout]     |
[INFO] [stdout] 265 |         route_selector: &(dyn RouteSelector),
[INFO] [stdout]     |                          ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 265 -         route_selector: &(dyn RouteSelector),
[INFO] [stdout] 265 +         route_selector: &dyn RouteSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/insertions.rs:267:27
[INFO] [stdout]     |
[INFO] [stdout] 267 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 267 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 267 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/heuristics/../../../tests/unit/construction/heuristics/metrics_test.rs:10:21
[INFO] [stdout]    |
[INFO] [stdout] 10 |     route_factory: &(dyn Fn(&Problem, usize) -> RouteContext),
[INFO] [stdout]    |                     ^                                       ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 10 -     route_factory: &(dyn Fn(&Problem, usize) -> RouteContext),
[INFO] [stdout] 10 +     route_factory: &dyn Fn(&Problem, usize) -> RouteContext ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/heuristics/selectors.rs:77:27
[INFO] [stdout]    |
[INFO] [stdout] 77 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 77 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 77 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:105:27
[INFO] [stdout]     |
[INFO] [stdout] 105 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 105 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 105 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:137:27
[INFO] [stdout]     |
[INFO] [stdout] 137 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                           ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 137 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 137 +         result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/construction/heuristics/selectors.rs:355:28
[INFO] [stdout]     |
[INFO] [stdout] 355 |     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stdout]     |                            ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 355 -     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stdout] 355 +     pub fn pick(&self) -> &dyn ResultSelector {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/construction/probing/repair_solution.rs:19:15
[INFO] [stdout]    |
[INFO] [stdout] 19 |     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stdout]    |               ^                            ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 19 -     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stdout] 19 +     factory: &dyn Fn() -> InsertionContext,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/goal.rs:450:37
[INFO] [stdout]     |
[INFO] [stdout] 450 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout]     |                                     ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 450 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout] 450 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/goal.rs:474:37
[INFO] [stdout]     |
[INFO] [stdout] 474 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout]     |                                     ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 474 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stdout] 474 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:245:21
[INFO] [stdout]     |
[INFO] [stdout] 245 |         transport: &(dyn TransportCost),
[INFO] [stdout]     |                     ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 245 -         transport: &(dyn TransportCost),
[INFO] [stdout] 245 +         transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:332:17
[INFO] [stdout]     |
[INFO] [stdout] 332 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 332 -     transport: &(dyn TransportCost),
[INFO] [stdout] 332 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:385:17
[INFO] [stdout]     |
[INFO] [stdout] 385 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 385 -     transport: &(dyn TransportCost),
[INFO] [stdout] 385 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:404:17
[INFO] [stdout]     |
[INFO] [stdout] 404 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 404 -     transport: &(dyn TransportCost),
[INFO] [stdout] 404 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/models/problem/jobs.rs:419:17
[INFO] [stdout]     |
[INFO] [stdout] 419 |     transport: &(dyn TransportCost),
[INFO] [stdout]     |                 ^                 ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 419 -     transport: &(dyn TransportCost),
[INFO] [stdout] 419 +     transport: &dyn TransportCost,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_inter_route.rs:180:23
[INFO] [stdout]     |
[INFO] [stdout] 180 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 180 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 180 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/local/exchange_swap_star.rs:79:71
[INFO] [stdout]    |
[INFO] [stdout] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stdout]    |                                                                       ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stdout] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_swap_star.rs:291:23
[INFO] [stdout]     |
[INFO] [stdout] 291 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 291 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 291 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/local/exchange_swap_star.rs:372:23
[INFO] [stdout]     |
[INFO] [stdout] 372 |     result_selector: &(dyn ResultSelector),
[INFO] [stdout]     |                       ^                  ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 372 -     result_selector: &(dyn ResultSelector),
[INFO] [stdout] 372 +     result_selector: &dyn ResultSelector,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/recreate/recreate_with_regret.rs:61:27
[INFO] [stdout]    |
[INFO] [stdout] 61 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 61 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 61 +         result_selector: &dyn ResultSelector ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27
[INFO] [stdout]    |
[INFO] [stdout] 59 |         result_selector: &(dyn ResultSelector),
[INFO] [stdout]    |                           ^                  ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 59 -         result_selector: &(dyn ResultSelector),
[INFO] [stdout] 59 +         result_selector: &dyn ResultSelector ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/ruin/route_removal.rs:140:14
[INFO] [stdout]     |
[INFO] [stdout] 140 |     random: &(dyn Random),
[INFO] [stdout]     |              ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 140 -     random: &(dyn Random),
[INFO] [stdout] 140 +     random: &dyn Random,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/removal.rs:82:18
[INFO] [stdout]    |
[INFO] [stdout] 82 |         random: &(dyn Random),
[INFO] [stdout]    |                  ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 82 -         random: &(dyn Random),
[INFO] [stdout] 82 +         random: &dyn Random,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/removal.rs:97:92
[INFO] [stdout]    |
[INFO] [stdout] 97 |     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stdout]    |                                                                                            ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 97 -     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stdout] 97 +     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]    --> src/solver/search/utils/removal.rs:142:18
[INFO] [stdout]     |
[INFO] [stdout] 142 |         random: &(dyn Random),
[INFO] [stdout]     |                  ^          ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 142 -         random: &(dyn Random),
[INFO] [stdout] 142 +         random: &dyn Random,
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:47:14
[INFO] [stdout]    |
[INFO] [stdout] 47 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 47 -     random: &(dyn Random),
[INFO] [stdout] 47 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:48:20
[INFO] [stdout]    |
[INFO] [stdout] 48 |     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stdout]    |                    ^                             ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 48 -     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stdout] 48 +     route_filter: &dyn Fn(&RouteContext) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:49:18
[INFO] [stdout]    |
[INFO] [stdout] 49 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout]    |                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 49 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout] 49 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:79:14
[INFO] [stdout]    |
[INFO] [stdout] 79 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 79 -     random: &(dyn Random),
[INFO] [stdout] 79 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/selection.rs:80:18
[INFO] [stdout]    |
[INFO] [stdout] 80 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout]    |                  ^                    ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stdout] 80 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around type
[INFO] [stdout]   --> src/solver/search/utils/tabu_list.rs:80:14
[INFO] [stdout]    |
[INFO] [stdout] 80 |     random: &(dyn Random),
[INFO] [stdout]    |              ^          ^
[INFO] [stdout]    |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 80 -     random: &(dyn Random),
[INFO] [stdout] 80 +     random: &dyn Random ,
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]    --> src/lib.rs:108:1
[INFO] [stdout]     |
[INFO] [stdout] 108 | pub mod helpers;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the lint level is defined here
[INFO] [stdout]    --> src/lib.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 | #![warn(missing_docs)]
[INFO] [stdout]     |         ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod construction;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod models;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod solver;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod utils;
[INFO] [stdout]   | ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/mod.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub mod macros;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/construction/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod clustering;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/construction/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod features;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/construction/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod heuristics;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/construction/clustering/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod dbscan;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/construction/clustering/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod vicinity;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/../tests/helpers/construction/clustering/mod.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn p(x: Float, y: Float) -> Point {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/../tests/helpers/construction/clustering/dbscan.rs:5:1
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub fn create_test_distances() -> Vec<Float> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> src/../tests/helpers/construction/clustering/vicinity.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub type JobPlaces = Vec<(Option<Location>, Duration, Vec<(Float, Float)>)>;
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/clustering/vicinity.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 |     fn get_clustered_jobs(&self) -> Option<&Vec<Job>>;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/clustering/vicinity.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     fn set_clustered_jobs(&mut self, jobs: Vec<Job>);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/construction/clustering/vicinity.rs:82:1
[INFO] [stdout]    |
[INFO] [stdout] 82 | pub fn create_goal_context_with_vicinity(disallow_merge_list: Vec<&str>) -> GoalContext {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/construction/clustering/vicinity.rs:96:1
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub fn create_cluster_config() -> ClusterConfig {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/../tests/helpers/construction/features.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub fn create_simple_demand(size: i32) -> Demand<SingleDimLoad> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/construction/features.rs:17:1
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub fn create_simple_dynamic_demand(size: i32) -> Demand<SingleDimLoad> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/construction/features.rs:31:1
[INFO] [stdout]    |
[INFO] [stdout] 31 | pub fn single_demand_as_multi(pickup: (i32, i32), delivery: (i32, i32)) -> Demand<MultiDimLoad> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct TestInsertionContextBuilder {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 35 |     pub fn with_problem(&mut self, problem: Problem) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:40:5
[INFO] [stdout]    |
[INFO] [stdout] 40 |     pub fn with_solution(&mut self, solution: SolutionContext) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:45:5
[INFO] [stdout]    |
[INFO] [stdout] 45 |     pub fn with_registry(&mut self, registry: Registry) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:51:5
[INFO] [stdout]    |
[INFO] [stdout] 51 |     pub fn with_registry_context(&mut self, registry: RegistryContext) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:56:5
[INFO] [stdout]    |
[INFO] [stdout] 56 |     pub fn with_routes(&mut self, routes: Vec<RouteContext>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn with_required(&mut self, required: Vec<Job>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:68:5
[INFO] [stdout]    |
[INFO] [stdout] 68 |     pub fn with_unassigned(&mut self, required: Vec<(Job, UnassignmentInfo)>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:76:5
[INFO] [stdout]    |
[INFO] [stdout] 76 |     pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:81:5
[INFO] [stdout]    |
[INFO] [stdout] 81 |     pub fn with_state(&mut self, state_fn: impl FnOnce(&mut SolutionState)) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/construction/heuristics.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn build(&mut self) -> InsertionContext {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/models/mod.rs:1:1
[INFO] [stdout]   |
[INFO] [stdout] 1 | pub mod domain;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/models/mod.rs:2:1
[INFO] [stdout]   |
[INFO] [stdout] 2 | pub mod problem;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/models/mod.rs:3:1
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub mod solution;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/../tests/helpers/models/domain.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub fn test_random() -> Arc<dyn Random> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:11:1
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn test_logger() -> InfoLogger {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct TestGoalContextBuilder {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     pub fn empty() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:36:5
[INFO] [stdout]    |
[INFO] [stdout] 36 |     pub fn with_transport_feature() -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn add_feature(mut self, feature: Feature) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:52:5
[INFO] [stdout]    |
[INFO] [stdout] 52 |     pub fn add_features(mut self, feature: Vec<Feature>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn build(self) -> GoalContext {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub fn with_fleet(&mut self, fleet: Fleet) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:80:5
[INFO] [stdout]    |
[INFO] [stdout] 80 |     pub fn with_jobs(&mut self, jobs: Vec<Job>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:85:5
[INFO] [stdout]    |
[INFO] [stdout] 85 |     pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:90:5
[INFO] [stdout]    |
[INFO] [stdout] 90 |     pub fn build(&mut self) -> Problem {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/domain.rs:95:1
[INFO] [stdout]    |
[INFO] [stdout] 95 | pub fn get_customer_ids_from_routes_sorted(insertion_ctx: &InsertionContext) -> Vec<Vec<String>> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/../tests/helpers/models/domain.rs:101:1
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn get_sorted_customer_ids_from_jobs(jobs: &[Job]) -> Vec<String> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/../tests/helpers/models/domain.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn get_customer_ids_from_jobs(jobs: &[Job]) -> Vec<String> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/../tests/helpers/models/domain.rs:111:1
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub fn get_customer_ids_from_routes(insertion_ctx: &InsertionContext) -> Vec<Vec<String>> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/../tests/helpers/models/domain.rs:129:1
[INFO] [stdout]     |
[INFO] [stdout] 129 | pub fn get_customer_ids_from_unassigned(insertion_ctx: &InsertionContext) -> Vec<String> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/../tests/helpers/models/domain.rs:137:1
[INFO] [stdout]     |
[INFO] [stdout] 137 | pub fn get_customer_id(job: &Job) -> String {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]  --> src/../tests/helpers/models/problem/costs.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub struct TestTransportCost {}
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/costs.rs:29:5
[INFO] [stdout]    |
[INFO] [stdout] 29 |     pub fn new_shared() -> Arc<dyn TransportCost + Sync + Send> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/costs.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn fake_routing(from: Location, to: Location) -> Float {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/models/problem/costs.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | pub struct TestActivityCost {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/costs.rs:54:5
[INFO] [stdout]    |
[INFO] [stdout] 54 |     pub fn new_shared() -> Arc<dyn ActivityCost + Sync + Send> {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/../tests/helpers/models/problem/fleet.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DEFAULT_ACTOR_LOCATION: Location = 0;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/../tests/helpers/models/problem/fleet.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const DEFAULT_ACTOR_TIME_WINDOW: TimeWindow = TimeWindow { start: 0.0, end: 1000.0 };
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/../tests/helpers/models/problem/fleet.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DEFAULT_VEHICLE_COSTS: Costs =
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn test_costs() -> Costs {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:16:1
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn fixed_costs() -> Costs {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn empty_costs() -> Costs {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:24:1
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub fn test_driver() -> Driver {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:28:1
[INFO] [stdout]    |
[INFO] [stdout] 28 | pub fn test_driver_with_costs(costs: Costs) -> Driver {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:32:1
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn test_vehicle_detail() -> VehicleDetail {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:45:1
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub fn test_vehicle(profile_idx: usize) -> Vehicle {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn test_ovrp_vehicle(id: &str) -> Vehicle {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | pub fn test_fleet() -> Fleet {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub fn test_vehicle_with_id(id: &str) -> Vehicle {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:69:1
[INFO] [stdout]    |
[INFO] [stdout] 69 | pub fn get_vehicle_id(vehicle: &Vehicle) -> &String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:73:1
[INFO] [stdout]    |
[INFO] [stdout] 73 | pub fn get_test_actor_from_fleet(fleet: &Fleet, vehicle_id: &str) -> Arc<Actor> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:77:1
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub struct TestVehicleBuilder(Vehicle);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn id(&mut self, id: &str) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 |     pub fn profile(&mut self, profile: Profile) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/fleet.rs:96:5
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub fn capacity(&mut self, capacity: i32) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn capacity_mult(&mut self, capacity: Vec<i32>) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 106 |     pub fn costs(&mut self, costs: Costs) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:111:5
[INFO] [stdout]     |
[INFO] [stdout] 111 |     pub fn details(&mut self, details: Vec<VehicleDetail>) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:116:5
[INFO] [stdout]     |
[INFO] [stdout] 116 |     pub fn property<K: 'static, T: 'static + Sync + Send>(&mut self, value: T) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:121:5
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn dimens_mut(&mut self) -> &mut Dimensions {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:125:5
[INFO] [stdout]     |
[INFO] [stdout] 125 |     pub fn build(&mut self) -> Vehicle {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:130:1
[INFO] [stdout]     |
[INFO] [stdout] 130 | pub type GroupKeyFn = Box<dyn Fn(&[Arc<Actor>]) -> Box<dyn Fn(&Actor) -> usize + Send + Sync>>;
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:133:1
[INFO] [stdout]     |
[INFO] [stdout] 133 | pub struct FleetBuilder {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:140:5
[INFO] [stdout]     |
[INFO] [stdout] 140 |     pub fn add_driver(&mut self, driver: Driver) -> &mut FleetBuilder {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     pub fn add_vehicle(&mut self, vehicle: Vehicle) -> &mut FleetBuilder {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:150:5
[INFO] [stdout]     |
[INFO] [stdout] 150 |     pub fn add_vehicles(&mut self, vehicles: Vec<Vehicle>) -> &mut FleetBuilder {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:155:5
[INFO] [stdout]     |
[INFO] [stdout] 155 |     pub fn with_group_key_fn(&mut self, group_key_fn: GroupKeyFn) -> &mut FleetBuilder {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:160:5
[INFO] [stdout]     |
[INFO] [stdout] 160 |     pub fn build(&mut self) -> Fleet {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]    --> src/../tests/helpers/models/problem/fleet.rs:177:1
[INFO] [stdout]     |
[INFO] [stdout] 177 | pub fn create_details_actor_groups(actors: &[Arc<Actor>]) -> impl Fn(&Actor) -> usize + Send + Sync {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/../tests/helpers/models/problem/jobs.rs:7:1
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub const DEFAULT_JOB_LOCATION: Location = 0;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/../tests/helpers/models/problem/jobs.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub const DEFAULT_JOB_DURATION: Duration = 0.0;
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]  --> src/../tests/helpers/models/problem/jobs.rs:9:1
[INFO] [stdout]   |
[INFO] [stdout] 9 | pub const DEFAULT_JOB_TIME_SPAN: TimeSpan = TimeSpan::Window(TimeWindow { start: 0., end: 1000. });
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DEFAULT_ACTIVITY_TIME_WINDOW: TimeWindow = TimeWindow { start: 0., end: 1000. };
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a type alias
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub type TestPlace = (Option<Location>, Duration, Vec<(Float, Float)>);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:14:1
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub fn test_multi_with_id(id: &str, jobs: Vec<Arc<Single>>) -> Arc<Multi> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:21:1
[INFO] [stdout]    |
[INFO] [stdout] 21 | pub fn test_multi_job_with_locations(locations: Vec<Vec<Option<Location>>>) -> Arc<Multi> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:27:1
[INFO] [stdout]    |
[INFO] [stdout] 27 | pub fn test_multi_with_permutations(id: &str, jobs: Vec<Arc<Single>>, permutations: Vec<Vec<usize>>) -> Arc<Multi> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn get_job_id(job: &Job) -> &String {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:38:1
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct TestSingleBuilder(Single);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     pub fn with_locations(locations: Vec<Option<Location>>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:57:5
[INFO] [stdout]    |
[INFO] [stdout] 57 |     pub fn id(&mut self, id: &str) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:62:5
[INFO] [stdout]    |
[INFO] [stdout] 62 |     pub fn property<K: 'static, T: 'static + Sync + Send>(&mut self, value: T) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:67:5
[INFO] [stdout]    |
[INFO] [stdout] 67 |     pub fn dimens(&mut self, dimens: Dimensions) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub fn location(&mut self, loc: Option<Location>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:77:5
[INFO] [stdout]    |
[INFO] [stdout] 77 |     pub fn duration(&mut self, dur: Duration) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:82:5
[INFO] [stdout]    |
[INFO] [stdout] 82 |     pub fn times(&mut self, times: Vec<TimeWindow>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:87:5
[INFO] [stdout]    |
[INFO] [stdout] 87 |     pub fn demand<T: LoadOps>(&mut self, demand: Demand<T>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/problem/jobs.rs:92:5
[INFO] [stdout]    |
[INFO] [stdout] 92 |     pub fn places(&mut self, places: Vec<TestPlace>) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/jobs.rs:105:5
[INFO] [stdout]     |
[INFO] [stdout] 105 |     pub fn dimens_mut(&mut self) -> &mut Dimensions {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/jobs.rs:109:5
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn build(&mut self) -> Single {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/jobs.rs:113:5
[INFO] [stdout]     |
[INFO] [stdout] 113 |     pub fn build_shared(&mut self) -> Arc<Single> {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/problem/jobs.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn build_as_job_ref(&mut self) -> Job {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/../tests/helpers/models/solution/actor.rs:8:1
[INFO] [stdout]   |
[INFO] [stdout] 8 | pub fn test_actor() -> Arc<Actor> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/solution/actor.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub fn test_actor_with_profile(profile_idx: usize) -> Arc<Actor> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/models/solution/actor.rs:30:1
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn create_test_registry() -> Registry {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a constant
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:10:1
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub const DEFAULT_ACTIVITY_SCHEDULE: Schedule = Schedule { departure: 0.0, arrival: 0.0 };
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub struct RouteContextBuilder(RouteContext);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:21:5
[INFO] [stdout]    |
[INFO] [stdout] 21 |     pub fn with_route(&mut self, route: Route) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn with_state(&mut self, state: RouteState) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn build(&mut self) -> RouteContext {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:36:1
[INFO] [stdout]    |
[INFO] [stdout] 36 | pub struct RouteBuilder(Route);
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:86:5
[INFO] [stdout]    |
[INFO] [stdout] 86 |     pub fn add_activity(&mut self, activity: Activity) -> &mut Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]   --> src/../tests/helpers/models/solution/route.rs:91:5
[INFO] [stdout]    |
[INFO] [stdout] 91 | /     pub fn with_activity<F>(&mut self, configure: F) -> &mut Self
[INFO] [stdout] 92 | |     where
[INFO] [stdout] 93 | |         F: FnOnce(&mut Activity),
[INFO] [stdout]    | |_________________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:101:5
[INFO] [stdout]     |
[INFO] [stdout] 101 |     pub fn build(&mut self) -> Route {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:107:1
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub struct RouteStateBuilder {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:112:5
[INFO] [stdout]     |
[INFO] [stdout] 112 |     pub fn set_route_state<F: Fn(&mut RouteState)>(&mut self, func: F) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 117 |     pub fn build(&mut self) -> RouteState {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub struct ActivityBuilder(Activity);
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:131:5
[INFO] [stdout]     |
[INFO] [stdout] 131 |     pub fn with_location(location: Location) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:135:5
[INFO] [stdout]     |
[INFO] [stdout] 135 |     pub fn with_location_and_tw(location: Location, tw: TimeWindow) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:139:5
[INFO] [stdout]     |
[INFO] [stdout] 139 |     pub fn with_location_tw_and_duration(location: Location, tw: TimeWindow, duration: Duration) -> Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:148:5
[INFO] [stdout]     |
[INFO] [stdout] 148 |     pub fn place(&mut self, place: Place) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:153:5
[INFO] [stdout]     |
[INFO] [stdout] 153 |     pub fn schedule(&mut self, schedule: Schedule) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:158:5
[INFO] [stdout]     |
[INFO] [stdout] 158 |     pub fn job(&mut self, job: Option<Arc<Single>>) -> &mut Self {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a method
[INFO] [stdout]    --> src/../tests/helpers/models/solution/route.rs:163:5
[INFO] [stdout]     |
[INFO] [stdout] 163 |     pub fn build(&mut self) -> Activity {
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/solver/mod.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub fn create_default_refinement_ctx(problem: Arc<Problem>) -> RefinementContext {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/solver/mod.rs:54:1
[INFO] [stdout]    |
[INFO] [stdout] 54 | pub fn generate_matrix_distances_from_points(points: &[Point]) -> Vec<Float> {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]   --> src/../tests/helpers/solver/mod.rs:58:1
[INFO] [stdout]    |
[INFO] [stdout] 58 | / pub fn generate_matrix_routes_with_disallow_list(
[INFO] [stdout] 59 | |     rows: usize,
[INFO] [stdout] 60 | |     cols: usize,
[INFO] [stdout] 61 | |     is_open_vrp: bool,
[INFO] [stdout] 62 | |     disallowed_pairs: Vec<(&str, &str)>,
[INFO] [stdout] 63 | | ) -> (Problem, Solution) {
[INFO] [stdout]    | |________________________^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a module
[INFO] [stdout]  --> src/../tests/helpers/utils/mod.rs:4:1
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub mod random;
[INFO] [stdout]   | ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a function
[INFO] [stdout]  --> src/../tests/helpers/utils/mod.rs:6:1
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub fn create_test_environment_with_random(random: Arc<dyn Random>) -> Arc<Environment> {
[INFO] [stdout]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for a struct
[INFO] [stdout]   --> src/../tests/helpers/utils/random.rs:20:1
[INFO] [stdout]    |
[INFO] [stdout] 20 | pub struct FakeRandom {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: missing documentation for an associated function
[INFO] [stdout]   --> src/../tests/helpers/utils/random.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 26 |     pub fn new(ints: Vec<i32>, reals: Vec<Float>) -> Self {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::ops::ControlFlow` that must be used
[INFO] [stdout]    --> src/construction/enablers/feature_combinator.rs:124:9
[INFO] [stdout]     |
[INFO] [stdout] 124 | /         self.states.iter().try_for_each(|state| {
[INFO] [stdout] 125 | |             let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len());
[INFO] [stdout] 126 | |
[INFO] [stdout] 127 | |             state.accept_solution_state(ctx);
[INFO] [stdout] ...   |
[INFO] [stdout] 134 | |         });
[INFO] [stdout]     | |__________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 124 |         let _ = self.states.iter().try_for_each(|state| {
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/models/solution/tour.rs:99:27
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn all_activities(&self) -> Iter<Activity> {
[INFO] [stdout]    |                           ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                           |
[INFO] [stdout]    |                           the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 99 |     pub fn all_activities(&self) -> Iter<'_, Activity> {
[INFO] [stdout]    |                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]    --> src/models/solution/tour.rs:109:31
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<Activity> {
[INFO] [stdout]     |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]     |                               |
[INFO] [stdout]     |                               the lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]     |
[INFO] [stdout] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> {
[INFO] [stdout]     |                                                     +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/models/solution/tour.rs:114:79
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &Activity> + 'a {
[INFO] [stdout]     |                                --             --                              ^^^^^^^^^    -- the same lifetime is named here
[INFO] [stdout]     |                                |              |                               |
[INFO] [stdout]     |                                |              the lifetime is named here      the same lifetime is elided here
[INFO] [stdout]     |                                the lifetime is named here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &'a Activity> + 'a {
[INFO] [stdout]     |                                                                                ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/solver/mod.rs:144:58
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stdout]     |                      -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stdout]     |                                                           ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stdout]    --> src/solver/mod.rs:148:56
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stdout]     |                    -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stdout]     |
[INFO] [stdout]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: consistently use `'a`
[INFO] [stdout]     |
[INFO] [stdout] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stdout]     |                                                         ++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 15.48s
[INFO] running `Command { std: "docker" "inspect" "03df777f5fde95385c8679abad5bbbb2ca76a29772c6c63cd1b6d2f885c6918e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "03df777f5fde95385c8679abad5bbbb2ca76a29772c6c63cd1b6d2f885c6918e", kill_on_drop: false }`
[INFO] [stdout] 03df777f5fde95385c8679abad5bbbb2ca76a29772c6c63cd1b6d2f885c6918e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+33835004928d3bf65db4d4712e1330766263b0bd" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 23ef41e68335d9a5524c2559666a4d3719b519cfafc1e25bec47b6121e80ed7b
[INFO] running `Command { std: "docker" "start" "-a" "23ef41e68335d9a5524c2559666a4d3719b519cfafc1e25bec47b6121e80ed7b", kill_on_drop: false }`
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/clustering/vicinity/estimations.rs:99:17
[INFO] [stderr]    |
[INFO] [stderr] 99 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 99 -     transport: &(dyn TransportCost),
[INFO] [stderr] 99 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/clustering/vicinity/estimations.rs:124:17
[INFO] [stderr]     |
[INFO] [stderr] 124 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 124 -     transport: &(dyn TransportCost),
[INFO] [stderr] 124 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/clustering/vicinity/mod.rs:28:25
[INFO] [stderr]    |
[INFO] [stderr] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stderr]    |                         ^                                                       ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stderr] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/conditional_job.rs:67:26
[INFO] [stderr]    |
[INFO] [stderr] 67 |     context_transition: &(dyn JobContextTransition),
[INFO] [stderr]    |                          ^                        ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 67 -     context_transition: &(dyn JobContextTransition),
[INFO] [stderr] 67 +     context_transition: &dyn JobContextTransition ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:14:16
[INFO] [stderr]    |
[INFO] [stderr] 14 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 14 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 14 +     activity: &dyn ActivityCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 15 -     transport: &(dyn TransportCost),
[INFO] [stderr] 15 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:26:16
[INFO] [stderr]    |
[INFO] [stderr] 26 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 26 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 26 +     activity: &dyn ActivityCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:27:17
[INFO] [stderr]    |
[INFO] [stderr] 27 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 27 -     transport: &(dyn TransportCost),
[INFO] [stderr] 27 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:36:17
[INFO] [stderr]    |
[INFO] [stderr] 36 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 36 -     transport: &(dyn TransportCost),
[INFO] [stderr] 36 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/multi_trip.rs:20:34
[INFO] [stderr]    |
[INFO] [stderr] 20 |     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stderr]    |                                  ^                     ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 20 -     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stderr] 20 +     fn get_constraint(&self) -> &dyn FeatureConstraint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 16 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 16 +     activity: &dyn ActivityCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:17:17
[INFO] [stderr]    |
[INFO] [stderr] 17 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 17 -     transport: &(dyn TransportCost),
[INFO] [stderr] 17 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:27:16
[INFO] [stderr]    |
[INFO] [stderr] 27 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 27 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 27 +     activity: &dyn ActivityCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:28:17
[INFO] [stderr]    |
[INFO] [stderr] 28 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 28 -     transport: &(dyn TransportCost),
[INFO] [stderr] 28 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:37:62
[INFO] [stderr]    |
[INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                              ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:37:94
[INFO] [stderr]    |
[INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                                                              ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:59:59
[INFO] [stderr]    |
[INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                           ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:59:91
[INFO] [stderr]    |
[INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                                                           ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/enablers/schedule_update.rs:113:64
[INFO] [stderr]     |
[INFO] [stderr] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stderr]     |                                                                ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stderr] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost ) {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/travel_info.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 10 -     transport: &(dyn TransportCost),
[INFO] [stderr] 10 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/travel_info.rs:36:17
[INFO] [stderr]    |
[INFO] [stderr] 36 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 36 -     transport: &(dyn TransportCost),
[INFO] [stderr] 36 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/travel_info.rs:68:17
[INFO] [stderr]    |
[INFO] [stderr] 68 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 68 -     transport: &(dyn TransportCost),
[INFO] [stderr] 68 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/features/capacity.rs:138:34
[INFO] [stderr]     |
[INFO] [stderr] 138 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr]     |                                  ^                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 138 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr] 138 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/features/recharge.rs:184:34
[INFO] [stderr]     |
[INFO] [stderr] 184 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr]     |                                  ^                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 184 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr] 184 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/features/tour_order.rs:160:19
[INFO] [stderr]     |
[INFO] [stderr] 160 |     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stderr]     |                   ^                                                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 160 -     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stderr] 160 +     check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option<T>,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/heuristics/evaluators.rs:25:30
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stderr]    |                              ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 25 -     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stderr] 25 +     pub result_selector: &'a dyn ResultSelector,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/insertions.rs:264:24
[INFO] [stderr]     |
[INFO] [stderr] 264 |         job_selector: &(dyn JobSelector),
[INFO] [stderr]     |                        ^               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 264 -         job_selector: &(dyn JobSelector),
[INFO] [stderr] 264 +         job_selector: &dyn JobSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/insertions.rs:265:26
[INFO] [stderr]     |
[INFO] [stderr] 265 |         route_selector: &(dyn RouteSelector),
[INFO] [stderr]     |                          ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 265 -         route_selector: &(dyn RouteSelector),
[INFO] [stderr] 265 +         route_selector: &dyn RouteSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/insertions.rs:267:27
[INFO] [stderr]     |
[INFO] [stderr] 267 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                           ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 267 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 267 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/heuristics/selectors.rs:77:27
[INFO] [stderr]    |
[INFO] [stderr] 77 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]    |                           ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 77 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 77 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/selectors.rs:105:27
[INFO] [stderr]     |
[INFO] [stderr] 105 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                           ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 105 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 105 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/selectors.rs:137:27
[INFO] [stderr]     |
[INFO] [stderr] 137 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                           ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 137 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 137 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/selectors.rs:355:28
[INFO] [stderr]     |
[INFO] [stderr] 355 |     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stderr]     |                            ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 355 -     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stderr] 355 +     pub fn pick(&self) -> &dyn ResultSelector {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/probing/repair_solution.rs:19:15
[INFO] [stderr]    |
[INFO] [stderr] 19 |     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stderr]    |               ^                            ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 19 -     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stderr] 19 +     factory: &dyn Fn() -> InsertionContext,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/goal.rs:450:37
[INFO] [stderr]     |
[INFO] [stderr] 450 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr]     |                                     ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 450 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr] 450 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/goal.rs:474:37
[INFO] [stderr]     |
[INFO] [stderr] 474 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr]     |                                     ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 474 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr] 474 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:245:21
[INFO] [stderr]     |
[INFO] [stderr] 245 |         transport: &(dyn TransportCost),
[INFO] [stderr]     |                     ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 245 -         transport: &(dyn TransportCost),
[INFO] [stderr] 245 +         transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:332:17
[INFO] [stderr]     |
[INFO] [stderr] 332 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 332 -     transport: &(dyn TransportCost),
[INFO] [stderr] 332 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:385:17
[INFO] [stderr]     |
[INFO] [stderr] 385 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 385 -     transport: &(dyn TransportCost),
[INFO] [stderr] 385 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:404:17
[INFO] [stderr]     |
[INFO] [stderr] 404 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 404 -     transport: &(dyn TransportCost),
[INFO] [stderr] 404 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:419:17
[INFO] [stderr]     |
[INFO] [stderr] 419 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 419 -     transport: &(dyn TransportCost),
[INFO] [stderr] 419 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/local/exchange_inter_route.rs:180:23
[INFO] [stderr]     |
[INFO] [stderr] 180 |     result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                       ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 180 -     result_selector: &(dyn ResultSelector),
[INFO] [stderr] 180 +     result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/local/exchange_swap_star.rs:79:71
[INFO] [stderr]    |
[INFO] [stderr] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stderr]    |                                                                       ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stderr] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/local/exchange_swap_star.rs:291:23
[INFO] [stderr]     |
[INFO] [stderr] 291 |     result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                       ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 291 -     result_selector: &(dyn ResultSelector),
[INFO] [stderr] 291 +     result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/local/exchange_swap_star.rs:372:23
[INFO] [stderr]     |
[INFO] [stderr] 372 |     result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                       ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 372 -     result_selector: &(dyn ResultSelector),
[INFO] [stderr] 372 +     result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/recreate/recreate_with_regret.rs:61:27
[INFO] [stderr]    |
[INFO] [stderr] 61 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]    |                           ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 61 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 61 +         result_selector: &dyn ResultSelector ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27
[INFO] [stderr]    |
[INFO] [stderr] 59 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]    |                           ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 59 +         result_selector: &dyn ResultSelector ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/ruin/route_removal.rs:140:14
[INFO] [stderr]     |
[INFO] [stderr] 140 |     random: &(dyn Random),
[INFO] [stderr]     |              ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 140 -     random: &(dyn Random),
[INFO] [stderr] 140 +     random: &dyn Random,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/removal.rs:82:18
[INFO] [stderr]    |
[INFO] [stderr] 82 |         random: &(dyn Random),
[INFO] [stderr]    |                  ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 82 -         random: &(dyn Random),
[INFO] [stderr] 82 +         random: &dyn Random,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/removal.rs:97:92
[INFO] [stderr]    |
[INFO] [stderr] 97 |     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stderr]    |                                                                                            ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 97 -     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stderr] 97 +     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/utils/removal.rs:142:18
[INFO] [stderr]     |
[INFO] [stderr] 142 |         random: &(dyn Random),
[INFO] [stderr]     |                  ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 142 -         random: &(dyn Random),
[INFO] [stderr] 142 +         random: &dyn Random,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:47:14
[INFO] [stderr]    |
[INFO] [stderr] 47 |     random: &(dyn Random),
[INFO] [stderr]    |              ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 47 -     random: &(dyn Random),
[INFO] [stderr] 47 +     random: &dyn Random ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:48:20
[INFO] [stderr]    |
[INFO] [stderr] 48 |     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stderr]    |                    ^                             ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 48 -     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stderr] 48 +     route_filter: &dyn Fn(&RouteContext) -> bool ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:49:18
[INFO] [stderr]    |
[INFO] [stderr] 49 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr]    |                  ^                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 49 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr] 49 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:79:14
[INFO] [stderr]    |
[INFO] [stderr] 79 |     random: &(dyn Random),
[INFO] [stderr]    |              ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 79 -     random: &(dyn Random),
[INFO] [stderr] 79 +     random: &dyn Random ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:80:18
[INFO] [stderr]    |
[INFO] [stderr] 80 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr]    |                  ^                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 80 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr] 80 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/tabu_list.rs:80:14
[INFO] [stderr]    |
[INFO] [stderr] 80 |     random: &(dyn Random),
[INFO] [stderr]    |              ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 80 -     random: &(dyn Random),
[INFO] [stderr] 80 +     random: &dyn Random ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::ops::ControlFlow` that must be used
[INFO] [stderr]    --> src/construction/enablers/feature_combinator.rs:124:9
[INFO] [stderr]     |
[INFO] [stderr] 124 | /         self.states.iter().try_for_each(|state| {
[INFO] [stderr] 125 | |             let previous_state = (ctx.required.len(), ctx.ignored.len(), ctx.unassigned.len());
[INFO] [stderr] 126 | |
[INFO] [stderr] 127 | |             state.accept_solution_state(ctx);
[INFO] [stderr] ...   |
[INFO] [stderr] 134 | |         });
[INFO] [stderr]     | |__________^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 124 |         let _ = self.states.iter().try_for_each(|state| {
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]   --> src/models/solution/tour.rs:99:27
[INFO] [stderr]    |
[INFO] [stderr] 99 |     pub fn all_activities(&self) -> Iter<Activity> {
[INFO] [stderr]    |                           ^^^^^     ^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]    |                           |
[INFO] [stderr]    |                           the lifetime is elided here
[INFO] [stderr]    |
[INFO] [stderr]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]    |
[INFO] [stderr] 99 |     pub fn all_activities(&self) -> Iter<'_, Activity> {
[INFO] [stderr]    |                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stderr]    --> src/models/solution/tour.rs:109:31
[INFO] [stderr]     |
[INFO] [stderr] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<Activity> {
[INFO] [stderr]     |                               ^^^^^^^^^     ^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stderr]     |                               |
[INFO] [stderr]     |                               the lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: use `'_` for type paths
[INFO] [stderr]     |
[INFO] [stderr] 109 |     pub fn all_activities_mut(&mut self) -> IterMut<'_, Activity> {
[INFO] [stderr]     |                                                     +++
[INFO] [stderr] 
[INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stderr]    --> src/models/solution/tour.rs:114:79
[INFO] [stderr]     |
[INFO] [stderr] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &Activity> + 'a {
[INFO] [stderr]     |                                --             --                              ^^^^^^^^^    -- the same lifetime is named here
[INFO] [stderr]     |                                |              |                               |
[INFO] [stderr]     |                                |              the lifetime is named here      the same lifetime is elided here
[INFO] [stderr]     |                                the lifetime is named here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]     |
[INFO] [stderr] 114 |     pub fn job_activities<'a>(&'a self, job: &'a Job) -> impl Iterator<Item = &'a Activity> + 'a {
[INFO] [stderr]     |                                                                                ++
[INFO] [stderr] 
[INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stderr]    --> src/solver/mod.rs:144:58
[INFO] [stderr]     |
[INFO] [stderr] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stderr]     |                      -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]     |
[INFO] [stderr] 144 |     fn selected<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stderr]     |                                                           ++
[INFO] [stderr] 
[INFO] [stderr] warning: eliding a lifetime that's named elsewhere is confusing
[INFO] [stderr]    --> src/solver/mod.rs:148:56
[INFO] [stderr]     |
[INFO] [stderr] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &Self::Solution> + 'a> {
[INFO] [stderr]     |                    -- the lifetime is named here       ^^^^^^^^^^^^^^^ the same lifetime is elided here
[INFO] [stderr]     |
[INFO] [stderr]     = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stderr] help: consistently use `'a`
[INFO] [stderr]     |
[INFO] [stderr] 148 |     fn ranked<'a>(&'a self) -> Box<dyn Iterator<Item = &'a Self::Solution> + 'a> {
[INFO] [stderr]     |                                                         ++
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/heuristics/../../../tests/unit/construction/heuristics/metrics_test.rs:10:21
[INFO] [stderr]    |
[INFO] [stderr] 10 |     route_factory: &(dyn Fn(&Problem, usize) -> RouteContext),
[INFO] [stderr]    |                     ^                                       ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 10 -     route_factory: &(dyn Fn(&Problem, usize) -> RouteContext),
[INFO] [stderr] 10 +     route_factory: &dyn Fn(&Problem, usize) -> RouteContext ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]    --> src/lib.rs:108:1
[INFO] [stderr]     |
[INFO] [stderr] 108 | pub mod helpers;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] note: the lint level is defined here
[INFO] [stderr]    --> src/lib.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 102 | #![warn(missing_docs)]
[INFO] [stderr]     |         ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/mod.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub mod construction;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/mod.rs:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub mod models;
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/mod.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub mod solver;
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/mod.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub mod utils;
[INFO] [stderr]   | ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/mod.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub mod macros;
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/construction/mod.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub mod clustering;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/construction/mod.rs:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub mod features;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/construction/mod.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub mod heuristics;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/construction/clustering/mod.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub mod dbscan;
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/construction/clustering/mod.rs:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub mod vicinity;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]  --> src/../tests/helpers/construction/clustering/mod.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn p(x: Float, y: Float) -> Point {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]  --> src/../tests/helpers/construction/clustering/dbscan.rs:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | pub fn create_test_distances() -> Vec<Float> {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a type alias
[INFO] [stderr]   --> src/../tests/helpers/construction/clustering/vicinity.rs:13:1
[INFO] [stderr]    |
[INFO] [stderr] 13 | pub type JobPlaces = Vec<(Option<Location>, Duration, Vec<(Float, Float)>)>;
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/clustering/vicinity.rs:17:5
[INFO] [stderr]    |
[INFO] [stderr] 17 |     fn get_clustered_jobs(&self) -> Option<&Vec<Job>>;
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/clustering/vicinity.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     fn set_clustered_jobs(&mut self, jobs: Vec<Job>);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/construction/clustering/vicinity.rs:82:1
[INFO] [stderr]    |
[INFO] [stderr] 82 | pub fn create_goal_context_with_vicinity(disallow_merge_list: Vec<&str>) -> GoalContext {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/construction/clustering/vicinity.rs:96:1
[INFO] [stderr]    |
[INFO] [stderr] 96 | pub fn create_cluster_config() -> ClusterConfig {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]  --> src/../tests/helpers/construction/features.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub fn create_simple_demand(size: i32) -> Demand<SingleDimLoad> {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/construction/features.rs:17:1
[INFO] [stderr]    |
[INFO] [stderr] 17 | pub fn create_simple_dynamic_demand(size: i32) -> Demand<SingleDimLoad> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/construction/features.rs:31:1
[INFO] [stderr]    |
[INFO] [stderr] 31 | pub fn single_demand_as_multi(pickup: (i32, i32), delivery: (i32, i32)) -> Demand<MultiDimLoad> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct TestInsertionContextBuilder {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:35:5
[INFO] [stderr]    |
[INFO] [stderr] 35 |     pub fn with_problem(&mut self, problem: Problem) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:40:5
[INFO] [stderr]    |
[INFO] [stderr] 40 |     pub fn with_solution(&mut self, solution: SolutionContext) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:45:5
[INFO] [stderr]    |
[INFO] [stderr] 45 |     pub fn with_registry(&mut self, registry: Registry) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:51:5
[INFO] [stderr]    |
[INFO] [stderr] 51 |     pub fn with_registry_context(&mut self, registry: RegistryContext) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:56:5
[INFO] [stderr]    |
[INFO] [stderr] 56 |     pub fn with_routes(&mut self, routes: Vec<RouteContext>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn with_required(&mut self, required: Vec<Job>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:68:5
[INFO] [stderr]    |
[INFO] [stderr] 68 |     pub fn with_unassigned(&mut self, required: Vec<(Job, UnassignmentInfo)>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:76:5
[INFO] [stderr]    |
[INFO] [stderr] 76 |     pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:81:5
[INFO] [stderr]    |
[INFO] [stderr] 81 |     pub fn with_state(&mut self, state_fn: impl FnOnce(&mut SolutionState)) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/construction/heuristics.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub fn build(&mut self) -> InsertionContext {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/models/mod.rs:1:1
[INFO] [stderr]   |
[INFO] [stderr] 1 | pub mod domain;
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/models/mod.rs:2:1
[INFO] [stderr]   |
[INFO] [stderr] 2 | pub mod problem;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/models/mod.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | pub mod solution;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]  --> src/../tests/helpers/models/domain.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub fn test_random() -> Arc<dyn Random> {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:11:1
[INFO] [stderr]    |
[INFO] [stderr] 11 | pub fn test_logger() -> InfoLogger {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:15:1
[INFO] [stderr]    |
[INFO] [stderr] 15 | pub struct TestGoalContextBuilder {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 |     pub fn empty() -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:36:5
[INFO] [stderr]    |
[INFO] [stderr] 36 |     pub fn with_transport_feature() -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn add_feature(mut self, feature: Feature) -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:52:5
[INFO] [stderr]    |
[INFO] [stderr] 52 |     pub fn add_features(mut self, feature: Vec<Feature>) -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:57:5
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn build(self) -> GoalContext {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     pub fn with_fleet(&mut self, fleet: Fleet) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:80:5
[INFO] [stderr]    |
[INFO] [stderr] 80 |     pub fn with_jobs(&mut self, jobs: Vec<Job>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:85:5
[INFO] [stderr]    |
[INFO] [stderr] 85 |     pub fn with_goal(&mut self, goal: GoalContext) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:90:5
[INFO] [stderr]    |
[INFO] [stderr] 90 |     pub fn build(&mut self) -> Problem {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/domain.rs:95:1
[INFO] [stderr]    |
[INFO] [stderr] 95 | pub fn get_customer_ids_from_routes_sorted(insertion_ctx: &InsertionContext) -> Vec<Vec<String>> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]    --> src/../tests/helpers/models/domain.rs:101:1
[INFO] [stderr]     |
[INFO] [stderr] 101 | pub fn get_sorted_customer_ids_from_jobs(jobs: &[Job]) -> Vec<String> {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]    --> src/../tests/helpers/models/domain.rs:107:1
[INFO] [stderr]     |
[INFO] [stderr] 107 | pub fn get_customer_ids_from_jobs(jobs: &[Job]) -> Vec<String> {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]    --> src/../tests/helpers/models/domain.rs:111:1
[INFO] [stderr]     |
[INFO] [stderr] 111 | pub fn get_customer_ids_from_routes(insertion_ctx: &InsertionContext) -> Vec<Vec<String>> {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]    --> src/../tests/helpers/models/domain.rs:129:1
[INFO] [stderr]     |
[INFO] [stderr] 129 | pub fn get_customer_ids_from_unassigned(insertion_ctx: &InsertionContext) -> Vec<String> {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]    --> src/../tests/helpers/models/domain.rs:137:1
[INFO] [stderr]     |
[INFO] [stderr] 137 | pub fn get_customer_id(job: &Job) -> String {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]  --> src/../tests/helpers/models/problem/costs.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub struct TestTransportCost {}
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/costs.rs:29:5
[INFO] [stderr]    |
[INFO] [stderr] 29 |     pub fn new_shared() -> Arc<dyn TransportCost + Sync + Send> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/costs.rs:34:1
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn fake_routing(from: Location, to: Location) -> Float {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/models/problem/costs.rs:39:1
[INFO] [stderr]    |
[INFO] [stderr] 39 | pub struct TestActivityCost {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/costs.rs:54:5
[INFO] [stderr]    |
[INFO] [stderr] 54 |     pub fn new_shared() -> Arc<dyn ActivityCost + Sync + Send> {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]  --> src/../tests/helpers/models/problem/fleet.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const DEFAULT_ACTOR_LOCATION: Location = 0;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]  --> src/../tests/helpers/models/problem/fleet.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const DEFAULT_ACTOR_TIME_WINDOW: TimeWindow = TimeWindow { start: 0.0, end: 1000.0 };
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]  --> src/../tests/helpers/models/problem/fleet.rs:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const DEFAULT_VEHICLE_COSTS: Costs =
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn test_costs() -> Costs {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:16:1
[INFO] [stderr]    |
[INFO] [stderr] 16 | pub fn fixed_costs() -> Costs {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn empty_costs() -> Costs {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:24:1
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub fn test_driver() -> Driver {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:28:1
[INFO] [stderr]    |
[INFO] [stderr] 28 | pub fn test_driver_with_costs(costs: Costs) -> Driver {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:32:1
[INFO] [stderr]    |
[INFO] [stderr] 32 | pub fn test_vehicle_detail() -> VehicleDetail {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:45:1
[INFO] [stderr]    |
[INFO] [stderr] 45 | pub fn test_vehicle(profile_idx: usize) -> Vehicle {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:54:1
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub fn test_ovrp_vehicle(id: &str) -> Vehicle {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:58:1
[INFO] [stderr]    |
[INFO] [stderr] 58 | pub fn test_fleet() -> Fleet {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:62:1
[INFO] [stderr]    |
[INFO] [stderr] 62 | pub fn test_vehicle_with_id(id: &str) -> Vehicle {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:69:1
[INFO] [stderr]    |
[INFO] [stderr] 69 | pub fn get_vehicle_id(vehicle: &Vehicle) -> &String {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:73:1
[INFO] [stderr]    |
[INFO] [stderr] 73 | pub fn get_test_actor_from_fleet(fleet: &Fleet, vehicle_id: &str) -> Arc<Actor> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:77:1
[INFO] [stderr]    |
[INFO] [stderr] 77 | pub struct TestVehicleBuilder(Vehicle);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub fn id(&mut self, id: &str) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 |     pub fn profile(&mut self, profile: Profile) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/fleet.rs:96:5
[INFO] [stderr]    |
[INFO] [stderr] 96 |     pub fn capacity(&mut self, capacity: i32) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:101:5
[INFO] [stderr]     |
[INFO] [stderr] 101 |     pub fn capacity_mult(&mut self, capacity: Vec<i32>) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:106:5
[INFO] [stderr]     |
[INFO] [stderr] 106 |     pub fn costs(&mut self, costs: Costs) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:111:5
[INFO] [stderr]     |
[INFO] [stderr] 111 |     pub fn details(&mut self, details: Vec<VehicleDetail>) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:116:5
[INFO] [stderr]     |
[INFO] [stderr] 116 |     pub fn property<K: 'static, T: 'static + Sync + Send>(&mut self, value: T) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:121:5
[INFO] [stderr]     |
[INFO] [stderr] 121 |     pub fn dimens_mut(&mut self) -> &mut Dimensions {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:125:5
[INFO] [stderr]     |
[INFO] [stderr] 125 |     pub fn build(&mut self) -> Vehicle {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a type alias
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:130:1
[INFO] [stderr]     |
[INFO] [stderr] 130 | pub type GroupKeyFn = Box<dyn Fn(&[Arc<Actor>]) -> Box<dyn Fn(&Actor) -> usize + Send + Sync>>;
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:133:1
[INFO] [stderr]     |
[INFO] [stderr] 133 | pub struct FleetBuilder {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:140:5
[INFO] [stderr]     |
[INFO] [stderr] 140 |     pub fn add_driver(&mut self, driver: Driver) -> &mut FleetBuilder {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:145:5
[INFO] [stderr]     |
[INFO] [stderr] 145 |     pub fn add_vehicle(&mut self, vehicle: Vehicle) -> &mut FleetBuilder {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:150:5
[INFO] [stderr]     |
[INFO] [stderr] 150 |     pub fn add_vehicles(&mut self, vehicles: Vec<Vehicle>) -> &mut FleetBuilder {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:155:5
[INFO] [stderr]     |
[INFO] [stderr] 155 |     pub fn with_group_key_fn(&mut self, group_key_fn: GroupKeyFn) -> &mut FleetBuilder {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:160:5
[INFO] [stderr]     |
[INFO] [stderr] 160 |     pub fn build(&mut self) -> Fleet {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]    --> src/../tests/helpers/models/problem/fleet.rs:177:1
[INFO] [stderr]     |
[INFO] [stderr] 177 | pub fn create_details_actor_groups(actors: &[Arc<Actor>]) -> impl Fn(&Actor) -> usize + Send + Sync {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]  --> src/../tests/helpers/models/problem/jobs.rs:7:1
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub const DEFAULT_JOB_LOCATION: Location = 0;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]  --> src/../tests/helpers/models/problem/jobs.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub const DEFAULT_JOB_DURATION: Duration = 0.0;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]  --> src/../tests/helpers/models/problem/jobs.rs:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | pub const DEFAULT_JOB_TIME_SPAN: TimeSpan = TimeSpan::Window(TimeWindow { start: 0., end: 1000. });
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const DEFAULT_ACTIVITY_TIME_WINDOW: TimeWindow = TimeWindow { start: 0., end: 1000. };
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a type alias
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub type TestPlace = (Option<Location>, Duration, Vec<(Float, Float)>);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:14:1
[INFO] [stderr]    |
[INFO] [stderr] 14 | pub fn test_multi_with_id(id: &str, jobs: Vec<Arc<Single>>) -> Arc<Multi> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:21:1
[INFO] [stderr]    |
[INFO] [stderr] 21 | pub fn test_multi_job_with_locations(locations: Vec<Vec<Option<Location>>>) -> Arc<Multi> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:27:1
[INFO] [stderr]    |
[INFO] [stderr] 27 | pub fn test_multi_with_permutations(id: &str, jobs: Vec<Arc<Single>>, permutations: Vec<Vec<usize>>) -> Arc<Multi> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:34:1
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn get_job_id(job: &Job) -> &String {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:38:1
[INFO] [stderr]    |
[INFO] [stderr] 38 | pub struct TestSingleBuilder(Single);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 47 |     pub fn with_locations(locations: Vec<Option<Location>>) -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:57:5
[INFO] [stderr]    |
[INFO] [stderr] 57 |     pub fn id(&mut self, id: &str) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:62:5
[INFO] [stderr]    |
[INFO] [stderr] 62 |     pub fn property<K: 'static, T: 'static + Sync + Send>(&mut self, value: T) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:67:5
[INFO] [stderr]    |
[INFO] [stderr] 67 |     pub fn dimens(&mut self, dimens: Dimensions) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 72 |     pub fn location(&mut self, loc: Option<Location>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:77:5
[INFO] [stderr]    |
[INFO] [stderr] 77 |     pub fn duration(&mut self, dur: Duration) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:82:5
[INFO] [stderr]    |
[INFO] [stderr] 82 |     pub fn times(&mut self, times: Vec<TimeWindow>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:87:5
[INFO] [stderr]    |
[INFO] [stderr] 87 |     pub fn demand<T: LoadOps>(&mut self, demand: Demand<T>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/problem/jobs.rs:92:5
[INFO] [stderr]    |
[INFO] [stderr] 92 |     pub fn places(&mut self, places: Vec<TestPlace>) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/jobs.rs:105:5
[INFO] [stderr]     |
[INFO] [stderr] 105 |     pub fn dimens_mut(&mut self) -> &mut Dimensions {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/jobs.rs:109:5
[INFO] [stderr]     |
[INFO] [stderr] 109 |     pub fn build(&mut self) -> Single {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/jobs.rs:113:5
[INFO] [stderr]     |
[INFO] [stderr] 113 |     pub fn build_shared(&mut self) -> Arc<Single> {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/problem/jobs.rs:117:5
[INFO] [stderr]     |
[INFO] [stderr] 117 |     pub fn build_as_job_ref(&mut self) -> Job {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]  --> src/../tests/helpers/models/solution/actor.rs:8:1
[INFO] [stderr]   |
[INFO] [stderr] 8 | pub fn test_actor() -> Arc<Actor> {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/solution/actor.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub fn test_actor_with_profile(profile_idx: usize) -> Arc<Actor> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/models/solution/actor.rs:30:1
[INFO] [stderr]    |
[INFO] [stderr] 30 | pub fn create_test_registry() -> Registry {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a constant
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:10:1
[INFO] [stderr]    |
[INFO] [stderr] 10 | pub const DEFAULT_ACTIVITY_SCHEDULE: Schedule = Schedule { departure: 0.0, arrival: 0.0 };
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | pub struct RouteContextBuilder(RouteContext);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:21:5
[INFO] [stderr]    |
[INFO] [stderr] 21 |     pub fn with_route(&mut self, route: Route) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn with_state(&mut self, state: RouteState) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     pub fn build(&mut self) -> RouteContext {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:36:1
[INFO] [stderr]    |
[INFO] [stderr] 36 | pub struct RouteBuilder(Route);
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:86:5
[INFO] [stderr]    |
[INFO] [stderr] 86 |     pub fn add_activity(&mut self, activity: Activity) -> &mut Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]   --> src/../tests/helpers/models/solution/route.rs:91:5
[INFO] [stderr]    |
[INFO] [stderr] 91 | /     pub fn with_activity<F>(&mut self, configure: F) -> &mut Self
[INFO] [stderr] 92 | |     where
[INFO] [stderr] 93 | |         F: FnOnce(&mut Activity),
[INFO] [stderr]    | |_________________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:101:5
[INFO] [stderr]     |
[INFO] [stderr] 101 |     pub fn build(&mut self) -> Route {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:107:1
[INFO] [stderr]     |
[INFO] [stderr] 107 | pub struct RouteStateBuilder {
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:112:5
[INFO] [stderr]     |
[INFO] [stderr] 112 |     pub fn set_route_state<F: Fn(&mut RouteState)>(&mut self, func: F) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:117:5
[INFO] [stderr]     |
[INFO] [stderr] 117 |     pub fn build(&mut self) -> RouteState {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:122:1
[INFO] [stderr]     |
[INFO] [stderr] 122 | pub struct ActivityBuilder(Activity);
[INFO] [stderr]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:131:5
[INFO] [stderr]     |
[INFO] [stderr] 131 |     pub fn with_location(location: Location) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:135:5
[INFO] [stderr]     |
[INFO] [stderr] 135 |     pub fn with_location_and_tw(location: Location, tw: TimeWindow) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:139:5
[INFO] [stderr]     |
[INFO] [stderr] 139 |     pub fn with_location_tw_and_duration(location: Location, tw: TimeWindow, duration: Duration) -> Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:148:5
[INFO] [stderr]     |
[INFO] [stderr] 148 |     pub fn place(&mut self, place: Place) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:153:5
[INFO] [stderr]     |
[INFO] [stderr] 153 |     pub fn schedule(&mut self, schedule: Schedule) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:158:5
[INFO] [stderr]     |
[INFO] [stderr] 158 |     pub fn job(&mut self, job: Option<Arc<Single>>) -> &mut Self {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a method
[INFO] [stderr]    --> src/../tests/helpers/models/solution/route.rs:163:5
[INFO] [stderr]     |
[INFO] [stderr] 163 |     pub fn build(&mut self) -> Activity {
[INFO] [stderr]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/solver/mod.rs:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub fn create_default_refinement_ctx(problem: Arc<Problem>) -> RefinementContext {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/solver/mod.rs:54:1
[INFO] [stderr]    |
[INFO] [stderr] 54 | pub fn generate_matrix_distances_from_points(points: &[Point]) -> Vec<Float> {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]   --> src/../tests/helpers/solver/mod.rs:58:1
[INFO] [stderr]    |
[INFO] [stderr] 58 | / pub fn generate_matrix_routes_with_disallow_list(
[INFO] [stderr] 59 | |     rows: usize,
[INFO] [stderr] 60 | |     cols: usize,
[INFO] [stderr] 61 | |     is_open_vrp: bool,
[INFO] [stderr] 62 | |     disallowed_pairs: Vec<(&str, &str)>,
[INFO] [stderr] 63 | | ) -> (Problem, Solution) {
[INFO] [stderr]    | |________________________^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a module
[INFO] [stderr]  --> src/../tests/helpers/utils/mod.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | pub mod random;
[INFO] [stderr]   | ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a function
[INFO] [stderr]  --> src/../tests/helpers/utils/mod.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | pub fn create_test_environment_with_random(random: Arc<dyn Random>) -> Arc<Environment> {
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for a struct
[INFO] [stderr]   --> src/../tests/helpers/utils/random.rs:20:1
[INFO] [stderr]    |
[INFO] [stderr] 20 | pub struct FakeRandom {
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: missing documentation for an associated function
[INFO] [stderr]   --> src/../tests/helpers/utils/random.rs:26:5
[INFO] [stderr]    |
[INFO] [stderr] 26 |     pub fn new(ints: Vec<i32>, reals: Vec<Float>) -> Self {
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `vrp-core` (lib) generated 63 warnings (run `cargo fix --lib -p vrp-core` to apply 62 suggestions)
[INFO] [stderr] warning: `vrp-core` (lib test) generated 208 warnings (63 duplicates) (run `cargo fix --lib -p vrp-core --tests` to apply 1 suggestion)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.05s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/vrp_core-d00ce834c45b252a)
[INFO] [stdout] 
[INFO] [stdout] running 604 tests
[INFO] [stdout] test algorithms::geometry::point::point_test::can_calculate_distance_between_points ... ok
[INFO] [stdout] test algorithms::geometry::point::point_test::can_calculate_distance_to_segment ... ok
[INFO] [stdout] test algorithms::clustering::dbscan::dbscan_test::can_create_clusters_with_single_link ... ok
[INFO] [stdout] test algorithms::clustering::dbscan::dbscan_test::can_create_clusters_normally ... ok
[INFO] [stdout] test algorithms::geometry::point::point_test::can_calculate_distance_to_line ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_get_max_curvature ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_01_trivial ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_02_two_places ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_03_disallowed_insertion ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_04_disallowed_merge ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_05_visit_repetition ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_06_time_window_threshold_above ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_add_job::case_07_time_window_threshold_below ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_03 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_create_job_clusters::case_03 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_01 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_02 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_02 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_05 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_02_merge ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_01_empty ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_04_all ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_05_used ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_skipping_jobs::case_03_insertion ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_policy::case_01_closed ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_policy::case_02_open ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_create_job_clusters::case_01 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_02_diff ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_01_same ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_03_diff ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_04_skip ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_policy::case_03_return ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_create_job_clusters::case_02 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_05_skip ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_06_skip ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_07_skip ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_10_shrink ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_08_multi ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_build_job_cluster_with_time_windows::case_09_shrink ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_02_two_places ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_01_one_place ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_03_two_places ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_05_serving_policy ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_06_threshold ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_06 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_06 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_09_shared_time ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_04 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_07_threshold ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_02 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_03 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_04 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_07 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_01 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_08_shared_time ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_04_serving_policy ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_07 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_01 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon_having_zero_costs::case_04 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_clusters::case_05 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_00 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_10_shared_time ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_11_wide_time_windows ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_12_wide_time_windows ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_13_sorting_shared_time ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case01 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case03 ... ok
[INFO] [stdout] test construction::clustering::vicinity::estimations::estimations_test::can_get_dissimilarities::case_14_sorting_shared_time ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case04 ... ok
[INFO] [stdout] test construction::clustering::dbscan::dbscan_test::can_estimate_epsilon::case_03 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case02 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case06 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case07 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case03 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case04 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case08 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case09 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case07 ... ok
[INFO] [stdout] test construction::clustering::vicinity::vicinity_test::can_get_check_insertion ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case01 ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_avoid_reserved_time_when_driving::case01_should_move_duration_to_serving ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case02 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case06 ... ok
[INFO] [stdout] test construction::clustering::vicinity::vicinity_test::can_create_job_clusters ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_recede_departure_time::case05 ... ok
[INFO] [stdout] test construction::enablers::departure_time::departure_time_test::can_advance_departure_time::case05 ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case01_break_starts_at_target_then_next_at_end ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_avoid_reserved_time_when_driving::case02_should_keep_duration_at_driving ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case04_break_during_traveling ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case03_break_with_waiting_time ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case02_break_starts_at_target_then_next_is_late ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_search_for_reserved_time::case01 ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_search_for_reserved_time::case02 ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case09_break_constraints_next ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case04_two_inside_service ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case03_two_inside_travel ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case01_single_outside ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case07_break_on_whole_time_window_inclusive ... ok
[INFO] [stdout] test construction::features::breaks::breaks_test::can_remove_orphan_break::case03_break_with_location ... ok
[INFO] [stdout] test construction::features::breaks::breaks_test::can_remove_orphan_break::case02_break_no_location_activity_at_prev ... ok
[INFO] [stdout] test construction::features::breaks::breaks_test::can_skip_merge_breaks::case_01 ... ok
[INFO] [stdout] test construction::features::breaks::breaks_test::can_skip_merge_breaks::case_03 ... ok
[INFO] [stdout] test construction::features::breaks::breaks_test::can_skip_merge_breaks::case_02 ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case05_break_on_whole_time_window_exclusive ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_update_state_for_reserved_time::case02_single_inside ... ok
[INFO] [stdout] test construction::features::breaks::breaks_test::can_remove_orphan_break::case01_break_no_location_activity_at_another ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case08_break_constraints_next ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_calculate_current_capacity_state_values::case01 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_calculate_current_capacity_state_values::case03 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case01 ... ok
[INFO] [stdout] test construction::enablers::reserved_time::reserved_time_test::can_evaluate_activity::case06_break_on_whole_time_window_inclusive ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case03 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case02 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case06 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case05 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case07 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_route::case03 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case08 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case09 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case04 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case10 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_route::case01 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_calculate_current_capacity_state_values::case02 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_route::case02 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case03 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case04 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case06 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_evaluate_demand_on_activity::case11 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_accept_route_state::case_01 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_accept_route_state::case_02 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_02 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_03 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_04 ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::global_estimation::can_get_solution_fitness ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::global_estimation::can_get_solution_fitness_with_reload ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case01 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_01 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_02 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_03 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_merge_jobs::case_04 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case02 ... ok
[INFO] [stdout] test construction::features::capacity::capacity_test::can_merge_jobs_with_demand::case05 ... ok
[INFO] [stdout] test construction::features::compatibility::compatibility_test::can_use_compatibility::case_01 ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case01_start_next_activity ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case02_start_skip_activity ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case03_end_prev_activity ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_multi_job_insertion_without_reload::case04_end_prev_activity ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case02_delivery_along_route ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case01_delivery_deviate_route ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case04_pickup_along_route ... ok
[INFO] [stdout] test construction::features::fast_service::fast_service_test::local_estimation::can_estimate_single_job_insertion_without_reload::case03_pickup_deviate_route ... ok
[INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_01 ... ok
[INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_02 ... ok
[INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_05 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_02 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_accept_insertion::case_02 ... ok
[INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_06 ... ok
[INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_03 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_evaluate_job::case_01 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_02 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_evaluate_job::case_02 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_03 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_05 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_01 ... ok
[INFO] [stdout] test construction::features::fleet_usage::fleet_usage_test::can_properly_estimate_solutions::case_04 ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_handle_merge_locked_jobs ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_03 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_merge_groups::case_04 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_accept_insertion::case_01 ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_actor::case01 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_04 ... ok
[INFO] [stdout] test construction::features::groups::groups_test::can_accept_solution_state::case_01 ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case01_departure ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case02_departure ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_actor::case02 ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case03_departure ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case04_departure ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case05_departure ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case06_departure ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case07_departure ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case11_arrival ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case10_arrival ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case14_any ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case09_arrival ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case08_arrival ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case15_any ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case16_any ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case17_any ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case19_any ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case20_any ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case21_fixed ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case22_fixed ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case12_arrival ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case18_any ... ok
[INFO] [stdout] test construction::features::locked_jobs::locked_jobs_test::can_lock_jobs_to_position_in_tour::case13_any ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case03_no_recharges ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case04_recharge_at_end ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case05_recharge_at_start ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_accept_recharge_in_long_empty_route ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case01_single_recharge ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case05_can_handle_two ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case01_remove_one_exact ... ok
[INFO] [stdout] test construction::features::minimize_unassigned::minimize_unassigned_test::can_properly_estimate_empty_solution ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_accumulate_distance::case02_two_recharges ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_evaluate_insertion::case01_reject_before_recharge ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_02_enough_resource ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_evaluate_insertion::case02_accept_after_recharge ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_01_enough_resource ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case02_remove_one_diff ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case03_keep_one_exact ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_05_enough_resource_ovrp ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_06_not_enough_resource_ovrp ... ok
[INFO] [stdout] test construction::features::recharge::recharge_test::can_handle_obsolete_intervals::case04_remove_one_diff ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_04_not_enough_resource ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_03_not_enough_resource ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_07_not_enough_resource_ovrp ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_08_not_enough_resource_ovrp ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_03_no_demand ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_02_complete_solution ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_activity::case_09_not_enough_resource_ovrp ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_handle_reload_jobs_with_merge ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case02_remove_at_start ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_04_no_resource ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case03_remove_at_start ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_constraint_route::case_01_partial_solution ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case01_no_reloads ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case08_keep_static_delivery ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case07_keep_static_delivery ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case05_remove_at_end ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case11_remove_static_pickup ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case12_keep_static_mixed ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case13_keep_static_pickup ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case04_remove_at_end ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case06_keep_static_delivery ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case10_remove_static_delivery ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case09_remove_static_delivery ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case16_keep_multiple ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case15_remove_static_mixed ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case14_remove_static_mixed ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case21_remove_multiple ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case17_remove_multiple ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case20_remove_multiple ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case18_remove_multiple ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case22_remove_dynamic ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case23_remove_mixed ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case25_keep_mixed ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case19_remove_multiple ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case01 ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_02_two_shared_resources ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_remove_trivial_reloads_when_used_from_capacity_constraint::case24_remove_mixed ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_04_partial_solution ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_01 ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_03_mixed_normal_resource ... ok
[INFO] [stdout] test construction::features::reloads::reloads_test::can_update_resource_consumption::case_01_single_shared_resource ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_02 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_03 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_05 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_06 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_01 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_all_of_04 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_02 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_04 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_03 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_03 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_07 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_06 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_04 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_02 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_05 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_combine_05 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_06 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_02 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_none_of_01 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_03 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_04 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_02 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_05 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_create_empty_skills_as_none ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_06 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_06 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_09 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_08 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_04 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_05 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_01 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_07 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_check_skills::case_one_of_01 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_10 ... ok
[INFO] [stdout] test construction::features::total_value::total_value_test::can_merge_value ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_11 ... ok
[INFO] [stdout] test construction::features::skills::skills_test::can_merge_skills::case_03 ... ok
[INFO] [stdout] test construction::features::total_value::total_value_test::can_estimate_job_value::case_02 ... ok
[INFO] [stdout] test construction::features::total_value::total_value_test::can_estimate_job_value::case_03 ... ok
[INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_return_err_if_feature_cannot_be_created ... ok
[INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_03_near_job ... ok
[INFO] [stdout] test construction::features::total_value::total_value_test::can_estimate_job_value::case_01 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case01 ... ok
[INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_02_near_job ... ok
[INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_04_near_job_larger_routes ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case03 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case02 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case05 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case06 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case02 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case06 ... ok
[INFO] [stdout] test construction::features::tour_compactness::tour_compactness_test::can_count_neighbours_in_route::case_01_far_job ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case05 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case04 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case03 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::activity::can_limit_by_job_activities::case04 ... ok
[INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_05 ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_consider_waiting_time ... ok
[INFO] [stdout] test construction::features::tour_order::tour_order_test::can_get_violations ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_calculate_soft_activity_cost_for_empty_tour ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_calculate_soft_activity_cost_for_non_empty_tour ... ok
[INFO] [stdout] test construction::features::tour_limits::tour_limits_test::traveling::can_check_traveling_limits::case01 ... ok
[INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_02 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case06 ... ok
[INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_03 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case05 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case01 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case09 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case02 ... ok
[INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_01 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case03 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case02 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case05 ... ok
[INFO] [stdout] test construction::features::tour_order::tour_order_test::can_merge_order::case_04 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case04 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case03 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case08 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case07 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case09 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case04 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_detect_activity_constraint_violation::case10 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case01 ... ok
[INFO] [stdout] test construction::heuristics::context::context_test::can_set_and_get_activity_states_with_different_type_keys ... ok
[INFO] [stdout] test construction::heuristics::context::context_test::can_set_and_get_empty_route_state ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_stop_with_time_route_constraint ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case08 ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case07 ... ok
[INFO] [stdout] test construction::heuristics::context::context_test::can_use_stale_flag ... ok
[INFO] [stdout] test construction::heuristics::context::context_test::can_set_and_get_route_state ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_properly_calculate_latest_arrival::case06 ... ok
[INFO] [stdout] test construction::heuristics::context::context_test::can_use_debug_fmt_for_insertion_ctx ... ok
[INFO] [stdout] test construction::features::transport::transport_test::timing::can_update_activity_schedule ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_handle_activity_constraint_violation::case1 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_handle_activity_constraint_violation::case2 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_location_into_empty_tour ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_choose_cheaper_permutation_from_two ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case01 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case02 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case06 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case03 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case10 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case03 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case09 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case05 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case02 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case04 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_detect_and_return_insertion_violation ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case01 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case04 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case07 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case05 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case07 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::multi::can_insert_job_with_singles_into_tour_with_activities::case08 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case02 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case03 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case04 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_empty_tour::case06 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case08 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case09 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case10 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case06 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case01 ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_compare_insertion_cost_defaults ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case07 ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_compare_insertion_costs ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sub_defaults ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sub_costs ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sub_with_refs ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sum_costs ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_two_vehicles_and_various_time_constraints::case2 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_two_vehicles_and_various_time_constraints::case3 ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_two_vehicles_and_various_time_constraints::case1 ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_use_big_sizes_for_insertion_costs ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_sum_defaults ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::debug::can_use_debug_fmt_for_insertion_cost ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::costs::can_add_with_refs ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::debug::can_use_debug_fmt_for_insertion_result_with_failure ... ok
[INFO] [stdout] test construction::heuristics::evaluators::evaluators_test::single::can_insert_job_with_location_into_tour_with_two_activities_and_variations::case05 ... ok
[INFO] [stdout] test construction::heuristics::insertions::insertions_test::debug::can_use_debug_fmt_for_insertion_result_with_success ... ok
[INFO] [stdout] test construction::heuristics::metrics::metrics_test::can_get_duration_mean ... ok
[INFO] [stdout] test construction::heuristics::metrics::metrics_test::can_get_max_load_variance ... ok
[INFO] [stdout] test construction::heuristics::metrics::metrics_test::can_get_distance_mean ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_01 ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_02 ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::iterators::can_get_size_hint_for_tour_legs ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_03 ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_04 ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_05 ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::noise_checks::can_compare_insertion_result_with_noise::case_06 ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case01_single_all_correct ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case03_single_multi_assignment_in_one_route ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case02_single_invalid_second_job_tw ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case04_single_multi_assignment_in_different_routes ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case05_multi_all_correct ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case06_multi_invalid_second_index ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case07_multi_partial_assignment ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case08_multi_invalid_permutation ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case09_relation_all_correct ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case10_relation_sequence_middle ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case11_relation_strict_end ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case12_relation_strict_another_route ... ok
[INFO] [stdout] test construction::probing::repair_solution::repair_solution_test::can_restore_solution::case13_multi_job_early_rejection ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_distance::case_02 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_distance::case_01 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_distance::case_03 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_duration::case_01 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_duration::case_02 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_duration::case_03 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_01 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_02 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_03 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_04 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_05 ... ok
[INFO] [stdout] test models::common::domain::domain_test::time_window::can_get_overlapping::case_06 ... ok
[INFO] [stdout] test models::common::load::load_test::multi::can_compare_dimens ... ok
[INFO] [stdout] test models::common::load::load_test::multi::can_sub_dimens ... ok
[INFO] [stdout] test models::common::load::load_test::multi::can_sum_dimens ... ok
[INFO] [stdout] test models::common::load::load_test::multi::can_use_specific_functions ... ok
[INFO] [stdout] test models::common::load::load_test::single::can_compare_dimens ... ok
[INFO] [stdout] test models::common::load::load_test::single::can_sub_dimens ... ok
[INFO] [stdout] test models::common::load::load_test::single::can_sum_dimens ... ok
[INFO] [stdout] test models::common::load::load_test::single::can_use_pudo_demand_ctors ... ok
[INFO] [stdout] test models::common::load::load_test::single::can_use_pudo_simple_ctors ... ok
[INFO] [stdout] test models::common::load::load_test::single::can_use_specific_functions ... ok
[INFO] [stdout] test models::goal::goal_test::can_create_goal_context_with_objective ... ok
[INFO] [stdout] test models::goal::goal_test::can_detect_same_name_usage ... ok
[INFO] [stdout] test models::goal::goal_test::can_evaluate_constraints ... ok
[INFO] [stdout] test models::goal::goal_test::can_use_objective_estimate::case01_use_one ... ok
[INFO] [stdout] test models::goal::goal_test::can_use_objective_estimate::case02_use_two ... ok
[INFO] [stdout] test models::goal::goal_test::can_use_objective_total_order::case01_equal ... ok
[INFO] [stdout] test models::goal::goal_test::can_use_objective_total_order::case02_less ... ok
[INFO] [stdout] test models::goal::goal_test::cannot_create_goal_context_without_objectives ... ok
[INFO] [stdout] test models::problem::costs::costs_test::can_detect_dimensions_mismatch ... ok
[INFO] [stdout] test models::goal::goal_test::can_use_objective_total_order::case03_great ... ok
[INFO] [stdout] test models::problem::costs::costs_test::can_interpolate_durations ... ok
[INFO] [stdout] test models::problem::costs::costs_test::can_return_error_when_mixing_timestamps ... ok
[INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case01 ... ok
[INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case02 ... ok
[INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case03 ... ok
[INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case04 ... ok
[INFO] [stdout] test models::problem::fleet::fleet_test::fleet_creates_unique_profiles_from_vehicles ... ok
[INFO] [stdout] test models::problem::costs::costs_test::objective::can_use_total_order::case05 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::all_returns_all_jobs ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case1 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case2 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case3 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_multi_jobs::case4 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case1 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case2 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case3 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case4 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::calculates_proper_cost_between_single_jobs::case5 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case01 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case02 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case03 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::can_handle_negative_distances_durations::case04 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::can_use_multi_job_bind_and_roots ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case1 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case2 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case3 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_neighbours::case4 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case1 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case2 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case3 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case4 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case5 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case6 ... ok
[INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case1 ... ok
[INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case2 ... ok
[INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case3 ... ok
[INFO] [stdout] test models::solution::registry::actor_test::can_provide_available_actors_from_registry::case4 ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_get_activities_for_job ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_get_activity_and_job_count ... ok
[INFO] [stdout] test models::solution::registry::actor_test::can_provide_next_actors_from_registry ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case3 ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case7 ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_get_job_index ... ok
[INFO] [stdout] test models::problem::jobs::jobs_test::returns_proper_job_ranks::case8 ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_last_position ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_get_legs ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_get_start_and_end ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case1 ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case4 ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_set_and_get_end ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_remove_job ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_set_and_get_start ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case5 ... ok
[INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_combine_vehicle_details::case_01_single_job ... ok
[INFO] [stdout] test models::solution::tour::tour_test::can_insert_at_specific_position::case2 ... ok
[INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_handle_assignable_job::case_02_same_code ... ok
[INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_handle_assignable_job::case_03_different_code ... ok
[INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_create_problem_with_clusters_on_pre_process ... ok
[INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_combine_vehicle_details::case_02_two_jobs ... ok
[INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_route_on_post_process::case_01 ... ok
[INFO] [stdout] test solver::processing::unassignment_reason::unassignment_reason_test::can_handle_assignable_job::case_01_unknown_code ... ok
[INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_route_on_post_process::case_02 ... ok
[INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_unassigned_on_post_process ... ok
[INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_01 ... ok
[INFO] [stdout] test solver::search::decompose_search::decompose_search_test::can_create_multiple_insertion_ctxs_without_unassigned ... ok
[INFO] [stdout] test solver::processing::vicinity_clustering::vicinity_clustering_test::can_unwrap_clusters_in_route_on_post_process::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_jobs::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_jobs::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_07 ... ok
[INFO] [stdout] test solver::search::decompose_search::decompose_search_test::can_create_multiple_insertion_ctxs_with_unassigned ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_jobs::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_sequence::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_exchange_sequence::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_06 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_extract_jobs::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_04 ... ok
[INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_05 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_extract_jobs::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_extract_jobs::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_get_route_indices::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_get_route_indices::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_inter_route::exchange_inter_route_test::can_use_exchange_inter_route_best_operator::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_04 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_get_route_indices::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_04 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_create_route_pairs::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_jobs_in_routes ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_05 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_07 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_07 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_04 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_08 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_06 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_insertion_cost::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_09 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_exchange_single_jobs::case_06 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_sequence::exchange_sequence_test::can_insert_jobs::case_05 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_insertion_cost::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_in_place_result::case_04 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_top_results::case_02 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_insertion_cost::case_03 ... ok
[INFO] [stdout] test solver::search::redistribute_search::redistribute_search_test::can_restore_constraints_in_context ... ok
[INFO] [stdout] test solver::search::redistribute_search::redistribute_search_test::can_add_extra_constraint ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_top_results::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_find_top_results::case_03 ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_02_preserved ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_05_sequential ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_04_preserved ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_06_sequential ... ok
[INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_create_ruin_cluster_with_default_params ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_07_sequential ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_01_sequential ... ok
[INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_handle_empty_problem ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_08_preserved ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_03_preserved ... ok
[INFO] [stdout] test solver::search::ruin::adjusted_string_removal::adjusted_string_removal_test::can_ruin_solution_with_matrix_routes::case_09_preserved ... ok
[INFO] [stdout] test solver::search::redistribute_search::redistribute_search_test::can_remove_jobs ... ok
[INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_ruin_jobs::case_01 ... ok
[INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_ruin_jobs::case_02 ... ok
[INFO] [stdout] test solver::search::ruin::cluster_removal::cluster_removal_test::can_ruin_jobs::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_use_exchange_swap_star::case_02 ... ok
[INFO] [stdout] test solver::search::ruin::route_removal::route_removal_test::can_remove_parts_random_routes_from_context ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_detect_limit_reached::case_01 ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_detect_limit_reached::case_02 ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_detect_limit_reached::case_03 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_use_exchange_swap_star::case_01 ... ok
[INFO] [stdout] test solver::search::ruin::route_removal::route_removal_test::can_remove_worst_route ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_02 ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_03 ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_01 ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_04 ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_job_with_job_limit::case_05 ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_01_one_route_left ... ok
[INFO] [stdout] test solver::search::ruin::route_removal::route_removal_test::can_remove_whole_random_routes_from_context ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_02_no_routes_left ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_04_fully_remove_by_hit ... ok
[INFO] [stdout] test solver::search::utils::removal::removal_test::can_try_remove_route_with_limit::case_03_partial_remove ... ok
[INFO] [stdout] test solver::search::ruin::worst_jobs_removal::worst_jobs_removal_test::can_ruin_solution_with_matrix_routes::case_02 ... ok
[INFO] [stdout] test solver::search::ruin::worst_jobs_removal::worst_jobs_removal_test::can_ruin_solution_with_matrix_routes::case_01 ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_keep_locked_jobs_in_place ... ok
[INFO] [stdout] test solver::search::local::exchange_swap_star::exchange_swap_star_test::can_use_exchange_swap_star::case_03 ... ok
[INFO] [stdout] test solver::search::decompose_search::decompose_search_test::can_perform_search ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::selections::can_use_stochastic_selection_mode::case_02 ... ok
[INFO] [stdout] test construction::heuristics::selectors::selectors_test::selections::can_use_stochastic_selection_mode::case_01 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 604 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.46s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests vrp_core
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/clustering/vicinity/estimations.rs:99:17
[INFO] [stderr]    |
[INFO] [stderr] 99 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 99 -     transport: &(dyn TransportCost),
[INFO] [stderr] 99 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/clustering/vicinity/estimations.rs:124:17
[INFO] [stderr]     |
[INFO] [stderr] 124 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 124 -     transport: &(dyn TransportCost),
[INFO] [stderr] 124 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/clustering/vicinity/mod.rs:28:25
[INFO] [stderr]    |
[INFO] [stderr] 28 | type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stderr]    |                         ^                                                       ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 28 - type CheckInsertionFn = (dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync);
[INFO] [stderr] 28 + type CheckInsertionFn = dyn Fn(&Job) -> Result<(), ViolationCode> + Send + Sync;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/conditional_job.rs:67:26
[INFO] [stderr]    |
[INFO] [stderr] 67 |     context_transition: &(dyn JobContextTransition),
[INFO] [stderr]    |                          ^                        ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 67 -     context_transition: &(dyn JobContextTransition),
[INFO] [stderr] 67 +     context_transition: &dyn JobContextTransition ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:14:16
[INFO] [stderr]    |
[INFO] [stderr] 14 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 14 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 14 +     activity: &dyn ActivityCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:15:17
[INFO] [stderr]    |
[INFO] [stderr] 15 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 15 -     transport: &(dyn TransportCost),
[INFO] [stderr] 15 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:26:16
[INFO] [stderr]    |
[INFO] [stderr] 26 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 26 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 26 +     activity: &dyn ActivityCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:27:17
[INFO] [stderr]    |
[INFO] [stderr] 27 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 27 -     transport: &(dyn TransportCost),
[INFO] [stderr] 27 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/departure_time.rs:36:17
[INFO] [stderr]    |
[INFO] [stderr] 36 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 36 -     transport: &(dyn TransportCost),
[INFO] [stderr] 36 +     transport: &dyn TransportCost,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/multi_trip.rs:20:34
[INFO] [stderr]    |
[INFO] [stderr] 20 |     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stderr]    |                                  ^                     ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 20 -     fn get_constraint(&self) -> &(dyn FeatureConstraint);
[INFO] [stderr] 20 +     fn get_constraint(&self) -> &dyn FeatureConstraint;
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 16 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 16 +     activity: &dyn ActivityCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:17:17
[INFO] [stderr]    |
[INFO] [stderr] 17 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 17 -     transport: &(dyn TransportCost),
[INFO] [stderr] 17 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:27:16
[INFO] [stderr]    |
[INFO] [stderr] 27 |     activity: &(dyn ActivityCost),
[INFO] [stderr]    |                ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 27 -     activity: &(dyn ActivityCost),
[INFO] [stderr] 27 +     activity: &dyn ActivityCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:28:17
[INFO] [stderr]    |
[INFO] [stderr] 28 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 28 -     transport: &(dyn TransportCost),
[INFO] [stderr] 28 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:37:62
[INFO] [stderr]    |
[INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                              ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:37:94
[INFO] [stderr]    |
[INFO] [stderr] 37 | fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                                                              ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 37 - fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 37 + fn update_schedules(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:59:59
[INFO] [stderr]    |
[INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                           ^                ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &dyn ActivityCost , transport: &(dyn TransportCost)) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/schedule_update.rs:59:91
[INFO] [stderr]    |
[INFO] [stderr] 59 | fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr]    |                                                                                           ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 - fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &(dyn TransportCost)) {
[INFO] [stderr] 59 + fn update_states(route_ctx: &mut RouteContext, activity: &(dyn ActivityCost), transport: &dyn TransportCost ) {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/enablers/schedule_update.rs:113:64
[INFO] [stderr]     |
[INFO] [stderr] 113 | fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stderr]     |                                                                ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 113 - fn update_statistics(route_ctx: &mut RouteContext, transport: &(dyn TransportCost)) {
[INFO] [stderr] 113 + fn update_statistics(route_ctx: &mut RouteContext, transport: &dyn TransportCost ) {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/travel_info.rs:10:17
[INFO] [stderr]    |
[INFO] [stderr] 10 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 10 -     transport: &(dyn TransportCost),
[INFO] [stderr] 10 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/travel_info.rs:36:17
[INFO] [stderr]    |
[INFO] [stderr] 36 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 36 -     transport: &(dyn TransportCost),
[INFO] [stderr] 36 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/enablers/travel_info.rs:68:17
[INFO] [stderr]    |
[INFO] [stderr] 68 |     transport: &(dyn TransportCost),
[INFO] [stderr]    |                 ^                 ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 68 -     transport: &(dyn TransportCost),
[INFO] [stderr] 68 +     transport: &dyn TransportCost ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/features/capacity.rs:138:34
[INFO] [stderr]     |
[INFO] [stderr] 138 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr]     |                                  ^                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 138 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr] 138 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/features/recharge.rs:184:34
[INFO] [stderr]     |
[INFO] [stderr] 184 |     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr]     |                                  ^                     ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 184 -     fn get_constraint(&self) -> &(dyn FeatureConstraint) {
[INFO] [stderr] 184 +     fn get_constraint(&self) -> &dyn FeatureConstraint {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/features/tour_order.rs:160:19
[INFO] [stderr]     |
[INFO] [stderr] 160 |     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stderr]     |                   ^                                                   ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 160 -     check_order: &(dyn Fn(OrderResult, OrderResult, bool) -> Option<T>),
[INFO] [stderr] 160 +     check_order: &dyn Fn(OrderResult, OrderResult, bool) -> Option<T>,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/heuristics/evaluators.rs:25:30
[INFO] [stderr]    |
[INFO] [stderr] 25 |     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stderr]    |                              ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 25 -     pub result_selector: &'a (dyn ResultSelector),
[INFO] [stderr] 25 +     pub result_selector: &'a dyn ResultSelector,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/insertions.rs:264:24
[INFO] [stderr]     |
[INFO] [stderr] 264 |         job_selector: &(dyn JobSelector),
[INFO] [stderr]     |                        ^               ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 264 -         job_selector: &(dyn JobSelector),
[INFO] [stderr] 264 +         job_selector: &dyn JobSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/insertions.rs:265:26
[INFO] [stderr]     |
[INFO] [stderr] 265 |         route_selector: &(dyn RouteSelector),
[INFO] [stderr]     |                          ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 265 -         route_selector: &(dyn RouteSelector),
[INFO] [stderr] 265 +         route_selector: &dyn RouteSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/insertions.rs:267:27
[INFO] [stderr]     |
[INFO] [stderr] 267 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                           ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 267 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 267 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/heuristics/selectors.rs:77:27
[INFO] [stderr]    |
[INFO] [stderr] 77 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]    |                           ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 77 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 77 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/selectors.rs:105:27
[INFO] [stderr]     |
[INFO] [stderr] 105 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                           ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 105 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 105 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/selectors.rs:137:27
[INFO] [stderr]     |
[INFO] [stderr] 137 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                           ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 137 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 137 +         result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/construction/heuristics/selectors.rs:355:28
[INFO] [stderr]     |
[INFO] [stderr] 355 |     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stderr]     |                            ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 355 -     pub fn pick(&self) -> &(dyn ResultSelector) {
[INFO] [stderr] 355 +     pub fn pick(&self) -> &dyn ResultSelector {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/construction/probing/repair_solution.rs:19:15
[INFO] [stderr]    |
[INFO] [stderr] 19 |     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stderr]    |               ^                            ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 19 -     factory: &(dyn Fn() -> InsertionContext),
[INFO] [stderr] 19 +     factory: &dyn Fn() -> InsertionContext,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/goal.rs:450:37
[INFO] [stderr]     |
[INFO] [stderr] 450 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr]     |                                     ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 450 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr] 450 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/goal.rs:474:37
[INFO] [stderr]     |
[INFO] [stderr] 474 |     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr]     |                                     ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 474 -     fn get_shuffled(&self, random: &(dyn Random)) -> Self {
[INFO] [stderr] 474 +     fn get_shuffled(&self, random: &dyn Random) -> Self {
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:245:21
[INFO] [stderr]     |
[INFO] [stderr] 245 |         transport: &(dyn TransportCost),
[INFO] [stderr]     |                     ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 245 -         transport: &(dyn TransportCost),
[INFO] [stderr] 245 +         transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:332:17
[INFO] [stderr]     |
[INFO] [stderr] 332 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 332 -     transport: &(dyn TransportCost),
[INFO] [stderr] 332 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:385:17
[INFO] [stderr]     |
[INFO] [stderr] 385 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 385 -     transport: &(dyn TransportCost),
[INFO] [stderr] 385 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:404:17
[INFO] [stderr]     |
[INFO] [stderr] 404 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 404 -     transport: &(dyn TransportCost),
[INFO] [stderr] 404 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/models/problem/jobs.rs:419:17
[INFO] [stderr]     |
[INFO] [stderr] 419 |     transport: &(dyn TransportCost),
[INFO] [stderr]     |                 ^                 ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 419 -     transport: &(dyn TransportCost),
[INFO] [stderr] 419 +     transport: &dyn TransportCost,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/local/exchange_inter_route.rs:180:23
[INFO] [stderr]     |
[INFO] [stderr] 180 |     result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                       ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 180 -     result_selector: &(dyn ResultSelector),
[INFO] [stderr] 180 +     result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/local/exchange_swap_star.rs:79:71
[INFO] [stderr]    |
[INFO] [stderr] 79 | type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stderr]    |                                                                       ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 79 - type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a (dyn ResultSelector));
[INFO] [stderr] 79 + type SearchContext<'a> = (&'a InsertionContext, &'a LegSelection, &'a dyn ResultSelector);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/local/exchange_swap_star.rs:291:23
[INFO] [stderr]     |
[INFO] [stderr] 291 |     result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                       ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 291 -     result_selector: &(dyn ResultSelector),
[INFO] [stderr] 291 +     result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/local/exchange_swap_star.rs:372:23
[INFO] [stderr]     |
[INFO] [stderr] 372 |     result_selector: &(dyn ResultSelector),
[INFO] [stderr]     |                       ^                  ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 372 -     result_selector: &(dyn ResultSelector),
[INFO] [stderr] 372 +     result_selector: &dyn ResultSelector,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/recreate/recreate_with_regret.rs:61:27
[INFO] [stderr]    |
[INFO] [stderr] 61 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]    |                           ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 61 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 61 +         result_selector: &dyn ResultSelector ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/recreate/recreate_with_skip_best.rs:59:27
[INFO] [stderr]    |
[INFO] [stderr] 59 |         result_selector: &(dyn ResultSelector),
[INFO] [stderr]    |                           ^                  ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 59 -         result_selector: &(dyn ResultSelector),
[INFO] [stderr] 59 +         result_selector: &dyn ResultSelector ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/ruin/route_removal.rs:140:14
[INFO] [stderr]     |
[INFO] [stderr] 140 |     random: &(dyn Random),
[INFO] [stderr]     |              ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 140 -     random: &(dyn Random),
[INFO] [stderr] 140 +     random: &dyn Random,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/removal.rs:82:18
[INFO] [stderr]    |
[INFO] [stderr] 82 |         random: &(dyn Random),
[INFO] [stderr]    |                  ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 82 -         random: &(dyn Random),
[INFO] [stderr] 82 +         random: &dyn Random,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/removal.rs:97:92
[INFO] [stderr]    |
[INFO] [stderr] 97 |     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stderr]    |                                                                                            ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 97 -     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &(dyn Random)) -> bool {
[INFO] [stderr] 97 +     fn can_remove_full_route(&self, solution: &SolutionContext, route_idx: usize, random: &dyn Random) -> bool {
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]    --> src/solver/search/utils/removal.rs:142:18
[INFO] [stderr]     |
[INFO] [stderr] 142 |         random: &(dyn Random),
[INFO] [stderr]     |                  ^          ^
[INFO] [stderr]     |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]     |
[INFO] [stderr] 142 -         random: &(dyn Random),
[INFO] [stderr] 142 +         random: &dyn Random,
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:47:14
[INFO] [stderr]    |
[INFO] [stderr] 47 |     random: &(dyn Random),
[INFO] [stderr]    |              ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 47 -     random: &(dyn Random),
[INFO] [stderr] 47 +     random: &dyn Random ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:48:20
[INFO] [stderr]    |
[INFO] [stderr] 48 |     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stderr]    |                    ^                             ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 48 -     route_filter: &(dyn Fn(&RouteContext) -> bool),
[INFO] [stderr] 48 +     route_filter: &dyn Fn(&RouteContext) -> bool ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:49:18
[INFO] [stderr]    |
[INFO] [stderr] 49 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr]    |                  ^                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 49 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr] 49 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:79:14
[INFO] [stderr]    |
[INFO] [stderr] 79 |     random: &(dyn Random),
[INFO] [stderr]    |              ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 79 -     random: &(dyn Random),
[INFO] [stderr] 79 +     random: &dyn Random ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/selection.rs:80:18
[INFO] [stderr]    |
[INFO] [stderr] 80 |     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr]    |                  ^                    ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 80 -     job_filter: &(dyn Fn(&Job) -> bool),
[INFO] [stderr] 80 +     job_filter: &dyn Fn(&Job) -> bool ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around type
[INFO] [stderr]   --> src/solver/search/utils/tabu_list.rs:80:14
[INFO] [stderr]    |
[INFO] [stderr] 80 |     random: &(dyn Random),
[INFO] [stderr]    |              ^          ^
[INFO] [stderr]    |
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 80 -     random: &(dyn Random),
[INFO] [stderr] 80 +     random: &dyn Random ,
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: 57 warnings emitted
[INFO] [stderr] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/lib.rs - (line 78) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.58s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "23ef41e68335d9a5524c2559666a4d3719b519cfafc1e25bec47b6121e80ed7b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "23ef41e68335d9a5524c2559666a4d3719b519cfafc1e25bec47b6121e80ed7b", kill_on_drop: false }`
[INFO] [stdout] 23ef41e68335d9a5524c2559666a4d3719b519cfafc1e25bec47b6121e80ed7b
