[INFO] fetching crate stateset-pricing 0.8.1... [INFO] testing stateset-pricing-0.8.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate stateset-pricing 0.8.1 into /workspace/builds/worker-0-tc1/source [INFO] started tweaking crates.io crate stateset-pricing 0.8.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate stateset-pricing 0.8.1 [INFO] tweaked toml for crates.io crate stateset-pricing 0.8.1 written to /workspace/builds/worker-0-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate stateset-pricing 0.8.1 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate stateset-pricing 0.8.1 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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded seahash v4.1.0 [INFO] [stderr] Downloaded ptr_meta v0.1.4 [INFO] [stderr] Downloaded rend v0.4.2 [INFO] [stderr] Downloaded toml_parser v1.0.10+spec-1.1.0 [INFO] [stderr] Downloaded rkyv v0.7.46 [INFO] [stderr] Downloaded wait-timeout v0.2.1 [INFO] [stderr] Downloaded bytecheck v0.6.12 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.114 [INFO] [stderr] Downloaded wasm-bindgen v0.2.114 [INFO] [stderr] Downloaded bit-set v0.8.0 [INFO] [stderr] Downloaded toml_datetime v1.0.1+spec-1.1.0 [INFO] [stderr] Downloaded cc v1.2.57 [INFO] [stderr] Downloaded toml_edit v0.25.5+spec-1.1.0 [INFO] [stderr] Downloaded js-sys v0.3.91 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.114 [INFO] [stderr] Downloaded zerocopy-derive v0.8.47 [INFO] [stderr] Downloaded libc v0.2.183 [INFO] [stderr] Downloaded simdutf8 v0.1.5 [INFO] [stderr] Downloaded bytecheck_derive v0.6.12 [INFO] [stderr] Downloaded rkyv_derive v0.7.46 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.114 [INFO] [stderr] Downloaded ptr_meta_derive v0.1.4 [INFO] [stderr] Downloaded zerocopy v0.8.47 [INFO] [stderr] Downloaded proptest v1.10.0 [INFO] [stderr] Downloaded winnow v1.0.0 [INFO] [stderr] Downloaded bit-vec v0.8.0 [INFO] [stderr] Downloaded rust_decimal_macros v1.40.0 [INFO] [stderr] Downloaded rust_decimal v1.40.0 [INFO] [stderr] Downloaded rusty-fork v0.3.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 107df02ce2f64d75b21965c8427b2c2e3031f4fa2c6d54471cd9bfd5f0fd6298 [INFO] running `Command { std: "docker" "start" "-a" "107df02ce2f64d75b21965c8427b2c2e3031f4fa2c6d54471cd9bfd5f0fd6298", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "107df02ce2f64d75b21965c8427b2c2e3031f4fa2c6d54471cd9bfd5f0fd6298", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "107df02ce2f64d75b21965c8427b2c2e3031f4fa2c6d54471cd9bfd5f0fd6298", kill_on_drop: false }` [INFO] [stdout] 107df02ce2f64d75b21965c8427b2c2e3031f4fa2c6d54471cd9bfd5f0fd6298 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] b2628ca9596b81a1c4ecbc52c62aec6bd7ef0c4b96fab3f16c22f68c9f4e3088 [INFO] running `Command { std: "docker" "start" "-a" "b2628ca9596b81a1c4ecbc52c62aec6bd7ef0c4b96fab3f16c22f68c9f4e3088", kill_on_drop: false }` [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling iana-time-zone v0.1.65 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Compiling rust_decimal_macros v1.40.0 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling stateset-pricing v0.8.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 7.71s [INFO] running `Command { std: "docker" "inspect" "b2628ca9596b81a1c4ecbc52c62aec6bd7ef0c4b96fab3f16c22f68c9f4e3088", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b2628ca9596b81a1c4ecbc52c62aec6bd7ef0c4b96fab3f16c22f68c9f4e3088", kill_on_drop: false }` [INFO] [stdout] b2628ca9596b81a1c4ecbc52c62aec6bd7ef0c4b96fab3f16c22f68c9f4e3088 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 47f2e68666e4c56c6d6d4ee277184ceb4742ad21c8c3e768d10bc4f9212e7af2 [INFO] running `Command { std: "docker" "start" "-a" "47f2e68666e4c56c6d6d4ee277184ceb4742ad21c8c3e768d10bc4f9212e7af2", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling zerocopy v0.8.47 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling memchr v2.8.0 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling rust_decimal v1.40.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling stateset-pricing v0.8.1 (/opt/rustwide/workdir) [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 20.90s [INFO] running `Command { std: "docker" "inspect" "47f2e68666e4c56c6d6d4ee277184ceb4742ad21c8c3e768d10bc4f9212e7af2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "47f2e68666e4c56c6d6d4ee277184ceb4742ad21c8c3e768d10bc4f9212e7af2", kill_on_drop: false }` [INFO] [stdout] 47f2e68666e4c56c6d6d4ee277184ceb4742ad21c8c3e768d10bc4f9212e7af2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 0abe97b77120f1bb8d689adf274b0f199cc55e3a41ee2c074573cd0264a29a87 [INFO] running `Command { std: "docker" "start" "-a" "0abe97b77120f1bb8d689adf274b0f199cc55e3a41ee2c074573cd0264a29a87", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.17s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/stateset_pricing-2ec9fe33bc8bf544) [INFO] [stdout] [INFO] [stdout] running 159 tests [INFO] [stdout] test currency::tests::base_currency_accessor ... ok [INFO] [stdout] test currency::tests::conversion_result_serde ... ok [INFO] [stdout] test currency::tests::default_converter ... ok [INFO] [stdout] test currency::tests::direct_conversion ... ok [INFO] [stdout] test currency::tests::custom_base_currency ... ok [INFO] [stdout] test currency::tests::exchange_rate_serde ... ok [INFO] [stdout] test currency::tests::direct_conversion_large_amount ... ok [INFO] [stdout] test currency::tests::direct_conversion_zero_amount ... ok [INFO] [stdout] test currency::tests::add_overwrites_rate ... ok [INFO] [stdout] test currency::tests::direct_conversion_lookup_is_case_insensitive ... ok [INFO] [stdout] test currency::tests::inverse_conversion ... ok [INFO] [stdout] test currency::tests::missing_rate ... ok [INFO] [stdout] test currency::tests::inverse_rate_value ... ok [INFO] [stdout] test currency::tests::rates_accessor ... ok [INFO] [stdout] test currency::tests::negative_rate_is_rejected ... ok [INFO] [stdout] test currency::tests::same_currency_case_insensitive ... ok [INFO] [stdout] test currency::tests::custom_base_currency_lookup_is_case_insensitive ... ok [INFO] [stdout] test currency::tests::same_currency_noop ... ok [INFO] [stdout] test currency::tests::triangulation_fails_if_no_path ... ok [INFO] [stdout] test currency::tests::triangulation_through_base ... ok [INFO] [stdout] test error::tests::display_invalid_discount ... ok [INFO] [stdout] test currency::tests::triangulation_using_inverse_leg ... ok [INFO] [stdout] test currency::tests::zero_rate_inverse_fails ... ok [INFO] [stdout] test error::tests::display_amount_exceeds_max ... ok [INFO] [stdout] test error::tests::display_currency_not_found ... ok [INFO] [stdout] test error::tests::display_invalid_quantity ... ok [INFO] [stdout] test error::tests::display_invalid_amount ... ok [INFO] [stdout] test error::tests::display_invalid_tax_rate ... ok [INFO] [stdout] test error::tests::display_no_exchange_rate ... ok [INFO] [stdout] test error::tests::display_overflow ... ok [INFO] [stdout] test error::tests::display_promotion_exhausted ... ok [INFO] [stdout] test error::tests::errors_are_eq ... ok [INFO] [stdout] test line_item::tests::discount_fixed_amount ... ok [INFO] [stdout] test line_item::tests::discount_fixed_amount_exceeds_subtotal_is_rejected ... ok [INFO] [stdout] test line_item::tests::discount_fixed_amount_negative_is_rejected ... ok [INFO] [stdout] test line_item::tests::discount_fixed_price ... ok [INFO] [stdout] test line_item::tests::discount_fixed_price_higher_than_unit_is_rejected ... ok [INFO] [stdout] test line_item::tests::discount_fixed_price_zero ... ok [INFO] [stdout] test line_item::tests::discount_percentage_100_pct ... ok [INFO] [stdout] test line_item::tests::discount_percentage_10_pct ... ok [INFO] [stdout] test line_item::tests::discount_percentage_above_one_is_rejected ... ok [INFO] [stdout] test line_item::tests::discount_percentage_below_zero_is_rejected ... ok [INFO] [stdout] test line_item::tests::discount_percentage_zero ... ok [INFO] [stdout] test line_item::tests::negative_unit_price_is_rejected ... ok [INFO] [stdout] test line_item::tests::no_discount ... ok [INFO] [stdout] test line_item::tests::no_tax ... ok [INFO] [stdout] test line_item::tests::serde_roundtrip ... ok [INFO] [stdout] test line_item::tests::subtotal_basic ... ok [INFO] [stdout] test line_item::tests::subtotal_large_quantity ... ok [INFO] [stdout] test line_item::tests::subtotal_single_unit ... ok [INFO] [stdout] test line_item::tests::subtotal_zero_price ... ok [INFO] [stdout] test line_item::tests::subtotal_zero_quantity_is_rejected ... ok [INFO] [stdout] test line_item::tests::tax_8_percent ... ok [INFO] [stdout] test line_item::tests::tax_rate_above_one_is_rejected ... ok [INFO] [stdout] test line_item::tests::tax_with_discount ... ok [INFO] [stdout] test line_item::tests::tax_zero_rate ... ok [INFO] [stdout] test line_item::tests::total_no_extras ... ok [INFO] [stdout] test line_item::tests::total_rounded_usd ... ok [INFO] [stdout] test line_item::tests::total_with_everything ... ok [INFO] [stdout] test order_total::tests::combined_discounts ... ok [INFO] [stdout] test order_total::tests::empty_order ... ok [INFO] [stdout] test order_total::tests::invalid_shipping_tax_rate_is_rejected ... ok [INFO] [stdout] test order_total::tests::jpy_rounding ... ok [INFO] [stdout] test order_total::tests::kitchen_sink ... ok [INFO] [stdout] test order_total::tests::multiple_items ... ok [INFO] [stdout] test order_total::tests::negative_fee_is_rejected ... ok [INFO] [stdout] test order_total::tests::negative_shipping_cost_is_rejected ... ok [INFO] [stdout] test order_total::tests::order_discount_fixed_price ... ok [INFO] [stdout] test order_total::tests::order_total_serde ... ok [INFO] [stdout] test order_total::tests::single_item_no_extras ... ok [INFO] [stdout] test order_total::tests::single_item_with_tax ... ok [INFO] [stdout] test order_total::tests::with_fees ... ok [INFO] [stdout] test order_total::tests::with_shipping ... ok [INFO] [stdout] test order_total::tests::zero_shipping_with_tax_rate ... ok [INFO] [stdout] test order_total::tests::with_shipping_tax ... ok [INFO] [stdout] test order_total::tests::order_discount_percentage ... ok [INFO] [stdout] test order_total::tests::order_discount_fixed_amount ... ok [INFO] [stdout] test promotions::tests::cumulative_discount_is_capped_to_order_total ... ok [INFO] [stdout] test promotions::tests::customer_group_fail ... ok [INFO] [stdout] test promotions::tests::customer_group_none ... ok [INFO] [stdout] test promotions::tests::customer_group_pass ... ok [INFO] [stdout] test promotions::tests::date_range_fail_after ... ok [INFO] [stdout] test promotions::tests::date_range_fail_before ... ok [INFO] [stdout] test promotions::tests::date_range_pass ... ok [INFO] [stdout] test promotions::tests::discount_on_zero_base_is_rejected ... ok [INFO] [stdout] test promotions::tests::first_order_fail ... ok [INFO] [stdout] test promotions::tests::first_order_pass ... ok [INFO] [stdout] test promotions::tests::max_uses_exactly_at_limit ... ok [INFO] [stdout] test promotions::tests::max_uses_exceeded ... ok [INFO] [stdout] test promotions::tests::max_uses_not_exceeded ... ok [INFO] [stdout] test promotions::tests::minimum_order_total_fail ... ok [INFO] [stdout] test promotions::tests::minimum_order_total_pass ... ok [INFO] [stdout] test promotions::tests::minimum_quantity_fail ... ok [INFO] [stdout] test promotions::tests::multiple_rules_all_pass ... ok [INFO] [stdout] test promotions::tests::mixed_stackable_and_non_stackable ... ok [INFO] [stdout] test promotions::tests::negative_order_total_is_rejected ... ok [INFO] [stdout] test promotions::tests::minimum_quantity_pass ... ok [INFO] [stdout] test promotions::tests::promotion_result_serde ... ok [INFO] [stdout] test promotions::tests::single_promo_no_rules ... ok [INFO] [stdout] test promotions::tests::specific_skus_fail ... ok [INFO] [stdout] test rounding::tests::bhd_policy ... ok [INFO] [stdout] test rounding::tests::default_policy_is_usd ... ok [INFO] [stdout] test rounding::tests::down_exact ... ok [INFO] [stdout] test promotions::tests::no_promotions ... ok [INFO] [stdout] test promotions::tests::non_stackable_best_deal_wins ... ok [INFO] [stdout] test promotions::tests::multiple_rules_one_fails ... ok [INFO] [stdout] test order_total::tests::order_discount_exceeds_subtotal_is_rejected ... ok [INFO] [stdout] test promotions::tests::negative_minimum_order_total_rule_is_rejected ... ok [INFO] [stdout] test promotions::tests::specific_skus_pass ... ok [INFO] [stdout] test rounding::tests::down_truncates_negative ... ok [INFO] [stdout] test promotions::tests::stackable_all_applied ... ok [INFO] [stdout] test rounding::tests::down_truncates_positive ... ok [INFO] [stdout] test rounding::tests::half_even_rounds_to_even_down ... ok [INFO] [stdout] test rounding::tests::half_even_not_midpoint ... ok [INFO] [stdout] test rounding::tests::half_even_rounds_to_even_up ... ok [INFO] [stdout] test rounding::tests::half_up_bhd ... ok [INFO] [stdout] test rounding::tests::half_up_exact ... ok [INFO] [stdout] test rounding::tests::half_up_jpy ... ok [INFO] [stdout] test rounding::tests::half_up_negative ... ok [INFO] [stdout] test rounding::tests::half_up_rounds_4_down ... ok [INFO] [stdout] test rounding::tests::half_up_rounds_5_up ... ok [INFO] [stdout] test rounding::tests::jpy_policy ... ok [INFO] [stdout] test rounding::tests::minor_units_case_insensitive ... ok [INFO] [stdout] test rounding::tests::minor_units_standard ... ok [INFO] [stdout] test rounding::tests::minor_units_zero_decimal ... ok [INFO] [stdout] test rounding::tests::round_large_value ... ok [INFO] [stdout] test rounding::tests::round_zero ... ok [INFO] [stdout] test rounding::tests::up_exact_no_change ... ok [INFO] [stdout] test rounding::tests::up_jpy ... ok [INFO] [stdout] test rounding::tests::up_rounds_up_negative ... ok [INFO] [stdout] test rounding::tests::up_rounds_up_positive ... ok [INFO] [stdout] test rounding::tests::usd_policy ... ok [INFO] [stdout] test tax::tests::all_items_exempt ... ok [INFO] [stdout] test tax::tests::category_no_match ... ok [INFO] [stdout] test tax::tests::category_none_does_not_match ... ok [INFO] [stdout] test tax::tests::compound_does_not_apply_to_shipping_base ... ok [INFO] [stdout] test tax::tests::compound_tax ... ok [INFO] [stdout] test tax::tests::exempt_items_excluded ... ok [INFO] [stdout] test tax::tests::exempt_overrides_category ... ok [INFO] [stdout] test tax::tests::items_and_shipping_tax ... ok [INFO] [stdout] test tax::tests::invalid_tax_rule_rate_is_rejected ... ok [INFO] [stdout] test tax::tests::multiple_non_compound ... ok [INFO] [stdout] test tax::tests::no_items ... ok [INFO] [stdout] test tax::tests::no_rules ... ok [INFO] [stdout] test tax::tests::negative_shipping_amount_is_rejected ... ok [INFO] [stdout] test tax::tests::shipping_only_tax ... ok [INFO] [stdout] test tax::tests::shipping_zero ... ok [INFO] [stdout] test tax::tests::negative_taxable_amount_is_rejected ... ok [INFO] [stdout] test tax::tests::single_tax_high_amount ... ok [INFO] [stdout] test tax::tests::single_tax_rule ... ok [INFO] [stdout] test tax::tests::specific_categories ... ok [INFO] [stdout] test tax::tests::tax_result_serde ... ok [INFO] [stdout] test tax::tests::tax_rounding_bhd ... ok [INFO] [stdout] test tax::tests::compound_on_compound ... ok [INFO] [stdout] test tax::tests::tax_rounding_jpy ... ok [INFO] [stdout] test tax::tests::zero_tax_rate ... ok [INFO] [stdout] test rounding::tests::minor_units_three_decimal ... ok [INFO] [stdout] test rounding::tests::minor_units_unknown_defaults_to_two ... ok [INFO] [stdout] test promotions::tests::promotion_fixed_price ... ok [INFO] [stderr] Running tests/pricing_integration.rs (/opt/rustwide/target/debug/deps/pricing_integration-3aa5954370bcc5a0) [INFO] [stdout] [INFO] [stdout] test result: ok. 159 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 46 tests [INFO] [stdout] test currency_inverse_precision ... ok [INFO] [stdout] test currency_missing_rate_returns_error ... ok [INFO] [stdout] test currency_rate_precision_six_plus_decimals ... ok [INFO] [stdout] test currency_inverse_conversion_eur_to_usd ... ok [INFO] [stdout] test currency_same_currency_identity ... ok [INFO] [stdout] test currency_triangulation_eur_to_gbp_via_usd ... ok [INFO] [stdout] test currency_direct_conversion_usd_to_eur ... ok [INFO] [stdout] test order_multi_item_with_order_level_discount ... ok [INFO] [stdout] test order_mixed_discount_types ... ok [INFO] [stdout] test order_100_percent_discount_only_shipping_and_fees ... ok [INFO] [stdout] test order_with_all_discount_types_simultaneously ... ok [INFO] [stdout] test promo_date_range_active ... ok [INFO] [stdout] test promo_date_range_expired ... ok [INFO] [stdout] test promo_mix_stackable_and_non_stackable ... ok [INFO] [stdout] test order_no_discounts_baseline ... ok [INFO] [stdout] test promo_multiple_stackable_all_applied ... ok [INFO] [stdout] test promo_non_stackable_best_deal_wins ... ok [INFO] [stdout] test promo_rejected_max_uses_exceeded ... ok [INFO] [stdout] test promo_rejected_minimum_order_total_not_met ... ok [INFO] [stdout] test promo_specific_skus_matching ... ok [INFO] [stdout] test promo_superseded_by_better_deal_reason ... ok [INFO] [stdout] test rounding_bhd_three_decimal_places ... ok [INFO] [stdout] test rounding_half_even_at_midpoint ... ok [INFO] [stdout] test rounding_half_up_at_midpoint ... ok [INFO] [stdout] test rounding_jpy_zero_decimal_places ... ok [INFO] [stdout] test promo_specific_skus_non_matching ... ok [INFO] [stdout] test rounding_very_large_amount ... ok [INFO] [stdout] test serde_roundtrip_line_item_fixed_price_discount ... ok [INFO] [stdout] test serde_roundtrip_promotion ... ok [INFO] [stdout] test tax_exempt_items_skipped ... ok [INFO] [stdout] test serde_roundtrip_exchange_rate ... ok [INFO] [stdout] test serde_roundtrip_tax_rule ... ok [INFO] [stdout] test tax_multi_jurisdiction_non_compound ... ok [INFO] [stdout] test tax_specific_categories_some_exempt ... ok [INFO] [stdout] test tax_on_shipping_only ... ok [INFO] [stdout] test serde_roundtrip_order_total ... ok [INFO] [stdout] test tax_compound_state_then_county ... ok [INFO] [stdout] test serde_roundtrip_promotion_result_with_rejections ... ok [INFO] [stdout] test zero_quantity_line_item_is_rejected ... ok [INFO] [stdout] test serde_roundtrip_tax_result ... ok [INFO] [stdout] test tax_zero_rate_produces_no_lines ... ok [INFO] [stdout] test rounding_very_small_amount ... ok [INFO] [stdout] test serde_roundtrip_line_item ... ok [INFO] [stdout] test tax_mixed_items_shipping_compound ... ok [INFO] [stdout] test empty_order_with_only_fees ... ok [INFO] [stdout] test end_to_end_realistic_order ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stderr] Running tests/proptest_pricing.rs (/opt/rustwide/target/debug/deps/proptest_pricing-0b91a61b8018a206) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test discount_monotonicity ... ok [INFO] [stdout] test line_item_subtotal_is_price_times_qty ... ok [INFO] [stdout] test currency_conversion_identity ... ok [INFO] [stdout] test tax_monotonicity ... ok [INFO] [stdout] test discount_never_exceeds_subtotal ... ok [INFO] [stdout] test line_item_serde_roundtrip ... ok [INFO] [stdout] test rounding_is_idempotent ... ok [INFO] [stdout] test rounding_monotonicity ... ok [INFO] [stdout] test rounding_quantizes_to_minor_units ... ok [INFO] [stdout] test rounding_error_is_bounded_by_single_minor_unit ... ok [INFO] [stdout] test line_total_non_negative ... ok [INFO] [stdout] test grand_total_non_negative ... ok [INFO] [stdout] test order_total_components_sum_within_tolerance ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 13 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.23s [INFO] [stdout] [INFO] [stderr] Doc-tests stateset_pricing [INFO] [stdout] [INFO] [stdout] running 18 tests [INFO] [stdout] test src/line_item.rs - line_item::LineDiscount (line 20) ... ok [INFO] [stdout] test src/line_item.rs - line_item::LineItem (line 43) ... ok [INFO] [stdout] test src/promotions.rs - promotions::evaluate_promotions (line 149) ... ok [INFO] [stdout] test src/rounding.rs - rounding::round (line 133) ... ok [INFO] [stdout] test src/tax.rs - tax::TaxResult (line 87) ... ok [INFO] [stdout] test src/currency.rs - currency::ExchangeRate (line 18) ... ok [INFO] [stdout] test src/rounding.rs - rounding::minor_units_for_currency (line 109) ... ok [INFO] [stdout] test src/lib.rs - (line 28) ... ok [INFO] [stdout] test src/rounding.rs - rounding::RoundingMode (line 14) ... ok [INFO] [stdout] test src/promotions.rs - promotions::Promotion (line 43) ... ok [INFO] [stdout] test src/order_total.rs - order_total::Fee (line 18) ... ok [INFO] [stdout] test src/rounding.rs - rounding::RoundingPolicy (line 44) ... ok [INFO] [stdout] test src/line_item.rs - line_item::LineItem::validate (line 81) ... ok [INFO] [stdout] test src/order_total.rs - order_total::try_compute_order_total (line 86) ... ok [INFO] [stdout] test src/currency.rs - currency::ConversionResult (line 45) ... ok [INFO] [stdout] test src/tax.rs - tax::TaxRule (line 28) ... ok [INFO] [stdout] test src/tax.rs - tax::calculate_tax (line 113) ... ok [INFO] [stdout] test src/currency.rs - currency::CurrencyConverter (line 78) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 18 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.67s; merged doctests compilation took 0.63s [INFO] running `Command { std: "docker" "inspect" "0abe97b77120f1bb8d689adf274b0f199cc55e3a41ee2c074573cd0264a29a87", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "0abe97b77120f1bb8d689adf274b0f199cc55e3a41ee2c074573cd0264a29a87", kill_on_drop: false }` [INFO] [stdout] 0abe97b77120f1bb8d689adf274b0f199cc55e3a41ee2c074573cd0264a29a87