[INFO] fetching crate sci-cream 0.0.4...
[INFO] testing sci-cream-0.0.4 against try#33835004928d3bf65db4d4712e1330766263b0bd for pr-155739-1
[INFO] extracting crate sci-cream 0.0.4 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate sci-cream 0.0.4
[INFO] finished tweaking crates.io crate sci-cream 0.0.4
[INFO] tweaked toml for crates.io crate sci-cream 0.0.4 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate sci-cream 0.0.4 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 sci-cream 0.0.4 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] [stderr]     Blocking waiting for file lock on package cache
[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] 4f2eb89a209a3fd44cb757ffdc2a1484e57db26f3b9c89bdd37a6189a0d883f6
[INFO] running `Command { std: "docker" "start" "-a" "4f2eb89a209a3fd44cb757ffdc2a1484e57db26f3b9c89bdd37a6189a0d883f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4f2eb89a209a3fd44cb757ffdc2a1484e57db26f3b9c89bdd37a6189a0d883f6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4f2eb89a209a3fd44cb757ffdc2a1484e57db26f3b9c89bdd37a6189a0d883f6", kill_on_drop: false }`
[INFO] [stdout] 4f2eb89a209a3fd44cb757ffdc2a1484e57db26f3b9c89bdd37a6189a0d883f6
[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] 3fcd2625a2474c9ed1193a1b975944fc6bd80d22ec26cc0cea37156f4abae35f
[INFO] running `Command { std: "docker" "start" "-a" "3fcd2625a2474c9ed1193a1b975944fc6bd80d22ec26cc0cea37156f4abae35f", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling hashbrown v0.17.0
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling indexmap v2.14.0
[INFO] [stderr]    Compiling erased-serde v0.3.31
[INFO] [stderr]    Compiling ndarray v0.16.1
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling noisy_float v0.2.1
[INFO] [stderr]    Compiling struct_iterable_internal v0.1.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling strum v0.28.0
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling struct_iterable_derive v0.1.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling strum_macros v0.28.0
[INFO] [stderr]    Compiling struct_iterable v0.1.1
[INFO] [stderr]    Compiling enum-as-inner v0.7.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling ndarray-stats v0.6.0
[INFO] [stderr]    Compiling nalgebra v0.34.2
[INFO] [stderr]    Compiling nnls v0.4.0
[INFO] [stderr]    Compiling sci-cream v0.0.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 52.99s
[INFO] running `Command { std: "docker" "inspect" "3fcd2625a2474c9ed1193a1b975944fc6bd80d22ec26cc0cea37156f4abae35f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3fcd2625a2474c9ed1193a1b975944fc6bd80d22ec26cc0cea37156f4abae35f", kill_on_drop: false }`
[INFO] [stdout] 3fcd2625a2474c9ed1193a1b975944fc6bd80d22ec26cc0cea37156f4abae35f
[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] f9dfd809dec97e1777913c28e0234679d4478f138531745a26042115d6f56ec2
[INFO] running `Command { std: "docker" "start" "-a" "f9dfd809dec97e1777913c28e0234679d4478f138531745a26042115d6f56ec2", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.40
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling erased-serde v0.3.31
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling struct_iterable_derive v0.1.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling struct_iterable v0.1.1
[INFO] [stderr]    Compiling diff v0.1.13
[INFO] [stderr]    Compiling yansi v1.0.1
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling pretty_assertions v1.4.1
[INFO] [stderr]    Compiling more-asserts v0.3.1
[INFO] [stderr]    Compiling all_asserts v2.3.3
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.6
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling ndarray-stats v0.6.0
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling nnls v0.4.0
[INFO] [stderr]    Compiling sci-cream v0.0.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "f9dfd809dec97e1777913c28e0234679d4478f138531745a26042115d6f56ec2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f9dfd809dec97e1777913c28e0234679d4478f138531745a26042115d6f56ec2", kill_on_drop: false }`
[INFO] [stdout] f9dfd809dec97e1777913c28e0234679d4478f138531745a26042115d6f56ec2
[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] 25e2f11939221035b11ef7bfb2164794797a159b4d0e30ab016c0a656425ff07
[INFO] running `Command { std: "docker" "start" "-a" "25e2f11939221035b11ef7bfb2164794797a159b4d0e30ab016c0a656425ff07", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/sci_cream-7e4ae07ad4016a77)
[INFO] [stdout] 
[INFO] [stdout] running 551 tests
[INFO] [stdout] test balancing::tests::balance_compositions_nalgebra_dairy ... ok
[INFO] [stdout] test balancing::tests::balance_compositions_nnls_dairy ... ok
[INFO] [stdout] test composition::alcohol::tests::alcohol_by_weight ... ok
[INFO] [stdout] test composition::alcohol::tests::alcohol_add ... ok
[INFO] [stdout] test composition::alcohol::tests::alcohol_abs_diff_eq ... ok
[INFO] [stdout] test composition::alcohol::tests::alcohol_empty ... ok
[INFO] [stdout] test composition::alcohol::tests::alcohol_field_count ... ok
[INFO] [stdout] test composition::alcohol::tests::alcohol_from_abv ... ok
[INFO] [stdout] test composition::alcohol::tests::alcohol_scale ... ok
[INFO] [stdout] test composition::alcohol::tests::validate_err_for_negative ... ok
[INFO] [stdout] test composition::alcohol::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::alcohol::tests::validate_ok ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweetener_field_count ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweetener_no_fields_missed ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_abs_diff_eq ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_add ... ok
[INFO] [stdout] test composition::alcohol::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::alcohol::tests::validate_err_for_above_100 ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_energy ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_energy_error ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_empty ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_field_update_methods ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_scale ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_to_pac ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_to_pac_error ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_to_pod ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_to_pod_error ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::artificial_sweeteners_total ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_err_when_multiple_fields_sum_exceeds_100 ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_ok_when_total_is_exactly_100 ... ok
[INFO] [stdout] test composition::carbohydrates::tests::artificial_sweetener_no_fields_missed ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_add ... ok
[INFO] [stdout] test composition::carbohydrates::tests::artificial_sweeteners_abs_diff_eq ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_energy ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_energy_error ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_field_count ... ok
[INFO] [stdout] test composition::artificial_sweeteners::tests::validate_ok ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_others_from_total ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_field_update_methods ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_empty ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_others_from_total_error ... ok
[INFO] [stdout] test balancing::tests::balance_compositions_nalgebra_important_targets_ref_a_recipe ... ok
[INFO] [stdout] test balancing::tests::balance_compositions_nnls_important_targets_ref_b_recipe ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_scale ... ok
[INFO] [stdout] test balancing::tests::balance_compositions_nnls_important_targets_main_recipe ... ok
[INFO] [stdout] test balancing::tests::balance_compositions_nnls_important_targets_ref_a_recipe ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_to_pac ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_to_pac_error ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_to_pod ... ok
[INFO] [stdout] test balancing::tests::balance_compositions_nalgebra_important_targets_main_recipe ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_to_pod_error ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_total ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::carbohydrates::tests::carbohydrates_others_from_total_override ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_err_when_multiple_fields_sum_exceeds_100 ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::carbohydrates::tests::validate_ok_when_total_is_exactly_100 ... ok
[INFO] [stdout] test composition::composition::tests::composition_2_percent_milk_get ... ok
[INFO] [stdout] test composition::composition::tests::composition_abs_diff_eq ... ok
[INFO] [stdout] test composition::composition::tests::composition_absolute_pac ... ok
[INFO] [stdout] test composition::composition::tests::composition_field_count ... ok
[INFO] [stdout] test composition::composition::tests::composition_field_update_methods ... ok
[INFO] [stdout] test composition::composition::tests::composition_from_combination_two_equal_weights ... ok
[INFO] [stdout] test composition::composition::tests::composition_from_combination_single ... ok
[INFO] [stdout] test composition::composition::tests::composition_from_combination_zero_total ... ok
[INFO] [stdout] test composition::composition::tests::composition_get_all_keys ... ok
[INFO] [stdout] test composition::composition::tests::composition_nan_values ... ok
[INFO] [stdout] test composition::composition::tests::composition_no_fields_missed ... ok
[INFO] [stdout] test composition::composition::tests::composition_add ... ok
[INFO] [stdout] test composition::composition::tests::composition_scale ... ok
[INFO] [stdout] test composition::composition::tests::composition_empty ... ok
[INFO] [stdout] test composition::composition::tests::composition_from_combination_empty ... ok
[INFO] [stdout] test composition::composition::tests::composition_emulsifiers_per_fat ... ok
[INFO] [stdout] test composition::composition::tests::composition_from_combination_error ... ok
[INFO] [stdout] test composition::composition::tests::composition_stabilizers_per_water ... ok
[INFO] [stdout] test composition::composition::tests::composition_water ... ok
[INFO] [stdout] test composition::composition::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::composition::tests::validate_err_on_invalid_alcohol ... ok
[INFO] [stdout] test composition::composition::tests::validate_err_on_invalid_micro ... ok
[INFO] [stdout] test composition::composition::tests::validate_err_on_invalid_pac ... ok
[INFO] [stdout] test composition::composition::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::composition::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::composition::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::emulsifiers::tests::emulsifiers_abs_diff_eq ... ok
[INFO] [stdout] test composition::composition::tests::validate_err_on_invalid_texture ... ok
[INFO] [stdout] test composition::emulsifiers::tests::emulsifiers_field_update_methods ... ok
[INFO] [stdout] test composition::emulsifiers::tests::emulsifiers_no_fields_missed ... ok
[INFO] [stdout] test composition::emulsifiers::tests::emulsifiers_scale ... ok
[INFO] [stdout] test composition::emulsifiers::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::emulsifiers::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::emulsifiers::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::emulsifiers::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::fats::tests::fats_abs_diff_eq ... ok
[INFO] [stdout] test composition::fats::tests::fats_add ... ok
[INFO] [stdout] test composition::composition::tests::validate_err_when_solids_plus_alcohol_exceeds_100 ... ok
[INFO] [stdout] test composition::composition::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::emulsifiers::tests::emulsifiers_empty ... ok
[INFO] [stdout] test composition::emulsifiers::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::fats::tests::fats_energy ... ok
[INFO] [stdout] test composition::fats::tests::fats_empty ... ok
[INFO] [stdout] test composition::fats::tests::fats_field_update_methods ... ok
[INFO] [stdout] test composition::fats::tests::fats_field_count ... ok
[INFO] [stdout] test composition::fats::tests::fats_no_fields_missed ... ok
[INFO] [stdout] test composition::fats::tests::fats_scale ... ok
[INFO] [stdout] test composition::fats::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::fats::tests::validate_err_when_saturated_exceeds_total ... ok
[INFO] [stdout] test composition::fats::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::fats::tests::validate_err_when_trans_exceeds_total ... ok
[INFO] [stdout] test composition::fats::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::fats::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::fats::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::fats::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::fats::tests::validate_ok_when_subsets_equal_total ... ok
[INFO] [stdout] test composition::fats::tests::validate_ok_when_total_is_exactly_100 ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_abs_diff_eq ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_add ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_energy ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_field_count ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_empty ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_no_fields_missed ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_field_update_methods ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_to_pod ... ok
[INFO] [stdout] test composition::fibers::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_total ... ok
[INFO] [stdout] test composition::fibers::tests::validate_err_when_multiple_fields_sum_exceeds_100 ... ok
[INFO] [stdout] test composition::fibers::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::fibers::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::fibers::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::fibers::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::fibers::tests::validate_ok_when_total_is_exactly_100 ... ok
[INFO] [stdout] test composition::fibers::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::micro::tests::micro_add ... ok
[INFO] [stdout] test composition::micro::tests::micro_empty ... ok
[INFO] [stdout] test composition::micro::tests::micro_field_count ... ok
[INFO] [stdout] test composition::micro::tests::micro_field_update_methods ... ok
[INFO] [stdout] test composition::micro::tests::micro_no_fields_missed ... ok
[INFO] [stdout] test composition::micro::tests::micro_abs_diff_eq ... ok
[INFO] [stdout] test composition::micro::tests::micro_scale ... ok
[INFO] [stdout] test composition::micro::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::micro::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::micro::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::micro::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::micro::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::pac::tests::pac_2_percent_milk ... ok
[INFO] [stdout] test composition::pac::tests::pac_abs_diff_eq ... ok
[INFO] [stdout] test composition::emulsifiers::tests::emulsifiers_add ... ok
[INFO] [stdout] test composition::pac::tests::pac_add ... ok
[INFO] [stdout] test composition::emulsifiers::tests::emulsifiers_field_count ... ok
[INFO] [stdout] test composition::pac::tests::pac_empty ... ok
[INFO] [stdout] test composition::pac::tests::pac_field_count ... ok
[INFO] [stdout] test composition::pac::tests::pac_field_update_methods ... ok
[INFO] [stdout] test composition::composition::tests::validate_err_on_invalid_solids ... ok
[INFO] [stdout] test composition::pac::tests::pac_no_fields_missed ... ok
[INFO] [stdout] test composition::pac::tests::pac_scale ... ok
[INFO] [stdout] test composition::pac::tests::pac_total ... ok
[INFO] [stdout] test composition::pac::tests::pac_total_excludes_hardness_factor ... ok
[INFO] [stdout] test composition::pac::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::pac::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::pac::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::pac::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::pac::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_abs_diff_eq ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_add ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_empty ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_energy ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_energy_error ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_field_update_methods ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_field_count ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_no_fields_missed ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_scale ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_to_pac_error ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_to_pac ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_to_pod ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_total ... ok
[INFO] [stdout] test composition::polyols::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::polyols::tests::validate_err_when_multiple_fields_sum_exceeds_100 ... ok
[INFO] [stdout] test composition::polyols::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::polyols::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::polyols::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::polyols::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::polyols::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::polyols::tests::validate_ok_when_total_is_exactly_100 ... ok
[INFO] [stdout] test composition::solids::tests::solids_all ... ok
[INFO] [stdout] test composition::solids::tests::solids_empty ... ok
[INFO] [stdout] test composition::solids::tests::solids_field_update_methods ... ok
[INFO] [stdout] test composition::solids::tests::solids_field_count ... ok
[INFO] [stdout] test composition::solids::tests::solids_no_fields_missed ... ok
[INFO] [stdout] test composition::solids::tests::solids_total ... ok
[INFO] [stdout] test composition::solids::tests::solids_add ... ok
[INFO] [stdout] test composition::solids::tests::solids_scale ... ok
[INFO] [stdout] test composition::solids::tests::solids_total_equals_all_total ... ok
[INFO] [stdout] test composition::solids::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::solids::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::solids::tests::validate_err_on_invalid_nested_breakdown ... ok
[INFO] [stdout] test composition::solids::tests::solids_abs_diff_eq ... ok
[INFO] [stdout] test composition::solids::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::solids::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_abs_diff_eq ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_empty ... ok
[INFO] [stdout] test composition::solids::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::solids::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_add ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_energy_error ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_field_update_methods ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_field_count ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_energy ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_no_fields_missed ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_others_from_total_error ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_others_from_total ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_snf ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_others_from_total_override ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_snfs ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_scale ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::solids_breakdown_total ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::solids_breakdown::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::stabilizers::tests::stabilizers_field_count ... ok
[INFO] [stdout] test composition::stabilizers::tests::stabilizers_empty ... ok
[INFO] [stdout] test composition::stabilizers::tests::stabilizers_field_update_methods ... ok
[INFO] [stdout] test composition::stabilizers::tests::stabilizers_add ... ok
[INFO] [stdout] test composition::stabilizers::tests::stabilizers_no_fields_missed ... ok
[INFO] [stdout] test composition::stabilizers::tests::stabilizers_abs_diff_eq ... ok
[INFO] [stdout] test composition::stabilizers::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::stabilizers::tests::stabilizers_scale ... ok
[INFO] [stdout] test composition::stabilizers::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::stabilizers::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::stabilizers::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_abs_diff_eq ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_empty ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_add ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_energy ... ok
[INFO] [stdout] test composition::stabilizers::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_field_count ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_no_fields_missed ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_field_update_methods ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_scale ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_to_pac ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_to_pac_error ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_to_pod ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_to_pod_error ... ok
[INFO] [stdout] test composition::sugars::tests::sugars_total ... ok
[INFO] [stdout] test composition::sugars::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::sugars::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::sugars::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::sugars::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::sugars::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_abs_diff_eq ... ok
[INFO] [stdout] test composition::sugars::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_empty ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_add ... ok
[INFO] [stdout] test composition::sugars::tests::validate_ok_when_total_is_exactly_100 ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_field_update_methods ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_scale ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_to_pac ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_total ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_to_pac_error ... ok
[INFO] [stdout] test composition::sweeteners::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::sweeteners::tests::validate_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test composition::sweeteners::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::sweeteners::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::sweeteners::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::sweeteners::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test composition::texture::tests::texture_empty ... ok
[INFO] [stdout] test composition::texture::tests::texture_abs_diff_eq ... ok
[INFO] [stdout] test composition::texture::tests::texture_add ... ok
[INFO] [stdout] test composition::texture::tests::texture_field_count ... ok
[INFO] [stdout] test composition::texture::tests::texture_no_fields_missed ... ok
[INFO] [stdout] test composition::texture::tests::texture_field_update_methods ... ok
[INFO] [stdout] test composition::texture::tests::validate_err_for_each_negative_field ... ok
[INFO] [stdout] test composition::texture::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test composition::texture::tests::texture_scale ... ok
[INFO] [stdout] test composition::texture::tests::validate_ok_for_empty ... ok
[INFO] [stdout] test composition::texture::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test composition::texture::tests::validate_ok_for_valid_values ... ok
[INFO] [stdout] test constants::composition::tests::cocoa_constants ... ok
[INFO] [stdout] test constants::pac::tests::pac_from_molar_mass ... ok
[INFO] [stdout] test constants::density::tests::dairy_milliliters_to_grams ... ok
[INFO] [stdout] test data::tests::get_independent_ingredient_spec_by_name ... ok
[INFO] [stdout] test data::tests::get_all_independent_ingredient_specs ... ok
[INFO] [stdout] test data::tests::get_all_spec_entries ... ok
[INFO] [stdout] test data::tests::get_independent_ingredient_spec_by_name_alias ... ok
[INFO] [stdout] test data::tests::get_independent_ingredient_spec_by_name_composite ... ok
[INFO] [stdout] test data::tests::get_independent_ingredient_spec_by_name_not_found ... ok
[INFO] [stdout] test data::tests::get_all_spec_entry_names_matches_spec_entries ... ok
[INFO] [stdout] test data::tests::get_spec_entry_by_name_not_found ... ok
[INFO] [stdout] test data::tests::non_alias_spec_counts ... ok
[INFO] [stdout] test data::tests::independent_spec_counts ... ok
[INFO] [stdout] test data::tests::parse_spec_entries_alias_name_method ... ok
[INFO] [stdout] test data::tests::parse_spec_entries_includes_alias_entries ... ok
[INFO] [stdout] test data::tests::parse_spec_entries_includes_composite_entries ... ok
[INFO] [stdout] test data::tests::parse_spec_entries_mixed_alias_and_composite ... ok
[INFO] [stdout] test data::tests::spec_entry_names_are_unique ... ok
[INFO] [stdout] test data::tests::spec_entry_counts ... ok
[INFO] [stdout] test database::tests::ingredient_database_empty ... ok
[INFO] [stdout] test database::tests::ingredient_database_get_ingredient_by_name_not_found ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_to_pod ... ok
[INFO] [stdout] test composition::sweeteners::tests::sweeteners_to_pod_error ... ok
[INFO] [stdout] test data::tests::parse_spec_entries_from_json_string ... ok
[INFO] [stdout] test database::tests::ingredient_database_get_ingredients_by_category ... ok
[INFO] [stdout] test database::tests::ingredient_database_has_ingredient ... ok
[INFO] [stdout] test composition::fibers::tests::fibers_scale ... ok
[INFO] [stdout] test database::tests::ingredient_database_seed ... ok
[INFO] [stdout] test database::tests::ingredient_database_new_seeded ... ok
[INFO] [stdout] test display::tests::comp_keys_as_med_str ... ok
[INFO] [stdout] test display::tests::composition_value_as_percentage ... ok
[INFO] [stdout] test composition::polyols::tests::polyols_to_pod_error ... ok
[INFO] [stdout] test display::tests::fpd_keys_as_med_str ... ok
[INFO] [stdout] test display::tests::prop_keys_as_med_str ... ok
[INFO] [stdout] test data::tests::get_spec_entry_by_name ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_goff_hartel_interpolation ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_goff_hartel_polynomial ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_goff_hartel_polynomial_with_alcohol ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_modified_goff_hartel_corvitto_polynomial ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_modified_goff_hartel_corvitto_polynomial_corvitto_ref ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_modified_goff_hartel_corvitto_polynomial_with_alcohol ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_modified_goff_hartel_corvitto_polynomial_with_neg_pac_due_to_hf ... ok
[INFO] [stdout] test fpd::tests::compute_fpd_curve_modified_goff_hartel_corvitto_polynomial_with_hf ... ok
[INFO] [stdout] test fpd::tests::corvitto_pac_to_serving_temp_vs_goff_hartel_fpd_at_70_frozen_water ... ok
[INFO] [stdout] test display::tests::composition_value_as_quantity ... ok
[INFO] [stdout] test database::tests::ingredient_database_seed_from_specs ... ok
[INFO] [stdout] test fpd::tests::fpd_compute_from_empty_composition ... ok
[INFO] [stdout] test fpd::tests::get_fpd_from_pac_interpolation_combine_pac_vs_fpd ... ok
[INFO] [stdout] test fpd::tests::get_fpd_from_pac_modified_goff_hartel_corvitto_polynomial ... ok
[INFO] [stdout] test fpd::tests::get_fpd_from_pac_interpolation ... ok
[INFO] [stdout] test fpd::tests::get_fpd_from_pac_polynomial_vs_interpolation ... ok
[INFO] [stdout] test fpd::tests::get_pac_from_fpd_polynomial ... ok
[INFO] [stdout] test fpd::tests::get_serving_temp_from_pac_corvitto ... ok
[INFO] [stdout] test fpd::tests::get_x_axis_at_fpd ... ok
[INFO] [stdout] test fpd::tests::pac_msnf_ws_salts ... ok
[INFO] [stdout] test fpd::tests::get_fpd_from_pac_polynomial ... ok
[INFO] [stdout] test fpd::tests::validate_corvitto_reference_compositions ... ok
[INFO] [stdout] test fpd::tests::get_fpd_from_pac_polynomial_combine_pac_vs_fpd ... ok
[INFO] [stdout] test fpd::tests::validate_reference_compositions ... ok
[INFO] [stdout] test ingredient::tests::category_display ... ok
[INFO] [stdout] test ingredient::tests::category_equality ... ok
[INFO] [stdout] test ingredient::tests::ingredient_abs_diff_eq_outside_epsilon ... ok
[INFO] [stdout] test ingredient::tests::category_serde_roundtrip ... ok
[INFO] [stdout] test ingredient::tests::ingredient_abs_diff_eq_within_epsilon ... ok
[INFO] [stdout] test ingredient::tests::ingredient_clone_is_equal ... ok
[INFO] [stdout] test ingredient::tests::ingredient_equality_same ... ok
[INFO] [stdout] test ingredient::tests::ingredient_inequality_different_composition ... ok
[INFO] [stdout] test ingredient::tests::ingredient_new_stores_fields ... ok
[INFO] [stdout] test ingredient::tests::ingredient_inequality_different_category ... ok
[INFO] [stdout] test ingredient::tests::ingredient_inequality_different_name ... ok
[INFO] [stdout] test database::tests::ingredient_database_new_seeded_from_specs ... ok
[INFO] [stdout] test fpd::tests::corvitto_pac_to_serving_temp_vs_modified_goff_hartel_corvitto_fpd_at_70_frozen_water ... ok
[INFO] [stdout] test properties::tests::mix_properties_default_matches_empty ... ok
[INFO] [stdout] test properties::tests::mix_properties_empty_fpd_is_zero ... ok
[INFO] [stdout] test properties::tests::mix_properties_empty_hardness_at_14c_is_nan ... ok
[INFO] [stdout] test properties::tests::mix_properties_empty_total_amount_is_zero ... ok
[INFO] [stdout] test properties::tests::mix_properties_new_matches_empty ... ok
[INFO] [stdout] test ingredient::tests::ingredient_serde_roundtrip ... ok
[INFO] [stdout] test properties::tests::prop_key_from_comp_key ... ok
[INFO] [stdout] test properties::tests::mix_properties_empty_comp_keys_return_zero ... ok
[INFO] [stdout] test properties::tests::prop_key_equality_same_variant ... ok
[INFO] [stdout] test properties::tests::prop_key_inequality_different_inner_key ... ok
[INFO] [stdout] test properties::tests::prop_key_from_fpd_key ... ok
[INFO] [stdout] test properties::tests::prop_key_inequality_different_outer_variant ... ok
[INFO] [stdout] test properties::tests::mix_properties_empty_water_is_100 ... ok
[INFO] [stdout] test specs::alcohol::tests::json_field_null_same_as_missing ... ok
[INFO] [stdout] test database::tests::ingredient_database_seeded_from_embedded_data ... ok
[INFO] [stdout] test recipe::tests::recipe_calculate_composition ... ok
[INFO] [stdout] test recipe::tests::recipe_from_light_recipe ... ok
[INFO] [stdout] test specs::alcohol::tests::to_composition_err_when_alcohol_plus_solids_exceeds_100 ... ok
[INFO] [stdout] test recipe::tests::floating_point_edge_case_zero_water_near_epsilon ... ok
[INFO] [stdout] test specs::alcohol::tests::to_composition_err_when_sugars_plus_fat_exceeds_solids ... ok
[INFO] [stdout] test specs::alias::tests::deserialize_alias_spec ... ok
[INFO] [stdout] test recipe::tests::recipe_calculate_mix_properties_with_hf ... ok
[INFO] [stdout] test specs::alcohol::tests::to_composition_alcohol_spec_baileys_irish_cream ... ok
[INFO] [stdout] test specs::chocolate::tests::to_composition_chocolate_spec_ghirardelli_100_cocoa_powder ... ok
[INFO] [stdout] test specs::alcohol::tests::to_composition_err_on_negative_field ... ok
[INFO] [stdout] test specs::chocolate::tests::to_composition_chocolate_spec_lindt_100_dark_chocolate ... ok
[INFO] [stdout] test specs::chocolate::tests::to_composition_err_on_negative_field ... ok
[INFO] [stdout] test specs::chocolate::tests::to_composition_chocolate_spec_lindt_95_dark_chocolate_other_solids ... ok
[INFO] [stdout] test specs::alias::tests::resolve_alias_spec_composition ... ok
[INFO] [stdout] test specs::chocolate::tests::to_composition_err_when_cocoa_butter_exceeds_cacao_solids ... ok
[INFO] [stdout] test specs::alias::tests::resolve_alias_spec_into_ingredient ... ok
[INFO] [stdout] test specs::composite::tests::parse_composite_spec_from_json_empty ... ok
[INFO] [stdout] test specs::composite::tests::parse_ingredient_spec_composite_by_parts_from_json ... ok
[INFO] [stdout] test specs::composite::tests::parse_ingredient_spec_composite_from_json ... ok
[INFO] [stdout] test specs::chocolate::tests::to_composition_err_when_components_do_not_sum_to_100 ... ok
[INFO] [stdout] test specs::composite::tests::parse_composite_spec_from_json_by_parts ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec_by_parts ... ok
[INFO] [stdout] test specs::alcohol::tests::to_composition_alcohol_spec_40_abv_spirit ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec_by_parts_err_component_not_found ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec_by_parts_err_negative_weight ... ok
[INFO] [stdout] test database::tests::ingredient_database_thread_safety ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec_err_negative_percentage ... ok
[INFO] [stdout] test specs::composite::tests::serialize_composite_spec_to_json_empty ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec_err_when_component_not_found ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec_by_parts_does_not_require_sum_to_100 ... ok
[INFO] [stdout] test specs::composite::tests::serialize_ingredient_spec_composite_to_json ... ok
[INFO] [stdout] test specs::chocolate::tests::to_composition_chocolate_spec_lindt_70_dark_chocolate ... ok
[INFO] [stdout] test specs::dairy::tests::dairy_label_spec_err_on_unsupported_unit ... ok
[INFO] [stdout] test specs::composite::tests::serialize_ingredient_spec_composite_by_parts_to_json ... ok
[INFO] [stdout] test specs::dairy::tests::dairy_label_spec_err_on_negative_field ... ok
[INFO] [stdout] test specs::composite::tests::serialize_composite_spec_to_json_by_parts ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composite_spec_err_percentage_not_100 ... ok
[INFO] [stdout] test specs::dairy::tests::dairy_simple_spec_err_when_fat_plus_msnf_exceeds_100 ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_label_spec_3_25_milk ... ok
[INFO] [stdout] test specs::dairy::tests::dairy_label_spec_err_when_fat_plus_sugars_plus_protein_exceeds_serving_size ... ok
[INFO] [stdout] test specs::dairy::tests::dairy_label_spec_err_when_saturated_fat_exceeds_total_fat ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_label_spec_whey_isolate ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_simple_spec_2_milk ... ok
[INFO] [stdout] test specs::composite::tests::resolve_composition_composite_spec_underbelly_gp_sb ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_simple_spec_3_25_milk ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_simple_spec_40_cream ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_simple_spec_skimmed_powder ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_simple_spec_whole_ultra_filtered_lactose_free ... ok
[INFO] [stdout] test specs::egg::tests::to_composition_err_when_lecithin_exceeds_fat ... ok
[INFO] [stdout] test specs::dairy::tests::dairy_label_spec_err_when_trans_fat_exceeds_total_fat ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_simple_spec_whole_powder ... ok
[INFO] [stdout] test specs::egg::tests::to_composition_egg_spec_egg_yolk ... ok
[INFO] [stdout] test specs::dairy::tests::dairy_simple_spec_err_on_negative_field ... ok
[INFO] [stdout] test specs::egg::tests::to_composition_err_on_negative_field ... ok
[INFO] [stdout] test specs::egg::tests::to_composition_err_when_water_plus_fat_plus_protein_exceeds_100 ... ok
[INFO] [stdout] test specs::emulsifier::tests::to_composition_err_on_negative_strength ... ok
[INFO] [stdout] test specs::emulsifier::tests::to_composition_emulsifier_soy_lecithin ... ok
[INFO] [stdout] test specs::fruit::tests::to_composition_err_on_negative_energy ... ok
[INFO] [stdout] test specs::dairy::tests::to_composition_dairy_simple_spec_vs_dairy_label_spec_3_25_milk ... ok
[INFO] [stdout] test specs::fruit::tests::to_composition_err_on_negative_field ... ok
[INFO] [stdout] test specs::entry::tests::deserialize_spec_entry ... ok
[INFO] [stdout] test specs::entry::tests::spec_entry_name_method ... ok
[INFO] [stdout] test specs::full::tests::to_composition_err_when_energy_cannot_be_computed ... ok
[INFO] [stdout] test specs::fruit::tests::to_composition_err_when_fiber_plus_sugars_exceeds_carbohydrate ... ok
[INFO] [stdout] test specs::fruit::tests::to_composition_fruit_spec_strawberry ... ok
[INFO] [stdout] test specs::full::tests::to_composition_err_when_pac_cannot_be_computed ... ok
[INFO] [stdout] test specs::full::tests::to_composition_err_when_pod_cannot_be_computed ... ok
[INFO] [stdout] test specs::ingredient::tests::deserialize_ingredient_spec ... ok
[INFO] [stdout] test specs::full::tests::to_composition_err_when_total_solids_plus_alcohol_exceeds_100 ... ok
[INFO] [stdout] test specs::fruit::tests::to_composition_err_when_sugars_has_other ... ok
[INFO] [stdout] test specs::full::tests::to_composition_full_spec_water ... ok
[INFO] [stdout] test specs::fruit::tests::to_composition_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test specs::ingredient::tests::ingredient_spec_database_matches_assets ... ok
[INFO] [stdout] test specs::fruit::tests::to_composition_fruit_spec_navel_orange_auto_energy ... ok
[INFO] [stdout] test specs::nut::tests::to_composition_err_when_fiber_plus_sugars_exceeds_carbohydrate ... ok
[INFO] [stdout] test specs::nut::tests::to_composition_err_when_saturated_fat_exceeds_fat ... ok
[INFO] [stdout] test specs::nut::tests::to_composition_err_when_total_exceeds_100 ... ok
[INFO] [stdout] test specs::micro::tests::to_composition_micro_spec_salt ... ok
[INFO] [stdout] test specs::nut::tests::to_composition_nut_spec_almond ... ok
[INFO] [stdout] test specs::stabilizer::tests::to_composition_stabilizer_locust_bean_gum ... ok
[INFO] [stdout] test specs::stabilizer::tests::to_composition_err_on_negative_strength ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_by_dry_weight_when_components_exceed_100 ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_by_dry_weight_when_solids_exceed_100 ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_on_negative_other_fields ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_when_energy_cannot_be_computed ... ok
[INFO] [stdout] test specs::nut::tests::to_composition_err_on_negative_field ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_by_total_weight_when_components_do_not_sum_to_100 ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_when_pac_cannot_be_computed ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_when_pod_cannot_be_computed ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_dextrose ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_erythritol ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_fructose ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_glucose_powder_42_de ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_glucose_powder_25_de ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_glucose_syrup_42_de ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_hfcs42 ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_honey ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_hp_inulin_powder ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_inulin_powder ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_lactose ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_err_on_unsupported_pac_unit ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_fancy_molasses ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_invert_sugar ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_maltodextrin_10_de ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_maple_syrup ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_oligofructose_powder ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_splenda_monk_fruit ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_splenda_sucralose ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_splenda_sucralose_manual_vs_calculated_pod_and_pac ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_stevia_in_the_raw_bakers_bag ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_stevia_in_the_raw_bakers_bag_manual_vs_calculated_pod ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_stevia_in_the_raw_packets ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_stevia_in_the_raw_packets_manual_vs_calculated_pod ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_sucrose ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_sugar_twin ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_sugar_twin_manual_vs_calculated_pod ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_sweetleaf_stevia ... ok
[INFO] [stdout] test specs::ingredient::tests::ingredient_spec_to_composition_matches_assets ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_maltose ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_splenda_stevia ... ok
[INFO] [stdout] test specs::sweetener::tests::to_composition_sweetener_spec_trehalose ... ok
[INFO] [stdout] test util::tests::add_option ... ok
[INFO] [stdout] test util::tests::collect_fields_copied_as_count_matches_field_count ... ok
[INFO] [stdout] test util::tests::abs_diff_eq_option ... ok
[INFO] [stdout] test util::tests::collect_fields_copied_as_returns_all_values ... ok
[INFO] [stdout] test util::tests::collect_fields_copied_as_returns_owned_copies ... ok
[INFO] [stdout] test specs::entry::tests::resolve_spec_entry_into_ingredient ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_all_fields_differ ... ok
[INFO] [stdout] test tests::assets::tests::ref_a_recipe ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_equal_structs ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_one_field_differs ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_option_both_none ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_option_mixed_none_and_some_eq ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_option_mixed_none_and_some_ne ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_option_one_field_differs ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_within_epsilon ... ok
[INFO] [stdout] test util::tests::iter_fields_as_count_matches_field_count ... ok
[INFO] [stdout] test util::tests::iter_fields_as_returns_all_values ... ok
[INFO] [stdout] test util::tests::round_to_decimals ... ok
[INFO] [stdout] test util::tests::iter_all_abs_diff_eq_option_both_some_equal ... ok
[INFO] [stdout] test validate::tests::is_within_100_percent_false_for_above_100 ... ok
[INFO] [stdout] test validate::tests::is_within_100_percent_false_for_negative ... ok
[INFO] [stdout] test validate::tests::is_within_100_percent_true_for_100 ... ok
[INFO] [stdout] test validate::tests::is_within_100_percent_true_for_midpoint ... ok
[INFO] [stdout] test specs::ingredient::tests::ingredient_spec_resolve_composition_matches_assets ... ok
[INFO] [stdout] test validate::tests::is_within_100_percent_true_for_slightly_above_100_within_epsilon ... ok
[INFO] [stdout] test validate::tests::must_use_functionality ... ok
[INFO] [stdout] test validate::tests::validate_into_returns_err_when_invalid ... ok
[INFO] [stdout] test validate::tests::validate_into_returns_self_when_valid ... ok
[INFO] [stdout] test validate::tests::is_within_100_percent_true_for_tiny_negative_within_epsilon ... ok
[INFO] [stdout] test validate::tests::is_within_100_percent_true_for_zero ... ok
[INFO] [stdout] test validate::tests::verify_are_positive_err_with_negative_beyond_epsilon ... ok
[INFO] [stdout] test validate::tests::verify_are_positive_err_with_negative_value ... ok
[INFO] [stdout] test validate::tests::verify_are_positive_ok_with_all_positive ... ok
[INFO] [stdout] test validate::tests::verify_are_positive_ok_with_empty_slice ... ok
[INFO] [stdout] test validate::tests::verify_are_positive_ok_with_tiny_negative_within_epsilon ... ok
[INFO] [stdout] test validate::tests::verify_is_100_percent_err_for_beyond_epsilon ... ok
[INFO] [stdout] test validate::tests::verify_is_100_percent_err_for_close_but_not_equal ... ok
[INFO] [stdout] test validate::tests::verify_is_100_percent_ok_for_exact ... ok
[INFO] [stdout] test validate::tests::verify_is_100_percent_ok_within_epsilon ... ok
[INFO] [stdout] test validate::tests::verify_is_100_percent_err_for_zero ... ok
[INFO] [stdout] test validate::tests::verify_is_subset_err_message_contains_description ... ok
[INFO] [stdout] test validate::tests::verify_is_subset_err_message_contains_values ... ok
[INFO] [stdout] test validate::tests::verify_is_subset_err_when_greater_than_superset ... ok
[INFO] [stdout] test validate::tests::verify_is_subset_ok_when_equal_to_superset ... ok
[INFO] [stdout] test validate::tests::verify_is_subset_ok_when_exceeds_superset_within_epsilon ... ok
[INFO] [stdout] test validate::tests::verify_is_subset_ok_when_less_than_superset ... ok
[INFO] [stdout] test validate::tests::verify_is_within_100_percent_err_for_above_100 ... ok
[INFO] [stdout] test validate::tests::verify_is_within_100_percent_err_for_negative ... ok
[INFO] [stdout] test validate::tests::verify_is_within_100_percent_ok_for_valid_values ... ok
[INFO] [stdout] test validate::tests::verify_are_positive_err_stops_at_first_negative ... ok
[INFO] [stdout] test tests::assets::tests::main_recipe ... ok
[INFO] [stdout] test tests::assets::tests::ref_b_recipe ... ok
[INFO] [stdout] test data::tests::sweeteners_by_ratio ... ok
[INFO] [stdout] test util::tests::collect_fields_copied_as_panics_on_wrong_type - should panic ... ok
[INFO] [stdout] test util::tests::iter_fields_as_panics_on_wrong_type - should panic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 551 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.52s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests sci_cream
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test src/lib.rs - (line 198) ... ok
[INFO] [stdout] test src/display.rs - display::composition_value_as_quantity (line 118) ... ok
[INFO] [stdout] test src/composition/mod.rs - composition (line 31) ... ok
[INFO] [stdout] test src/properties.rs - properties::PropKey (line 18) ... ok
[INFO] [stdout] test src/specs/alcohol.rs - specs::alcohol::AlcoholSpec (line 64) ... ok
[INFO] [stdout] test src/display.rs - display::composition_value_as_percentage (line 141) ... ok
[INFO] [stdout] test src/specs/chocolate.rs - specs::chocolate::ChocolateSpec (line 75) ... ok
[INFO] [stdout] test src/specs/egg.rs - specs::egg::EggSpec (line 33) ... ok
[INFO] [stdout] test src/lib.rs - (line 347) ... ok
[INFO] [stdout] test src/specs/chocolate.rs - specs::chocolate::ChocolateSpec (line 45) ... ok
[INFO] [stdout] test src/specs/nut.rs - specs::nut::NutSpec (line 39) ... ok
[INFO] [stdout] test src/specs/sweetener.rs - specs::sweetener::SweetenerSpec (line 150) ... ok
[INFO] [stdout] test src/specs/sweetener.rs - specs::sweetener::SweetenerSpec (line 106) ... ok
[INFO] [stdout] test src/lib.rs - (line 261) ... ok
[INFO] [stdout] test src/specs/sweetener.rs - specs::sweetener::SweetenerSpec (line 68) ... ok
[INFO] [stdout] test src/specs/alcohol.rs - specs::alcohol::AlcoholSpec (line 37) ... ok
[INFO] [stdout] test src/lib.rs - (line 116) ... ok
[INFO] [stdout] test src/lib.rs - (line 68) ... ok
[INFO] [stdout] test src/lib.rs - (line 31) ... ok
[INFO] [stdout] test src/specs/fruit.rs - specs::fruit::FruitSpec (line 37) ... ok
[INFO] [stdout] test src/validate.rs - validate (line 10) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.87s; merged doctests compilation took 0.82s
[INFO] running `Command { std: "docker" "inspect" "25e2f11939221035b11ef7bfb2164794797a159b4d0e30ab016c0a656425ff07", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "25e2f11939221035b11ef7bfb2164794797a159b4d0e30ab016c0a656425ff07", kill_on_drop: false }`
[INFO] [stdout] 25e2f11939221035b11ef7bfb2164794797a159b4d0e30ab016c0a656425ff07
