[INFO] fetching crate nautilus-model 0.50.0... [INFO] testing nautilus-model-0.50.0 against try#b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b for pr-145330-1 [INFO] extracting crate nautilus-model 0.50.0 into /workspace/builds/worker-7-tc2/source [INFO] started tweaking crates.io crate nautilus-model 0.50.0 [INFO] finished tweaking crates.io crate nautilus-model 0.50.0 [INFO] tweaked toml for crates.io crate nautilus-model 0.50.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate nautilus-model 0.50.0 on toolchain b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate nautilus-model 0.50.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" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 8a576001791a3f5518cc0a336190a67a1445f4e60b3caccdf7cb6ae9b08644a9 [INFO] running `Command { std: "docker" "start" "-a" "8a576001791a3f5518cc0a336190a67a1445f4e60b3caccdf7cb6ae9b08644a9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "8a576001791a3f5518cc0a336190a67a1445f4e60b3caccdf7cb6ae9b08644a9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8a576001791a3f5518cc0a336190a67a1445f4e60b3caccdf7cb6ae9b08644a9", kill_on_drop: false }` [INFO] [stdout] 8a576001791a3f5518cc0a336190a67a1445f4e60b3caccdf7cb6ae9b08644a9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] be345b1636b739ac4e134aeebccc862929afc67cf34325d4cca08c5f29fc5bae [INFO] running `Command { std: "docker" "start" "-a" "be345b1636b739ac4e134aeebccc862929afc67cf34325d4cca08c5f29fc5bae", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.101 [INFO] [stderr] Compiling unicode-ident v1.0.18 [INFO] [stderr] Compiling autocfg v1.5.0 [INFO] [stderr] Compiling target-lexicon v0.13.3 [INFO] [stderr] Compiling once_cell v1.21.3 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling libc v0.2.175 [INFO] [stderr] Compiling heck v0.5.0 [INFO] [stderr] Compiling cfg-if v1.0.3 [INFO] [stderr] Compiling getrandom v0.3.3 [INFO] [stderr] Compiling zerocopy v0.8.27 [INFO] [stderr] Compiling fnv v1.0.7 [INFO] [stderr] Compiling ident_case v1.0.1 [INFO] [stderr] Compiling strsim v0.11.1 [INFO] [stderr] Compiling parking_lot_core v0.9.11 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling winnow v0.7.13 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling equivalent v1.0.2 [INFO] [stderr] Compiling rawpointer v0.2.1 [INFO] [stderr] Compiling anyhow v1.0.99 [INFO] [stderr] Compiling scopeguard v1.2.0 [INFO] [stderr] Compiling byteorder v1.5.0 [INFO] [stderr] Compiling smallvec v1.15.1 [INFO] [stderr] Compiling toml_write v0.1.2 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling matrixmultiply v0.3.10 [INFO] [stderr] Compiling memoffset v0.9.1 [INFO] [stderr] Compiling lock_api v0.4.13 [INFO] [stderr] Compiling indoc v2.0.6 [INFO] [stderr] Compiling unindent v0.2.4 [INFO] [stderr] Compiling pyo3-build-config v0.25.1 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling rustc-hash v2.1.1 [INFO] [stderr] Compiling value-bag v1.11.1 [INFO] [stderr] Compiling iana-time-zone v0.1.63 [INFO] [stderr] Compiling rand_core v0.9.3 [INFO] [stderr] Compiling rust_decimal v1.37.2 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling parking_lot v0.12.4 [INFO] [stderr] Compiling arrayvec v0.7.6 [INFO] [stderr] Compiling lazy_static v1.5.0 [INFO] [stderr] Compiling maplit v1.0.2 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Compiling proc-macro-error-attr2 v2.0.0 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling ryu v1.0.20 [INFO] [stderr] Compiling thiserror v2.0.16 [INFO] [stderr] Compiling inventory v0.3.21 [INFO] [stderr] Compiling itoa v1.0.15 [INFO] [stderr] Compiling unicode-width v0.2.1 [INFO] [stderr] Compiling nautilus-model v0.50.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling thousands v0.2.0 [INFO] [stderr] Compiling implied-vol v1.3.0 [INFO] [stderr] Compiling hex v0.4.3 [INFO] [stderr] Compiling evalexpr v11.3.1 [INFO] [stderr] Compiling papergrid v0.17.0 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling rmp v0.8.14 [INFO] [stderr] Compiling toml_parser v1.0.2 [INFO] [stderr] Compiling ndarray v0.16.1 [INFO] [stderr] Compiling pyo3-ffi v0.25.1 [INFO] [stderr] Compiling pyo3-macros-backend v0.25.1 [INFO] [stderr] Compiling pyo3 v0.25.1 [INFO] [stderr] Compiling numpy v0.25.0 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling serde_spanned v1.0.0 [INFO] [stderr] Compiling toml_datetime v0.7.0 [INFO] [stderr] Compiling toml v0.9.5 [INFO] [stderr] Compiling nautilus-core v0.50.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling pyo3-stub-gen-derive v0.13.1 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling tabled_derive v0.11.0 [INFO] [stderr] Compiling rust_decimal_macros v1.37.1 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling tabled v0.20.0 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling pyo3-macros v0.25.1 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling indexmap v2.11.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling ustr v1.1.0 [INFO] [stderr] Compiling uuid v1.18.1 [INFO] [stderr] Compiling rmp-serde v1.3.0 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling pyo3-stub-gen v0.13.1 [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s [INFO] running `Command { std: "docker" "inspect" "be345b1636b739ac4e134aeebccc862929afc67cf34325d4cca08c5f29fc5bae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "be345b1636b739ac4e134aeebccc862929afc67cf34325d4cca08c5f29fc5bae", kill_on_drop: false }` [INFO] [stdout] be345b1636b739ac4e134aeebccc862929afc67cf34325d4cca08c5f29fc5bae [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] edb2682d566be6abcafb81c38cf3ef8e438da5e2ef13fc7727285bdce8e3da95 [INFO] running `Command { std: "docker" "start" "-a" "edb2682d566be6abcafb81c38cf3ef8e438da5e2ef13fc7727285bdce8e3da95", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling regex-syntax v0.8.6 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling semver v1.0.26 [INFO] [stderr] Compiling serde_json v1.0.143 [INFO] [stderr] Compiling toml_parser v1.0.2 [INFO] [stderr] Compiling rustix v1.1.2 [INFO] [stderr] Compiling aho-corasick v1.1.3 [INFO] [stderr] Compiling indexmap v2.11.1 [INFO] [stderr] Compiling toml_datetime v0.6.11 [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling bitflags v2.9.4 [INFO] [stderr] Compiling linux-raw-sys v0.11.0 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling anstyle v1.0.11 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling clap_builder v4.5.47 [INFO] [stderr] Compiling futures-core v0.3.31 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling relative-path v1.9.3 [INFO] [stderr] Compiling glob v0.3.3 [INFO] [stderr] Compiling futures-task v0.3.31 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling crossbeam-epoch v0.9.18 [INFO] [stderr] Compiling slab v0.4.11 [INFO] [stderr] Compiling pin-project-lite v0.2.16 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling pin-utils v0.1.0 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling rustc_version v0.4.1 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling crossbeam-deque v0.8.6 [INFO] [stderr] Compiling criterion-plot v0.6.0 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling nautilus-model v0.50.0 (/opt/rustwide/workdir) [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling rstest_macros v0.26.1 [INFO] [stderr] Compiling toml v0.9.5 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling iai v0.1.1 [INFO] [stderr] Compiling toml_edit v0.22.27 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling regex-automata v0.4.10 [INFO] [stderr] Compiling nautilus-core v0.50.0 [INFO] [stderr] Compiling clap v4.5.47 [INFO] [stderr] Compiling tempfile v3.22.0 [INFO] [stderr] Compiling rusty-fork v0.3.0 [INFO] [stderr] Compiling regex v1.11.2 [INFO] [stderr] Compiling proptest v1.7.0 [INFO] [stderr] Compiling proc-macro-crate v3.3.0 [INFO] [stderr] Compiling darling_core v0.20.11 [INFO] [stderr] Compiling pyo3-macros-backend v0.25.1 [INFO] [stderr] Compiling proc-macro-error2 v2.0.1 [INFO] [stderr] Compiling serde_derive v1.0.219 [INFO] [stderr] Compiling pyo3-stub-gen-derive v0.13.1 [INFO] [stderr] Compiling thiserror-impl v2.0.16 [INFO] [stderr] Compiling tabled_derive v0.11.0 [INFO] [stderr] Compiling strum_macros v0.27.2 [INFO] [stderr] Compiling futures-macro v0.3.31 [INFO] [stderr] Compiling enum_dispatch v0.3.13 [INFO] [stderr] Compiling rust_decimal_macros v1.37.1 [INFO] [stderr] Compiling futures-util v0.3.31 [INFO] [stderr] Compiling tabled v0.20.0 [INFO] [stderr] Compiling thiserror v2.0.16 [INFO] [stderr] Compiling darling_macro v0.20.11 [INFO] [stderr] Compiling strum v0.27.2 [INFO] [stderr] Compiling darling v0.20.11 [INFO] [stderr] Compiling derive_builder_core v0.20.2 [INFO] [stderr] Compiling derive_builder_macro v0.20.2 [INFO] [stderr] Compiling derive_builder v0.20.2 [INFO] [stderr] Compiling serde v1.0.219 [INFO] [stderr] Compiling rstest v0.26.1 [INFO] [stderr] Compiling pyo3-macros v0.25.1 [INFO] [stderr] Compiling pyo3 v0.25.1 [INFO] [stderr] Compiling serde_spanned v0.6.9 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling uuid v1.18.1 [INFO] [stderr] Compiling ustr v1.1.0 [INFO] [stderr] Compiling rust_decimal v1.37.2 [INFO] [stderr] Compiling rmp-serde v1.3.0 [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling numpy v0.25.0 [INFO] [stderr] Compiling criterion v0.7.0 [INFO] [stderr] Compiling toml v0.8.23 [INFO] [stderr] Compiling pyo3-stub-gen v0.13.1 [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 1m 26s [INFO] running `Command { std: "docker" "inspect" "edb2682d566be6abcafb81c38cf3ef8e438da5e2ef13fc7727285bdce8e3da95", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "edb2682d566be6abcafb81c38cf3ef8e438da5e2ef13fc7727285bdce8e3da95", kill_on_drop: false }` [INFO] [stdout] edb2682d566be6abcafb81c38cf3ef8e438da5e2ef13fc7727285bdce8e3da95 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+b6ae10aa7319b7ebb6c7b3331dd71a9d6c9c5b4b" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 96b8fd07bf93cc83bc80899c06f1b9b4f4d7a5dd32dbde6a080636621efd52d0 [INFO] running `Command { std: "docker" "start" "-a" "96b8fd07bf93cc83bc80899c06f1b9b4f4d7a5dd32dbde6a080636621efd52d0", kill_on_drop: false }` [INFO] [stderr] Compiling nautilus-model v0.50.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 27.24s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/nautilus_model-19e7f6ddde456677) [INFO] [stdout] [INFO] [stdout] running 1366 tests [INFO] [stdout] test accounts::margin::tests::test_calculate_margin_init_with_default_leverage ... ok [INFO] [stdout] test accounts::margin::tests::test_base_account_properties ... ok [INFO] [stdout] test accounts::cash::tests::test_display ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_pnls_for_single_currency_cash_account ... ok [INFO] [stdout] test accounts::cash::tests::test_instantiate_single_asset_cash_account ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_pnls_for_multi_currency_cash_account_btcusdt ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_commission_for_inverse_maker_crypto::case_2 ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_balance_locked_buy ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_balance_locked_sell ... ok [INFO] [stdout] test accounts::cash::tests::test_instantiate_multi_asset_cash_account ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_commission_fx_taker ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_commission_for_taker_fx ... ok [INFO] [stdout] test accounts::cash::tests::test_apply_given_new_state_event_updates_correctly ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_commission_for_inverse_maker_crypto::case_1 ... ok [INFO] [stdout] test accounts::margin::tests::test_calculate_margin_maintenance_with_leverage_fx_instrument ... ok [INFO] [stdout] test accounts::margin::tests::test_calculate_margin_init_with_no_leverage_for_inverse ... ok [INFO] [stdout] test accounts::margin::tests::test_calculate_margin_maintenance_with_leverage_inverse_instrument ... ok [INFO] [stdout] test accounts::margin::tests::test_calculate_pnls_with_same_side_fill_returns_empty ... ok [INFO] [stdout] test accounts::margin::tests::test_calculate_pnls_github_issue_2657 ... ok [INFO] [stdout] test accounts::margin::tests::test_calculate_margin_init_with_leverage ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_balance_locked_sell_no_base_currency ... ok [INFO] [stdout] test accounts::margin::tests::test_get_leverage_default_leverage ... ok [INFO] [stdout] test accounts::margin::tests::test_is_unleveraged_with_leverage_returns_false ... ok [INFO] [stdout] test accounts::margin::tests::test_is_unleveraged_with_default_leverage_of_1_returns_true ... ok [INFO] [stdout] test accounts::margin::tests::test_display ... ok [INFO] [stdout] test accounts::margin::tests::test_set_leverage ... ok [INFO] [stdout] test accounts::margin::tests::test_update_margin_init ... ok [INFO] [stdout] test accounts::margin::tests::test_update_margin_maintenance ... ok [INFO] [stdout] test accounts::margin::tests::test_is_unleveraged_with_no_leverage_returns_true ... ok [INFO] [stdout] test accounts::margin::tests::test_set_default_leverage ... ok [INFO] [stdout] test data::bar::tests::test_bar_equality ... ok [INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_2 ... ok [INFO] [stdout] test accounts::cash::tests::test_calculate_commission_crypto_taker ... ok [INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_3 ... ok [INFO] [stdout] test accounts::margin::tests::test_calculate_margin_maintenance_with_no_leverage ... ok [INFO] [stdout] test data::bar::tests::test_bar_new ... ok [INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_1 ... ok [INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_5 ... ok [INFO] [stdout] test data::bar::tests::test_bar_spec_string_reprs ... ok [INFO] [stdout] test data::bar::tests::test_bar_specification_new_invalid ... ok [INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_6 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_comparison ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_equality ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_1 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_2 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_3 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_composite_parse_valid ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_5 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_0 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_7 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_valid ... ok [INFO] [stdout] test data::bar::tests::test_bar_new_checked_conditions::case_4 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_4 ... ok [INFO] [stdout] test data::bar::tests::test_bar_type_parse_invalid_token_pos_6 ... ok [INFO] [stdout] test data::bar::tests::test_bar_specification_new_checked_with_invalid_step_panics - should panic ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_01 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_04 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_08 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_10 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_07 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_02 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_03 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_07 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_01 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_09 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_09 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_05 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_02 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_06 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_03 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_05 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_06 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval::case_11 - should panic ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_10_hour ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_04 ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_10 ... ok [INFO] [stdout] test data::bet::tests::test_as_bet ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_02_millisecond ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_03_second ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_11 - should panic ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_04_second ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_05_second ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_06_second ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_07_minute ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_08_minute ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_09_minute ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_11_hour ... ok [INFO] [stdout] test data::bar::tests::test_json_serialization ... ok [INFO] [stdout] test data::bar::tests::test_get_bar_interval_ns::case_08 ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_01_millisecond ... ok [INFO] [stdout] test data::bar::tests::test_get_time_bar_start::case_12_day ... ok [INFO] [stdout] test data::bet::tests::test_bet_exposure_back ... ok [INFO] [stdout] test data::bet::tests::test_bet_exposure_lay ... ok [INFO] [stdout] test data::bet::tests::test_bet_liability_back ... ok [INFO] [stdout] test data::bet::tests::test_bet_liability_lay ... ok [INFO] [stdout] test data::bet::tests::test_bet_position_initialization ... ok [INFO] [stdout] test data::bet::tests::test_bet_position_side_back ... ok [INFO] [stdout] test data::bet::tests::test_bet_position_side_lay ... ok [INFO] [stdout] test data::bet::tests::test_bet_position_side_none ... ok [INFO] [stdout] test data::bet::tests::test_bet_profit_back ... ok [INFO] [stdout] test data::bet::tests::test_bet_profit_lay ... ok [INFO] [stdout] test data::bar::tests::test_msgpack_serialization ... ok [INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_mixed_bets ... ok [INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_multiple_bets ... ok [INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_no_bets ... ok [INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_single_back_bet ... ok [INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_single_lay_bet ... ok [INFO] [stdout] test data::bet::tests::test_calc_bets_pnl_zero_outcome ... ok [INFO] [stdout] test data::bet::tests::test_display_bet ... ok [INFO] [stdout] test data::bet::tests::test_display_bet_position ... ok [INFO] [stdout] test data::bet::tests::test_flattening_bet_back_hack ... ok [INFO] [stdout] test data::bet::tests::test_hedging_bet_lay ... ok [INFO] [stdout] test data::bet::tests::test_hedging_stake_back ... ok [INFO] [stdout] test data::bet::tests::test_inverse_probability_to_bet ... ok [INFO] [stdout] test data::bet::tests::test_inverse_probability_to_bet_example2 ... ok [INFO] [stdout] test data::bet::tests::test_open_position_realized_unrealized ... ok [INFO] [stdout] test data::bet::tests::test_outcome_lose_payoff_back ... ok [INFO] [stdout] test data::bet::tests::test_outcome_lose_payoff_lay ... ok [INFO] [stdout] test data::bet::tests::test_outcome_win_payoff_back ... ok [INFO] [stdout] test data::bet::tests::test_outcome_win_payoff_lay ... ok [INFO] [stdout] test data::bet::tests::test_position_back_then_lay ... ok [INFO] [stdout] test data::bet::tests::test_position_flat ... ok [INFO] [stdout] test data::bet::tests::test_position_flip ... ok [INFO] [stdout] test data::bet::tests::test_flattening_bet_back_profit ... ok [INFO] [stdout] test data::bet::tests::test_flattening_bet_lay ... ok [INFO] [stdout] test data::bet::tests::test_position_increase_back ... ok [INFO] [stdout] test data::bet::tests::test_position_increase_lay ... ok [INFO] [stdout] test data::bet::tests::test_probability_to_bet_back_high_prob ... ok [INFO] [stdout] test data::bet::tests::test_probability_to_bet_sell ... ok [INFO] [stdout] test data::bet::tests::test_probability_to_bet_back_low_prob ... ok [INFO] [stdout] test data::bet::tests::test_position_lay_then_back ... ok [INFO] [stdout] test data::bet::tests::test_probability_to_bet_back_simple ... ok [INFO] [stdout] test data::bet::tests::test_realized_pnl_flattening ... ok [INFO] [stdout] test data::bet::tests::test_realized_pnl_flipping ... ok [INFO] [stdout] test data::bet::tests::test_realized_pnl_open_position ... ok [INFO] [stdout] test data::bet::tests::test_realized_pnl_partial_close ... ok [INFO] [stdout] test data::bet::tests::test_realized_pnl_single_side ... ok [INFO] [stdout] test data::bet::tests::test_reset_position ... ok [INFO] [stdout] test data::bet::tests::test_total_pnl ... ok [INFO] [stdout] test data::bet::tests::test_total_pnl_with_pnl ... ok [INFO] [stdout] test data::bet::tests::test_unrealized_no_position ... ok [INFO] [stdout] test data::bet::tests::test_from_liability_panics_on_back_side - should panic ... ok [INFO] [stdout] test data::bet::tests::test_bet_creation ... ok [INFO] [stdout] test data::bet::tests::test_unrealized_pnl_negative ... ok [INFO] [stdout] test data::close::tests::test_new ... ok [INFO] [stdout] test data::close::tests::test_json_serialization ... ok [INFO] [stdout] test data::delta::tests::test_clear ... ok [INFO] [stdout] test data::close::tests::test_msgpack_serialization ... ok [INFO] [stdout] test data::delta::tests::test_get_fields ... ok [INFO] [stdout] test data::delta::tests::test_get_metadata ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_clear ... ok [INFO] [stdout] test data::bet::tests::test_unrealized_pnl_positive ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_clone ... ok [INFO] [stdout] test data::delta::tests::test_json_serialization ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_debug ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_display ... ok [INFO] [stdout] test data::close::tests::test_to_string ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_has_ts_init ... ok [INFO] [stdout] test data::delta::tests::test_msgpack_serialization ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_new_checked_with_zero_size_error ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_partial_eq ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_serialization ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_2 ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_1 ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_3 ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_sides::case_1 ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_actions::case_4 ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_hash ... ok [INFO] [stdout] test data::delta::tests::test_new ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_hash_different_deltas ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_new ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_new_checked_delete_with_zero_size_ok ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_new_checked_valid ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_different_sides::case_2 ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_max_values ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_with_zero_timestamps ... ok [INFO] [stdout] test data::deltas::tests::test_display_with_stub ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_clone ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_deref ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_deref_mut ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_debug ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_clone ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_into_inner ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_serialization ... ok [INFO] [stdout] test data::deltas::tests::test_new ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_debug ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_hash_uses_instrument_id_and_sequence ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_hash_different_objects ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_api_new ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_display ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_different_action_types ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_display_format ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_large_number_of_deltas ... ok [INFO] [stdout] test data::delta::tests::test_order_book_delta_new_with_zero_size_panics ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_has_ts_init ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_max_values ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new_checked_empty_deltas ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new_checked_valid ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_serialization ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_single_delta ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_new_empty_deltas_panics - should panic ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_uses_last_delta_properties ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_with_stub ... ok [INFO] [stdout] test data::deltas::tests::test_order_book_deltas_zero_sequence ... ok [INFO] [stdout] test data::depth::tests::test_display ... ok [INFO] [stdout] test data::depth::tests::test_new ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_array_indexing ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_bid_ask_ordering ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_clone ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_different_instruments ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_display ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_debug ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_empty_values ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_eq_consistency ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_fixed_array_sizes ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_display_format ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_get_metadata ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_get_fields ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_copy ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_max_values ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_new_with_all_parameters ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_get_fields_order ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_partial_eq ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_realistic_forex_spread ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_hash_different_objects ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_new ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_hash ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_serializable_trait ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_serialization ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_with_stub ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_eq_hash ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_get_ts_init ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_display ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_json_serialization ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_msgpack_serialization ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_new ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_new_with_optional_fields ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_basic_call ... ok [INFO] [stdout] test data::funding::tests::test_funding_rate_update_serde_json ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_basic_put ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_deep_itm_call ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_deep_otm_call ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_extreme_values ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_high_volatility ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_result_clone_and_copy ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_result_debug ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_result_creation ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_with_multiplier ... ok [INFO] [stdout] test data::greeks::tests::test_black_scholes_greeks_zero_time ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_accuracy_call ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_accuracy_put ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_clone ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_default ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_display ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_from_delta ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_has_ts_init ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_multiplication ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_new ... ok [INFO] [stdout] test data::greeks::tests::test_greeks_data_put_option ... ok [INFO] [stdout] test data::greeks::tests::test_imply_vol_and_greeks_accuracy_call ... ok [INFO] [stdout] test data::depth::tests::test_order_book_depth10_has_ts_init ... ok [INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_default ... ok [INFO] [stdout] test data::greeks::tests::test_imply_vol_and_greeks_accuracy_put ... ok [INFO] [stdout] test data::greeks::tests::test_imply_vol_and_greeks_result_creation ... ok [INFO] [stdout] test data::greeks::tests::test_imply_vol_basic ... ok [INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_addition ... ok [INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_display ... ok [INFO] [stdout] test data::greeks::tests::test_yield_curve_data_clone ... ok [INFO] [stdout] test data::greeks::tests::test_yield_curve_data_default ... ok [INFO] [stdout] test data::greeks::tests::test_yield_curve_data_display ... ok [INFO] [stdout] test data::greeks::tests::test_yield_curve_data_has_ts_init ... ok [INFO] [stdout] test data::order::tests::test_exposure ... ok [INFO] [stdout] test data::order::tests::test_signed_size ... ok [INFO] [stdout] test data::order::tests::test_to_book_price ... ok [INFO] [stdout] test data::prices::tests::test_index_price_update_get_ts_init ... ok [INFO] [stdout] test data::prices::tests::test_index_price_update_eq_hash ... ok [INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_from_greeks_data ... ok [INFO] [stdout] test data::order::tests::test_new ... ok [INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_has_ts_init ... ok [INFO] [stdout] test data::prices::tests::test_index_price_update_display ... ok [INFO] [stdout] test data::order::tests::test_display ... ok [INFO] [stdout] test data::greeks::tests::test_yield_curve_data_get_rate_interpolation ... ok [INFO] [stdout] test data::prices::tests::test_index_price_update_msgpack_serialization ... ok [INFO] [stdout] test data::prices::tests::test_index_price_update_new ... ok [INFO] [stdout] test data::prices::tests::test_index_price_update_serde_json ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_display ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_eq_hash ... ok [INFO] [stdout] test data::greeks::tests::test_portfolio_greeks_new ... ok [INFO] [stdout] test data::greeks::tests::test_yield_curve_data_get_rate_single_point ... ok [INFO] [stdout] test data::quote::tests::test_extract_mid_price_precision ... ok [INFO] [stdout] test data::order::tests::test_debug ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_get_ts_init ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_json_serialization ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_serde_json ... ok [INFO] [stdout] test data::greeks::tests::test_yield_curve_data_new ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_clone ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_msgpack_serialization ... ok [INFO] [stdout] test data::quote::tests::test_extract_price::case_3 ... ok [INFO] [stdout] test data::quote::tests::test_extract_price::case_2 ... ok [INFO] [stdout] test data::quote::tests::test_extract_size::case_1 ... ok [INFO] [stdout] test data::prices::tests::test_index_price_update_json_serialization ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_builder ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_display ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_new ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_has_ts_init ... ok [INFO] [stdout] test data::quote::tests::test_extract_size::case_3 ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_with_max_values ... ok [INFO] [stdout] test data::quote::tests::test_to_string ... ok [INFO] [stdout] test data::status::tests::test_get_metadata ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_with_zero_prices ... ok [INFO] [stdout] test data::prices::tests::test_mark_price_update_new ... ok [INFO] [stdout] test data::quote::tests::test_extract_price::case_1 ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_new_checked_valid ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_builder ... ok [INFO] [stdout] test data::status::tests::test_get_metadata_different_instruments ... ok [INFO] [stdout] test data::quote::tests::test_get_fields ... ok [INFO] [stdout] test data::quote::tests::test_extract_size::case_2 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_builder_minimal ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_copy ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_debug ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_display_different_actions ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_display_format ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_has_ts_init ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_has_ts_init_different_values ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_hash_different_objects ... ok [INFO] [stdout] test data::quote::tests::test_extract_price_invalid_type - should panic ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_display ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_clone ... ok [INFO] [stdout] test data::quote::tests::test_extract_size_invalid_type - should panic ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_new_with_precision_mismatch_panics - should panic ... ok [INFO] [stdout] test data::quote::tests::test_get_metadata ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_eq_consistency ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_hash ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_partial_eq ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_new ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_new_minimal ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_serialization ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_partial_eq_different_fields ... ok [INFO] [stdout] test data::quote::tests::test_quote_tick_new_checked_with_precision_mismatch_error ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_01 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_serialization_with_optional_fields ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_02 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_03 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_04 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_05 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_06 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_07 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_08 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_10 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_09 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_11 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_12 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_13 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_14 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_15 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_all_actions::case_16 ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_empty_reason ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_halt_flags ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_long_reason ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_max_timestamps ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_mixed_optional_fields ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_short_sell_restriction ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_zero_timestamps ... ok [INFO] [stdout] test data::status::tests::test_instrument_status_with_trading_flags ... ok [INFO] [stdout] test data::status::tests::test_to_string ... ok [INFO] [stdout] test data::tests::test_data_type_creation_with_metadata ... ok [INFO] [stdout] test data::tests::test_data_type_creation_without_metadata ... ok [INFO] [stdout] test data::tests::test_data_type_debug ... ok [INFO] [stdout] test data::tests::test_data_type_equality ... ok [INFO] [stdout] test data::tests::test_data_type_hash ... ok [INFO] [stdout] test data::tests::test_data_type_inequality ... ok [INFO] [stdout] test data::tests::test_data_type_ordering ... ok [INFO] [stdout] test data::tests::test_parse_end_from_metadata ... ok [INFO] [stdout] test data::tests::test_parse_instrument_id_from_metadata ... ok [INFO] [stdout] test data::tests::test_parse_venue_from_metadata ... ok [INFO] [stdout] test data::tests::test_data_type_display ... ok [INFO] [stdout] test data::trade::tests::test_get_metadata ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_builder ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_clone ... ok [INFO] [stdout] test data::trade::tests::test_get_fields ... ok [INFO] [stdout] test data::tests::test_parse_limit_from_metadata ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_debug ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_new_checked_with_zero_size_error ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_partial_eq ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_has_ts_init ... ok [INFO] [stdout] test data::tests::test_parse_start_from_metadata ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_display ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_hash ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_hash_different_trades ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_new ... ok [INFO] [stdout] test data::trade::tests::test_deserialize_raw_string ... ok [INFO] [stdout] test data::trade::tests::test_to_string ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_new_checked_valid ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_serialization ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_aggressor_sides::case_3 ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_aggressor_sides::case_2 ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_aggressor_sides::case_1 ... ok [INFO] [stdout] test events::account::state::tests::test_display_margin_account_state ... ok [INFO] [stdout] test events::account::state::tests::test_equality ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_balance_amounts ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_balance_currencies ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_with_zero_price ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_margin_amounts ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_identical ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_different_margin_instruments ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_missing_margin ... ok [INFO] [stdout] test events::account::state::tests::test_display_cash_account_state ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_when_missing_balance ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_with_different_trade_ids ... ok [INFO] [stdout] test data::trade::tests::test_trade_tick_with_max_values ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_with_empty_collections ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_clone ... ok [INFO] [stdout] test events::account::state::tests::test_has_same_balances_and_margins_with_multiple_balances_and_margins ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_debug ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_different_accounts ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_different_venues ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_partial_eq ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_serialization ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_order_event_trait ... ok [INFO] [stdout] test events::order::emulated::tests::test_order_emulated ... ok [INFO] [stdout] test events::order::expired::tests::test_order_cancel_rejected ... ok [INFO] [stdout] test events::order::cancel_rejected::tests::test_order_cancel_rejected ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_new ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_new_with_reconciliation ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_display ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_default ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_clone ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_default ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_different_currencies ... ok [INFO] [stdout] test events::order::accepted::tests::test_order_accepted_timestamps ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_different_liquidity_sides ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_different_prices_and_quantities ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_display ... ok [INFO] [stdout] test events::order::denied::tests::test_order_denied_display ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_is_buy ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_is_sell ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_specified_side ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_timestamps ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_with_reconciliation ... ok [INFO] [stdout] test events::order::pending_cancel::tests::test_order_pending_cancel_display ... ok [INFO] [stdout] test events::order::initialized::test::test_order_initialized ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_new ... ok [INFO] [stdout] test events::order::modify_rejected::tests::test_order_modified_rejected ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_different_order_types ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_order_event_trait ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_serialization ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_partial_eq ... ok [INFO] [stdout] test events::order::pending_update::test::test_order_pending_update_display ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_clone ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_default ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_debug ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_different_accounts ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_without_position_id ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_debug ... ok [INFO] [stdout] test events::order::filled::tests::test_order_filled_without_commission ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_different_reasons ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_display ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_different_instruments ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_new ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_new_with_reconciliation ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_order_event_trait ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_with_due_post_only ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_debug ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_default ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_different_strategies ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_different_traders ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_order_event_trait ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_serialization ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_serialization ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_partial_eq ... ok [INFO] [stdout] test events::order::rejected::tests::test_order_rejected_timestamps ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_rejected_display ... ok [INFO] [stdout] test events::order::released::tests::test_order_released_display ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_timestamps ... ok [INFO] [stdout] test events::order::triggered::tests::test_order_triggered_display ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_new ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_different_instruments ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_partial_eq ... ok [INFO] [stdout] test events::order::updated::tests::test_order_updated_display ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_clone ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_create ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_peak_quantity ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_quantities_relationship ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_with_closing_prices ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_debug ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_duration ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_clone ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_with_zero_unrealized_pnl ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_flat_position ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_entry_sides ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_different_sides ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_debug ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_new ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_partial_eq ... ok [INFO] [stdout] test events::order::submitted::tests::test_order_submitted_clone ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_create ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_with_pnl ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_new ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_partial_eq ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_loss_scenario ... ok [INFO] [stdout] test events::position::changed::tests::test_position_changed_timestamps ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_different_currencies ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_peak_quantity ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_with_realized_pnl ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_without_ts_closed ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_without_closing_order_id ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_clone ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_debug ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_create ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_new ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_different_currencies ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_partial_eq ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_prices ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_timestamps ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_with_closing_order_id ... ok [INFO] [stdout] test events::position::closed::tests::test_position_closed_prices ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_quantities ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_quantities ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_with_different_sides ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_clone ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_debug ... ok [INFO] [stdout] test events::position::opened::tests::test_position_opened_timestamps ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_timestamps ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_commissions ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_duration ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_different_currencies ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_pnl_values ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_empty_commissions ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_with_closing_data ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_base_currency ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_closing_data ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_duration ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_different_position_sides ... ok [INFO] [stdout] test events::position::tests::test_position_event_changed_account_id ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_without_pnl_values ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_from ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_from_with_no_unrealized_pnl ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_new ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_serialization ... ok [INFO] [stdout] test events::position::tests::test_position_event_changed_instrument_id ... ok [INFO] [stdout] test events::position::tests::test_position_event_closed_instrument_id ... ok [INFO] [stdout] test events::position::tests::test_position_event_debug_formatting ... ok [INFO] [stdout] test events::position::tests::test_position_event_opened_account_id ... ok [INFO] [stdout] test identifiers::account_id::tests::test_get_issuer ... ok [INFO] [stdout] test identifiers::account_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::actor_id::tests::test_string_reprs ... ok [INFO] [stdout] test events::position::snapshot::tests::test_position_snapshot_partial_eq ... ok [INFO] [stdout] test identifiers::client_id::tests::test_string_reprs ... ok [INFO] [stdout] test events::position::tests::test_position_event_enum_variants ... ok [INFO] [stdout] test identifiers::account_id::tests::test_account_id_new_missing_hyphen - should panic ... ok [INFO] [stdout] test events::position::tests::test_position_event_opened_instrument_id ... ok [INFO] [stdout] test identifiers::client_order_id::tests::test_optional_ustr_to_vec_client_order_ids ... ok [INFO] [stdout] test identifiers::account_id::tests::test_account_id_fmt ... ok [INFO] [stdout] test events::position::tests::test_position_event_closed_account_id ... ok [INFO] [stdout] test identifiers::account_id::tests::test_get_issuers_id ... ok [INFO] [stdout] test identifiers::component_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::exec_algorithm_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::instrument_id::tests::test_instrument_id_parse_success ... ok [INFO] [stdout] test identifiers::client_order_id::tests::test_optional_vec_client_order_ids_to_ustr ... ok [INFO] [stdout] test identifiers::instrument_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::order_list_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::client_order_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::position_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::strategy_id::tests::test_get_external ... ok [INFO] [stdout] test identifiers::strategy_id::tests::test_get_tag ... ok [INFO] [stdout] test identifiers::strategy_id::tests::test_is_external ... ok [INFO] [stdout] test identifiers::strategy_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::symbol::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_1 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_2 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_3 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_4 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_is_composite::case_5 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_1 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_3 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_4 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_2 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_3 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_4 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_root::case_5 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_1 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_2 ... ok [INFO] [stdout] test identifiers::symbol::tests::test_symbol_topic::case_5 ... ok [INFO] [stdout] test identifiers::instrument_id::tests::test_instrument_id_parse_failure_no_dot - should panic ... ok [INFO] [stdout] test identifiers::account_id::tests::test_account_id_new_invalid_string - should panic ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_as_cstr ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_equality ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_1 ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_2 ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_3 ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_valid_bytes::case_4 ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_new_valid ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_ordering ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_serialization ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_with_null_terminator_at_max_length ... ok [INFO] [stdout] test identifiers::trader_id::tests::test_get_tag ... ok [INFO] [stdout] test identifiers::trader_id::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::venue::tests::test_string_reprs ... ok [INFO] [stdout] test identifiers::venue_order_id::tests::test_string_reprs ... ok [INFO] [stdout] test instruments::binary_option::tests::test_equality ... ok [INFO] [stdout] test instruments::crypto_option::tests::test_equality ... ok [INFO] [stdout] test instruments::crypto_perpetual::tests::test_equality ... ok [INFO] [stdout] test instruments::currency_pair::tests::test_equality ... ok [INFO] [stdout] test instruments::betting::tests::test_equality ... ok [INFO] [stdout] test instruments::equity::tests::test_equality ... ok [INFO] [stdout] test instruments::futures_contract::tests::test_equality ... ok [INFO] [stdout] test instruments::futures_spread::tests::test_equality ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_exceeds_max_length::case_1 - should panic ... ok [INFO] [stdout] test instruments::option_contract::tests::test_equality ... ok [INFO] [stdout] test instruments::option_spread::tests::test_equality ... ok [INFO] [stdout] test instruments::synthetic::tests::test_calculate_from_map ... ok [INFO] [stdout] test instruments::synthetic::tests::test_change_formula ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_2_dp1 ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_from_bytes_empty - should panic ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_1_dp0 ... ok [INFO] [stdout] test instruments::synthetic::tests::test_calculate ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_3_dp2 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_5_dp4 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_6_dp5 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_4_dp3 ... ok [INFO] [stdout] test instruments::crypto_future::tests::test_equality ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_7_dp6 ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_single_null_byte - should panic ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_9_dp8 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_1_dp9 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_2_dp10 ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_exceeds_max_length::case_2 - should panic ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_3_dp11 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_4_dp12 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_5_dp13 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_8_dp16 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding::case_8_dp7 ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_9_dp17 ... ok [INFO] [stdout] test instruments::tests::base_quantity_linear ... ok [INFO] [stdout] test identifiers::trade_id::tests::test_trade_id_new_invalid_length - should panic ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_7_dp15 ... ok [INFO] [stdout] test instruments::tests::check_positive_money_negative - should panic ... ok [INFO] [stdout] test instruments::tests::check_positive_money_ok ... ok [INFO] [stdout] test instruments::tests::base_qty_rounding_high_dp::case_6_dp14 ... ok [INFO] [stdout] test instruments::tests::default_increment_precision ... ok [INFO] [stdout] test instruments::tests::fixed_tick_boundary ... ok [INFO] [stdout] test instruments::tests::fixed_tick_multiple_steps ... ok [INFO] [stdout] test instruments::tests::check_positive_money_zero - should panic ... ok [INFO] [stdout] test instruments::tests::is_quanto_flag ... ok [INFO] [stdout] test instruments::tests::fixed_tick_scheme_prices ... ok [INFO] [stdout] test instruments::tests::make_price_rounding_parity::case_1 ... ok [INFO] [stdout] test instruments::tests::make_price_half_even_parity ... ok [INFO] [stdout] test instruments::tests::make_price_rounding_parity::case_2 ... ok [INFO] [stdout] test instruments::tests::make_price_rounding_parity::case_3 ... ok [INFO] [stdout] test instruments::tests::make_qty_boundary::case_1 ... ok [INFO] [stdout] test instruments::tests::make_qty_boundary::case_2 ... ok [INFO] [stdout] test instruments::tests::make_qty_half_even::case_1 ... ok [INFO] [stdout] test instruments::tests::fixed_tick_negative - should panic ... ok [INFO] [stdout] test instruments::tests::make_qty_half_even::case_2 ... ok [INFO] [stdout] test instruments::tests::make_qty_precision::case_2 ... ok [INFO] [stdout] test instruments::tests::make_qty_precision::case_1 ... ok [INFO] [stdout] test instruments::tests::make_qty_round_down::case_1 ... ok [INFO] [stdout] test instruments::tests::make_qty_precision::case_3 ... ok [INFO] [stdout] test instruments::tests::make_qty_round_down::case_2 ... ok [INFO] [stdout] test instruments::tests::make_qty_round_down::case_3 ... ok [INFO] [stdout] test instruments::tests::make_qty_round_down::case_4 ... ok [INFO] [stdout] test instruments::tests::make_qty_rounding::case_4 ... ok [INFO] [stdout] test instruments::tests::make_qty_rounding::case_1 ... ok [INFO] [stdout] test instruments::tests::make_qty_rounding::case_2 ... ok [INFO] [stdout] test instruments::tests::make_qty_rounding::case_5 ... ok [INFO] [stdout] test instruments::tests::next_ask_prices_sequence ... ok [INFO] [stdout] test instruments::tests::next_bid_prices_sequence ... ok [INFO] [stdout] test instruments::tests::make_qty_rounding::case_3 ... ok [INFO] [stdout] test instruments::tests::make_qty_rounds_to_zero - should panic ... ok [INFO] [stdout] test instruments::tests::notional_inverse_base ... ok [INFO] [stdout] test instruments::tests::notional_inverse_quote_use_quote ... ok [INFO] [stdout] test instruments::tests::notional_linear ... ok [INFO] [stdout] test instruments::tests::notional_quanto ... ok [INFO] [stdout] test instruments::tests::pyo3_failure_fixed_tick_zero ... ok [INFO] [stdout] test instruments::tests::pyo3_failure_tick_scheme_unknown ... ok [INFO] [stdout] test instruments::tests::pyo3_failure_validate_price_increment_max_price_precision_mismatch ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_01 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_02 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_03 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_04 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_05 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_06 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_07 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_09 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_08 ... ok [INFO] [stdout] test instruments::tests::quantity_rounding_grid::case_10 ... ok [INFO] [stdout] test instruments::tests::tick_walk_limits_btcusdt_bid ... ok [INFO] [stdout] test instruments::tests::tick_walk_limits_ethusdt_ask ... ok [INFO] [stdout] test instruments::tests::validate_instrument_common_ok ... ok [INFO] [stdout] test instruments::tests::tick_navigation ... ok [INFO] [stdout] test instruments::tests::validate_multiple_errors - should panic ... ok [INFO] [stdout] test instruments::tests::tick_walk_limits_btcusdt_ask ... ok [INFO] [stdout] test instruments::tests::tick_walk_limits_ethusdt_bid ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_ascending_sell_orders ... ok [INFO] [stdout] test instruments::tests::tick_walk_limits_quanto_ask ... ok [INFO] [stdout] test instruments::tests::validate_negative_margin_maint - should panic ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_bulk_empty ... ok [INFO] [stdout] test instruments::tests::validate_negative_min_notional - should panic ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_bulk_orders ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_descending_buy_orders ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_multiple_buy_orders ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_multiple_sell_orders ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_single_order ... ok [INFO] [stdout] test instruments::tests::validate_min_price_exceeds_max_price - should panic ... ok [INFO] [stdout] test orderbook::ladder::tests::test_add_to_same_price_level ... ok [INFO] [stdout] test instruments::tests::validate_non_positive_max_notional - should panic ... ok [INFO] [stdout] test orderbook::ladder::tests::test_book_price_bid_sorting ... ok [INFO] [stdout] test orderbook::ladder::tests::test_book_price_ask_sorting ... ok [INFO] [stdout] test orderbook::ladder::tests::test_boundary_prices ... ok [INFO] [stdout] test orderbook::ladder::tests::test_cache_consistency_after_operations ... ok [INFO] [stdout] test orderbook::ladder::tests::test_delete_buy_order ... ok [INFO] [stdout] test instruments::tests::validate_price_increment_min_price_precision_mismatch - should panic ... ok [INFO] [stdout] test orderbook::ladder::tests::test_delete_non_existing_order ... ok [INFO] [stdout] test orderbook::ladder::tests::test_delete_sell_order ... ok [INFO] [stdout] test instruments::tests::validate_price_increment_precision_mismatch - should panic ... ok [INFO] [stdout] test instruments::tests::validate_non_positive_max_price - should panic ... ok [INFO] [stdout] test instruments::tests::validate_negative_margin_init - should panic ... ok [INFO] [stdout] test orderbook::ladder::tests::test_is_empty ... ok [INFO] [stdout] test instruments::tests::validate_negative_max_qty - should panic ... ok [INFO] [stdout] test instruments::tests::make_price_qty_fuzz ... ok [INFO] [stdout] test orderbook::ladder::tests::test_ladder_exposures ... ok [INFO] [stdout] test orderbook::ladder::tests::test_is_empty_after_add ... ok [INFO] [stdout] test orderbook::ladder::tests::test_iter_returns_fifo ... ok [INFO] [stdout] test orderbook::ladder::tests::test_ladder_exposures_empty ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_fills_with_empty_book ... ok [INFO] [stdout] test orderbook::ladder::tests::test_ladder_sizes ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_buy_when_far_from_market::case_2 ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_buy ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_sell_with_size_at_limit_of_precision ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_sell_when_far_from_market ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_buy_when_far_from_market::case_1 ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_sell ... ok [INFO] [stdout] test orderbook::ladder::tests::test_ladder_sizes_empty ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_with_no_size::case_1 ... ok [INFO] [stdout] test orderbook::ladder::tests::test_update_buy_order_size ... ok [INFO] [stdout] test orderbook::ladder::tests::test_update_missing_order_inserts ... ok [INFO] [stdout] test orderbook::ladder::tests::test_update_buy_order_price ... ok [INFO] [stdout] test orderbook::level::tests::test_add_multiple_orders ... ok [INFO] [stdout] test orderbook::level::tests::test_add_single_order ... ok [INFO] [stdout] test orderbook::level::tests::test_book_level_sorting ... ok [INFO] [stdout] test orderbook::ladder::tests::test_update_sell_order_price ... ok [INFO] [stdout] test orderbook::level::tests::test_comparisons_bid_side ... ok [INFO] [stdout] test orderbook::level::tests::test_comparisons_ask_side ... ok [INFO] [stdout] test orderbook::ladder::tests::test_update_sell_order_size ... ok [INFO] [stdout] test orderbook::ladder::tests::test_simulate_order_fills_with_no_size::case_2 ... ok [INFO] [stdout] test orderbook::level::tests::test_add_bulk_orders ... ok [INFO] [stdout] test orderbook::level::tests::test_add_bulk_empty ... ok [INFO] [stdout] test orderbook::level::tests::test_delete_nonexistent_order ... ok [INFO] [stdout] test orderbook::level::tests::test_empty_level ... ok [INFO] [stdout] test orderbook::level::tests::test_exposure ... ok [INFO] [stdout] test orderbook::level::tests::test_exposure_raw ... ok [INFO] [stdout] test orderbook::level::tests::test_delete_order ... ok [INFO] [stdout] test orderbook::level::tests::test_fifo_order_after_updates ... ok [INFO] [stdout] test orderbook::level::tests::test_get_orders ... ok [INFO] [stdout] test orderbook::level::tests::test_level_from_order ... ok [INFO] [stdout] test orderbook::level::tests::test_maximum_order_id ... ok [INFO] [stdout] test orderbook::level::tests::test_insertion_order_after_mixed_operations ... ok [INFO] [stdout] test orderbook::level::tests::test_size ... ok [INFO] [stdout] test orderbook::level::tests::test_remove_order_by_id ... ok [INFO] [stdout] test orderbook::level::tests::test_size_raw ... ok [INFO] [stdout] test orderbook::level::tests::test_update_order ... ok [INFO] [stdout] test orderbook::level::tests::test_size_decimal ... ok [INFO] [stdout] test orderbook::level::tests::test_iter_returns_fifo ... ok [INFO] [stdout] test orderbook::tests::prop_test_orderbook_basic_invariants ... ignored, Also hits cache consistency bug - debug assertions are in ladder code [INFO] [stdout] test orderbook::tests::prop_test_orderbook_operations ... ignored, Cache consistency fixes in progress - multiple edge cases remain [INFO] [stdout] test orderbook::level::tests::test_update_zero_size_nonexistent ... ok [INFO] [stdout] test orderbook::tests::test_book_display ... ok [INFO] [stdout] test orderbook::level::tests::test_update_order_with_zero_size ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_book_with_own_orders ... ok [INFO] [stdout] test orderbook::tests::test_book_empty_book_midpoint ... ok [INFO] [stdout] test orderbook::tests::test_book_empty_book_spread ... ok [INFO] [stdout] test orderbook::tests::test_book_empty_state ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_with_accepted_buffer_mixed_statuses ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_with_accepted_buffer ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_book_empty_own_book ... ok [INFO] [stdout] test orderbook::tests::test_book_apply_depth ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_with_depth_limit ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_with_own_orders_different_level ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_with_own_orders_larger_size ... ok [INFO] [stdout] test orderbook::tests::test_book_get_quantity_for_price_no_market ... ok [INFO] [stdout] test orderbook::tests::test_book_get_quantity_for_price ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_with_status_filter ... ok [INFO] [stdout] test orderbook::tests::test_book_get_price_for_exposure_no_market ... ok [INFO] [stdout] test orderbook::tests::test_book_filtered_with_own_orders_exact_size ... ok [INFO] [stdout] test orderbook::tests::test_book_get_price_for_quantity ... ok [INFO] [stdout] test orderbook::tests::test_book_get_price_for_exposure ... ok [INFO] [stdout] test orderbook::tests::test_book_get_price_for_quantity_no_market ... ok [INFO] [stdout] test orderbook::tests::test_book_group_asks_filtered_empty_own_book ... ok [INFO] [stdout] test orderbook::tests::test_book_group_asks_filtered_with_own_book ... ok [INFO] [stdout] test orderbook::tests::test_book_group_bids_filtered_empty_own_book ... ok [INFO] [stdout] test orderbook::tests::test_book_group_bids_filtered_with_own_book ... ok [INFO] [stdout] test orderbook::tests::test_book_group_empty_book ... ok [INFO] [stdout] test orderbook::tests::test_book_group_with_depth_limit ... ok [INFO] [stdout] test orderbook::tests::test_book_integrity_cases::case_1_valid_book ... ok [INFO] [stdout] test orderbook::tests::test_book_integrity_price_boundaries ... ok [INFO] [stdout] test orderbook::tests::test_book_group_price_realistic ... ok [INFO] [stdout] test orderbook::tests::test_book_group_with_status_filter ... ok [INFO] [stdout] test orderbook::tests::test_book_integrity_cases::case_3_too_many_levels_l1 ... ok [INFO] [stdout] test orderbook::tests::test_book_group_price_levels ... ok [INFO] [stdout] test orderbook::tests::test_book_integrity_cases::case_2_crossed_book ... ok [INFO] [stdout] test orderbook::tests::test_book_integrity_quantity_sizes::case_1_small_quantity ... ok [INFO] [stdout] test orderbook::tests::test_book_integrity_quantity_sizes::case_2_medium_quantity ... ok [INFO] [stdout] test orderbook::tests::test_book_integrity_quantity_sizes::case_3_large_quantity ... ok [INFO] [stdout] test orderbook::tests::test_book_orderbook_reset ... ok [INFO] [stdout] test orderbook::tests::test_book_orderbook_creation ... ok [INFO] [stdout] test orderbook::tests::test_book_midpoint_with_orders ... ok [INFO] [stdout] test orderbook::tests::test_book_single_ask_state ... ok [INFO] [stdout] test orderbook::tests::test_book_spread_with_orders ... ok [INFO] [stdout] test orderbook::tests::test_book_pprint ... ok [INFO] [stdout] test orderbook::tests::test_book_update_quote_tick_l1 ... ok [INFO] [stdout] test orderbook::tests::test_client_order_ids_after_operations ... ok [INFO] [stdout] test orderbook::tests::test_book_update_trade_tick_l1 ... ok [INFO] [stdout] test orderbook::tests::test_book_single_bid_state ... ok [INFO] [stdout] test orderbook::level::tests::test_add_bulk_orders_incorrect_price - should panic ... ok [INFO] [stdout] test orderbook::tests::test_client_order_ids_empty_book ... ok [INFO] [stdout] test orderbook::tests::test_client_order_ids_with_orders ... ok [INFO] [stdout] test orderbook::tests::test_cache_consistency_debug ... ok [INFO] [stdout] test orderbook::tests::test_own_book_audit_open_orders_no_removals ... ok [INFO] [stdout] test orderbook::tests::test_own_book_display ... ok [INFO] [stdout] test orderbook::tests::test_own_book_group_empty_book ... ok [INFO] [stdout] test orderbook::tests::test_own_book_group_price_levels ... ok [INFO] [stdout] test orderbook::tests::test_own_book_group_with_fractional_group_size ... ok [INFO] [stdout] test orderbook::tests::test_own_book_group_with_larger_group_size ... ok [INFO] [stdout] test orderbook::level::tests::test_add_order_incorrect_price_level - should panic ... ok [INFO] [stdout] test orderbook::tests::test_own_book_group_with_depth_limit ... ok [INFO] [stdout] test orderbook::level::tests::test_remove_nonexistent_order - should panic ... ok [INFO] [stdout] test orderbook::level::tests::test_update_order_incorrect_price - should panic ... ok [INFO] [stdout] test orderbook::tests::test_own_book_audit_open_orders_with_removals ... ok [INFO] [stdout] test orderbook::tests::test_own_book_group_with_multiple_orders_at_same_level ... ok [INFO] [stdout] test orderbook::tests::test_own_book_group_with_status_and_buffer ... ok [INFO] [stdout] test orderbook::tests::test_own_book_ladder_add_update_delete ... ok [INFO] [stdout] test orderbook::tests::test_own_book_level_size_and_exposure ... ok [INFO] [stdout] test orderbook::tests::test_own_order_book_add_update_delete_clear ... ok [INFO] [stdout] test orderbook::tests::test_own_order_book_bid_ask_quantity ... ok [INFO] [stdout] test orderbook::tests::test_own_book_level_add_update_delete ... ok [INFO] [stdout] test orderbook::tests::test_own_order_book_bids_and_asks_as_map ... ok [INFO] [stdout] test orderbook::tests::test_own_order_debug ... ok [INFO] [stdout] test orderbook::tests::test_own_order_book_quantity_empty_levels ... ok [INFO] [stdout] test orderbook::tests::test_own_order_display ... ok [INFO] [stdout] test orderbook::tests::test_own_order_exposure ... ok [INFO] [stdout] test orderbook::tests::test_own_order_to_book_price ... ok [INFO] [stdout] test orderbook::tests::test_own_order_signed_size ... ok [INFO] [stdout] test orderbook::tests::test_status_filtering_ask_quantity ... ok [INFO] [stdout] test orderbook::tests::test_status_filtering_bid_quantity ... ok [INFO] [stdout] test orderbook::tests::test_status_filtering_bids_as_map ... ok [INFO] [stdout] test orderbook::tests::test_status_filtering_asks_as_map ... ok [INFO] [stdout] test orders::any::tests::test_limit_order_any_conversion ... ok [INFO] [stdout] test orders::any::tests::test_limit_order_any_limit_price ... ok [INFO] [stdout] test orders::any::tests::test_order_any_from_events_empty_error ... ok [INFO] [stdout] test orders::any::tests::test_order_any_equality ... ok [INFO] [stdout] test orders::any::tests::test_stop_order_any_conversion ... ok [INFO] [stdout] test orders::any::tests::test_passive_order_any_to_any ... ok [INFO] [stdout] test orders::any::tests::test_stop_order_any_stop_price ... ok [INFO] [stdout] test orders::any::tests::test_order_any_from_events_wrong_first_event ... ok [INFO] [stdout] test orders::any::tests::test_order_any_conversion_from_events ... ok [INFO] [stdout] test orders::any::tests::test_trailing_stop_limit_order_conversion ... ok [INFO] [stdout] test orders::any::tests::test_passive_order_any_conversion ... ok [INFO] [stdout] test orders::any::tests::test_trailing_stop_market_order_conversion ... ok [INFO] [stdout] test orders::limit::tests::test_display ... ok [INFO] [stdout] test orders::limit::tests::test_initialize ... ok [INFO] [stdout] test orders::limit::tests::test_limit_order_creation ... ok [INFO] [stdout] test orders::limit::tests::test_limit_order_display_quantity ... ok [INFO] [stdout] test instruments::tests::make_price_negative_rounding ... ok [INFO] [stdout] test instruments::tests::tick_scheme_round_trip ... ok [INFO] [stdout] test orderbook::level::tests::test_update_inserts_if_missing ... ok [INFO] [stdout] test orders::limit::tests::test_correct_expiration_with_time_in_force_gtd - should panic ... ok [INFO] [stdout] test orders::limit::tests::test_limit_order_expire_time ... ok [INFO] [stdout] test orders::limit::tests::test_limit_order_post_only ... ok [INFO] [stdout] test orders::limit::tests::test_limit_order_update ... ok [INFO] [stdout] test orders::limit::tests::test_limit_order_with_expire_time ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_display ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_initialize ... ok [INFO] [stdout] test orders::limit::tests::test_positive_quantity_condition - should panic ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_limit_if_touched_order_from_order_initialized ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_limit_if_touched_order_sets_slippage_when_filled ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_limit_if_touched_order_update ... ok [INFO] [stdout] test orders::list::tests::test_new_and_display ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_buy_trigger_gt_price - should panic ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_sell_trigger_lt_price - should panic ... ok [INFO] [stdout] test orders::limit::tests::test_limit_order_missing_expire_time - should panic ... ok [INFO] [stdout] test orders::list::tests::test_order_list_creation_with_empty_orders - should panic ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_quantity_zero - should panic ... ok [INFO] [stdout] test orders::limit_if_touched::tests::test_gtd_without_expire - should panic ... ok [INFO] [stdout] test orders::market::tests::test_display ... ok [INFO] [stdout] test orders::list::tests::test_order_list_inequality ... ok [INFO] [stdout] test orders::list::tests::test_order_list_equality ... ok [INFO] [stdout] test orders::market::tests::test_gtd_condition - should panic ... ok [INFO] [stdout] test orders::market::tests::test_market_order_from_order_initialized ... ok [INFO] [stdout] test orders::list::tests::test_order_list_creation_with_mismatched_instrument_id - should panic ... ok [INFO] [stdout] test orders::market::tests::test_market_order_update ... ok [INFO] [stdout] test orders::market::tests::test_market_order_creation ... ok [INFO] [stdout] test orders::market::tests::test_market_order_invalid_quantity - should panic ... ok [INFO] [stdout] test orders::market_if_touched::tests::test_display ... ok [INFO] [stdout] test orders::market::tests::test_positive_quantity_condition - should panic ... ok [INFO] [stdout] test orders::market_if_touched::tests::test_gtd_without_expire - should panic ... ok [INFO] [stdout] test orders::market_if_touched::tests::test_initialize ... ok [INFO] [stdout] test orders::market_if_touched::tests::test_market_if_touched_order_from_order_initialized ... ok [INFO] [stdout] test orders::market_if_touched::tests::test_market_if_touched_order_sets_slippage_when_filled ... ok [INFO] [stdout] test orders::market_if_touched::tests::test_market_if_touched_order_update ... ok [INFO] [stdout] test orders::market_if_touched::tests::test_quantity_zero - should panic ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_display ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_display_qty_gt_quantity - should panic ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_update ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_initialize ... ok [INFO] [stdout] test orders::stop_limit::tests::test_display ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_from_order_initialized ... ok [INFO] [stdout] test orders::stop_limit::tests::test_display_qty_negative_err - should panic ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_display_string ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_expire_time ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_expire_time ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_market_to_limit_order_sets_slippage_when_filled ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_from_order_initialized ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_post_only ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_trigger_instrument_id ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_gtd_without_expire - should panic ... ok [INFO] [stdout] test orders::stop_limit::tests::test_initialize ... ok [INFO] [stdout] test orders::market_to_limit::tests::test_quantity_zero - should panic ... ok [INFO] [stdout] test orders::stop_limit::tests::test_gtd_without_expire_time_err - should panic ... ok [INFO] [stdout] test orders::stop_limit::tests::test_display_qty_gt_quantity_err - should panic ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_reduce_only ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_update ... ok [INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_expire_time ... ok [INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_from_order_initialized ... ok [INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_is_triggered ... ok [INFO] [stdout] test orders::stop_market::tests::test_initialize ... ok [INFO] [stdout] test orders::stop_limit::tests::test_stop_limit_order_would_reduce_only ... ok [INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_update ... ok [INFO] [stdout] test orders::stop_market::tests::test_display ... ok [INFO] [stdout] test orders::tests::test_closing_side::case_1 ... ok [INFO] [stdout] test orders::tests::test_closing_side::case_3 ... ok [INFO] [stdout] test orders::tests::test_closing_side::case_2 ... ok [INFO] [stdout] test orders::stop_market::tests::test_quantity_zero_err - should panic ... ok [INFO] [stdout] test orders::tests::test_order_state_transition_to_canceled ... ok [INFO] [stdout] test orders::tests::test_signed_decimal_qty::case_1 ... ok [INFO] [stdout] test orders::tests::test_order_life_cycle_to_filled ... ok [INFO] [stdout] test orders::stop_market::tests::test_display_qty_gt_quantity_err - should panic ... ok [INFO] [stdout] test orders::tests::test_signed_decimal_qty::case_2 ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_1 ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_3 ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_2 ... ok [INFO] [stdout] test orders::stop_market::tests::test_gtd_without_expire_err - should panic ... ok [INFO] [stdout] test orders::stop_market::tests::test_stop_market_order_trigger_instrument_id ... ok [INFO] [stdout] test orders::tests::test_order_commission_calculation ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_4 ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_6 ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_7 ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_8 ... ok [INFO] [stdout] test orders::tests::test_order_is_child_order ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_initialize ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_display ... ok [INFO] [stdout] test orders::tests::test_order_is_secondary ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_gtd_without_expire_err - should panic ... ok [INFO] [stdout] test orders::tests::test_order_is_contingency ... ok [INFO] [stdout] test orders::tests::test_order_life_cycle_to_partially_filled ... ok [INFO] [stdout] test orders::tests::test_order_opposite_side::case_1 ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_display_qty_gt_quantity_err - should panic ... ok [INFO] [stdout] test orders::tests::test_order_opposite_side::case_2 ... ok [INFO] [stdout] test orders::tests::test_order_opposite_side::case_3 ... ok [INFO] [stdout] test orders::tests::test_order_is_primary ... ok [INFO] [stdout] test orders::tests::test_order_state_transition_denied ... ok [INFO] [stdout] test orders::tests::test_would_reduce_only::case_5 ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_quantity_zero_err - should panic ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_trailing_stop_limit_order_from_order_initialized ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_trailing_stop_limit_order_trigger_instrument_id ... ok [INFO] [stdout] test orders::trailing_stop_limit::tests::test_trailing_stop_limit_order_update ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_display ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_display_qty_gt_quantity_err - should panic ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_gtd_without_expire_err - should panic ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_initialize ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_expire_time ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_from_order_initialized ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_sets_slippage_when_filled ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_trigger_instrument_id ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_quantity_zero_err - should panic ... ok [INFO] [stdout] test orders::trailing_stop_market::tests::test_trailing_stop_market_order_update ... ok [INFO] [stdout] test position::tests::test_calculate_pnl_for_inverse1 ... ok [INFO] [stdout] test position::tests::test_calculate_pnl_for_inverse2 ... ok [INFO] [stdout] test position::tests::test_cache_purge_order_events ... ok [INFO] [stdout] test position::tests::test_calculate_pnl_for_short_position_loss ... ok [INFO] [stdout] test position::tests::test_calculate_pnl_for_short_position_winning ... ok [INFO] [stdout] test position::tests::test_calculate_pnl_for_long_position_loss ... ok [INFO] [stdout] test position::tests::test_calculate_pnl_for_long_position_win ... ok [INFO] [stdout] test position::tests::test_calculate_pnl_when_given_position_side_flat_returns_zero ... ok [INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_long_inverse ... ok [INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_short ... ok [INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_short_inverse ... ok [INFO] [stdout] test position::tests::test_position_filled_with_buy_order ... ok [INFO] [stdout] test position::tests::test_position_filled_with_buy_order_then_sell_order ... ok [INFO] [stdout] test position::tests::test_calculate_unrealized_pnl_for_long ... ok [INFO] [stdout] test position::tests::test_position_closed_and_reopened ... ok [INFO] [stdout] test position::tests::test_pnl_calculation_from_trading_technologies_example ... ok [INFO] [stdout] test position::tests::test_position_filled_with_no_change ... ok [INFO] [stdout] test position::tests::test_position_filled_with_sell_order ... ok [INFO] [stdout] test position::tests::test_position_long_display ... ok [INFO] [stdout] test position::tests::test_position_filled_with_sell_order_then_buy_order ... ok [INFO] [stdout] test position::tests::test_position_partial_fills_with_buy_order ... ok [INFO] [stdout] test position::tests::test_position_with_commission_none ... ok [INFO] [stdout] test position::tests::test_position_short_display ... ok [INFO] [stdout] test position::tests::test_position_with_commission_zero ... ok [INFO] [stdout] test position::tests::test_purge_all_events_returns_none_for_last_event_and_trade_id ... ok [INFO] [stdout] test position::tests::test_signed_qty_decimal_qty_for_equity::case_1 ... ok [INFO] [stdout] test position::tests::test_signed_qty_decimal_qty_for_equity::case_2 ... ok [INFO] [stdout] test reports::fill::tests::test_clone_and_equality ... ok [INFO] [stdout] test reports::fill::tests::test_display ... ok [INFO] [stdout] test reports::fill::tests::test_fill_report_new ... ok [INFO] [stdout] test reports::fill::tests::test_fill_report_new_with_generated_report_id ... ok [INFO] [stdout] test reports::fill::tests::test_fill_report_with_different_liquidity_sides ... ok [INFO] [stdout] test reports::fill::tests::test_fill_report_with_different_order_sides ... ok [INFO] [stdout] test reports::fill::tests::test_has_venue_position_id ... ok [INFO] [stdout] test reports::mass_status::tests::test_add_empty_reports ... ok [INFO] [stdout] test reports::mass_status::tests::test_add_fill_reports ... ok [INFO] [stdout] test reports::fill::tests::test_has_client_order_id ... ok [INFO] [stdout] test reports::mass_status::tests::test_comprehensive_mass_status ... ok [INFO] [stdout] test position::tests::test_position_long_with_multiple_filled_orders ... ok [INFO] [stdout] test position::tests::test_position_partial_fills_with_two_sell_orders ... ok [INFO] [stdout] test position::tests::test_two_trades_with_same_trade_id_error - should panic ... ok [INFO] [stdout] test reports::mass_status::tests::test_overwrite_order_reports ... ok [INFO] [stdout] test reports::mass_status::tests::test_add_order_reports ... ok [INFO] [stdout] test reports::fill::tests::test_serialization_roundtrip ... ok [INFO] [stdout] test reports::mass_status::tests::test_clone_and_equality ... ok [INFO] [stdout] test reports::mass_status::tests::test_empty_mass_status_accessors ... ok [INFO] [stdout] test reports::mass_status::tests::test_execution_mass_status_new ... ok [INFO] [stdout] test reports::mass_status::tests::test_display ... ok [INFO] [stdout] test position::tests::test_position_realized_pnl_with_interleaved_order_sides ... ok [INFO] [stdout] test reports::mass_status::tests::test_serialization_roundtrip ... ok [INFO] [stdout] test reports::mass_status::tests::test_add_position_reports ... ok [INFO] [stdout] test reports::mass_status::tests::test_add_multiple_fills_for_different_orders ... ok [INFO] [stdout] test reports::order::tests::test_clone_and_equality ... ok [INFO] [stdout] test reports::order::tests::test_display ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_builder_methods ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_different_order_types ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_different_statuses ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_new ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_partial_fill ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_with_all_timestamp_fields ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_with_generated_report_id ... ok [INFO] [stdout] test reports::position::tests::test_clone_and_equality ... ok [INFO] [stdout] test reports::mass_status::tests::test_execution_mass_status_with_generated_report_id ... ok [INFO] [stdout] test reports::position::tests::test_display ... ok [INFO] [stdout] test reports::position::tests::test_is_flat ... ok [INFO] [stdout] test reports::position::tests::test_has_venue_position_id ... ok [INFO] [stdout] test reports::order::tests::test_serialization_roundtrip ... ok [INFO] [stdout] test reports::position::tests::test_is_short ... ok [INFO] [stdout] test reports::position::tests::test_different_position_sides_not_equal ... ok [INFO] [stdout] test reports::position::tests::test_position_status_report_with_generated_report_id ... ok [INFO] [stdout] test reports::position::tests::test_signed_decimal_qty_calculation ... ok [INFO] [stdout] test reports::position::tests::test_serialization_roundtrip ... ok [INFO] [stdout] test types::balance::tests::test_account_balance_display ... ok [INFO] [stdout] test types::balance::tests::test_margin_balance_display ... ok [INFO] [stdout] test reports::position::tests::test_position_status_report_new_flat ... ok [INFO] [stdout] test types::balance::tests::test_account_balance_debug ... ok [INFO] [stdout] test types::balance::tests::test_margin_balance_equality ... ok [INFO] [stdout] test types::currency::tests::test_currency_partial_eq_only_checks_code ... ok [INFO] [stdout] test types::currency::tests::test_debug ... ok [INFO] [stdout] test types::currency::tests::test_display ... ok [INFO] [stdout] test reports::position::tests::test_is_long ... ok [INFO] [stdout] test types::currency::tests::test_equality ... ok [INFO] [stdout] test types::balance::tests::test_account_balance_equality ... ok [INFO] [stdout] test reports::position::tests::test_position_status_report_new_long ... ok [INFO] [stdout] test reports::position::tests::test_position_status_report_new_short ... ok [INFO] [stdout] test types::balance::tests::test_margin_balance_debug ... ok [INFO] [stdout] test reports::order::tests::test_order_status_report_with_optional_fields ... ok [INFO] [stdout] test types::currency::tests::test_invalid_currency_code - should panic ... ok [INFO] [stdout] test types::currency::tests::test_is_fiat ... ok [INFO] [stdout] test types::currency::tests::test_is_fiat_unknown_currency ... ok [INFO] [stdout] test types::currency::tests::test_new_for_crypto ... ok [INFO] [stdout] test types::currency::tests::test_serialization_deserialization ... ok [INFO] [stdout] test types::currency::tests::test_try_from_str_invalid ... ok [INFO] [stdout] test types::fixed::tests::test_basic_roundtrip::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_basic_roundtrip::case_2 ... ok [INFO] [stdout] test types::currency::tests::test_try_from_str_valid ... ok [INFO] [stdout] test types::fixed::tests::test_basic_roundtrip::case_3 ... ok [INFO] [stdout] test types::currency::tests::test_new_for_fiat ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_01 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_02 ... ok [INFO] [stdout] test types::currency::tests::test_register_no_overwrite ... ok [INFO] [stdout] test types::currency::tests::test_register_with_overwrite ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_04 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_06 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_07 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_05 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_10 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_08 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_11 ... ok [INFO] [stdout] test types::currency::tests::test_invalid_precision - should panic ... ok [INFO] [stdout] test types::currency::tests::test_is_commodity_backed ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_09 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_14 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_15 ... ok [INFO] [stdout] test types::currency::tests::test_is_crypto ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_16 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_17 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_03 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_12 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_13 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_20 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_18 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64::case_19 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_3 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_4 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_6 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_3 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_4 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_5 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_8 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_02 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_03 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_04 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_05 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_06 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_07 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_08 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_09 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_9 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_8 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_7 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_3 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_to_fixed::case_5 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_6 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_01_1 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_i64_with_precision::case_7 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_02__1 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_06__10 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_4 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_01 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_03_2 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_09_1_000 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64_to_fixed::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_10__1_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_04__2 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_01_0 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_02_1 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_03_2 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_05_10 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_04_3 ... ok [INFO] [stdout] test types::fixed::tests::test_f64_to_fixed_u64::case_10 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_05_10 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_14_10_000_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_07_100 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_15_100_000_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_09_100_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_16_1_000_000_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_06_100 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_10_1_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_11_10_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_07_1_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_08_10_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_i64_to_f64::value_08__100 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_17_10_000_000_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_13_1_000_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_18_100_000_000_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_19_1_000_000_000_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_large_value_roundtrip::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_large_value_roundtrip::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_fixed_u64_to_f64::value_12_100_000_000 ... ok [INFO] [stdout] test types::fixed::tests::test_invalid_precision ... ok [INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_4 ... ok [INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_5 ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_3 ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_3 ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_4 ... ok [INFO] [stdout] test types::fixed::tests::test_precision_boundaries ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_5 ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_9 ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_special_values ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_6 ... ok [INFO] [stdout] test types::fixed::tests::test_unsigned_basic_roundtrip::case_1 ... ok [INFO] [stdout] test types::fixed::tests::test_unsigned_basic_roundtrip::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_precision_specific_values::case_6 ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_7 ... ok [INFO] [stdout] test types::fixed::tests::test_rounding::case_8 ... ok [INFO] [stdout] test types::fixed::tests::test_unsigned_basic_roundtrip::case_3 ... ok [INFO] [stdout] test types::fixed::tests::test_valid_precision::case_2 ... ok [INFO] [stdout] test types::fixed::tests::test_valid_precision::case_1 ... ok [INFO] [stdout] test types::money::tests::test_add ... ok [INFO] [stdout] test types::money::tests::test_add_assign ... ok [INFO] [stdout] test types::money::tests::test_display ... ok [INFO] [stdout] test types::money::tests::test_debug ... ok [INFO] [stdout] test types::money::tests::test_check_positive_money::case_2 ... ok [INFO] [stdout] test types::money::tests::test_formatting_normal_precision::case_1 ... ok [INFO] [stdout] test types::money::tests::test_from_decimal_precision_preservation ... ok [INFO] [stdout] test types::money::tests::test_check_positive_money::case_1 ... ok [INFO] [stdout] test types::money::tests::test_check_positive_money::case_3 ... ok [INFO] [stdout] test types::money::tests::test_formatting_normal_precision::case_2 ... ok [INFO] [stdout] test types::money::tests::test_from_decimal_rounding ... ok [INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_1 ... ok [INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_2 ... ok [INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_3 ... ok [INFO] [stdout] test types::money::tests::test_from_str_scientific_notation::case_4 ... ok [INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_1 ... ok [INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_2 ... ok [INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_3 ... ok [INFO] [stdout] test types::money::tests::test_from_str_valid_input::case_4 ... ok [INFO] [stdout] test types::money::tests::test_from_str_with_underscores::case_1 ... ok [INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_2 - should panic ... ok [INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_1 - should panic ... ok [INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_4 - should panic ... ok [INFO] [stdout] test types::money::tests::test_from_str_invalid_input::case_3 - should panic ... ok [INFO] [stdout] test types::money::tests::test_money_division_by_f64 ... ok [INFO] [stdout] test types::money::tests::test_money_from_str_negative ... ok [INFO] [stdout] test types::money::tests::test_money_hash ... ok [INFO] [stdout] test types::money::tests::test_money_is_zero ... ok [INFO] [stdout] test types::money::tests::test_money_multiplication_by_f64 ... ok [INFO] [stdout] test types::money::tests::test_money_negation ... ok [INFO] [stdout] test types::money::tests::test_money_new_btc ... ok [INFO] [stdout] test types::money::tests::test_money_new_usd ... ok [INFO] [stdout] test types::money::tests::test_money_serialization_deserialization ... ok [INFO] [stdout] test types::money::tests::test_sub ... ok [INFO] [stdout] test types::money::tests::test_sub_assign ... ok [INFO] [stdout] test types::money::tests::test_with_maximum_value ... ok [INFO] [stdout] test types::money::tests::test_money_comparisons ... ok [INFO] [stdout] test types::money::tests::test_with_minimum_value ... ok [INFO] [stdout] test types::money::tests::test_from_str_with_underscores::case_3 ... ok [INFO] [stdout] test types::money::tests::test_from_str_with_underscores::case_2 ... ok [INFO] [stdout] test types::money::tests::test_zero_constructor ... ok [INFO] [stdout] test types::money::tests::test_money_different_currency_addition - should panic ... ok [INFO] [stdout] test types::money::tests::prop_money_zero_identity ... ok [INFO] [stdout] test types::price::property_tests::prop_price_addition_subtraction_inverse ... ok [INFO] [stdout] test types::price::property_tests::prop_price_serde_round_trip ... ok [INFO] [stdout] test types::price::tests::test_assignment_operators ... ok [INFO] [stdout] test types::price::tests::test_basic_arithmetic ... ok [INFO] [stdout] test types::price::tests::test_construction ... ok [INFO] [stdout] test types::price::tests::test_decimal_conversions ... ok [INFO] [stdout] test types::price::tests::test_decode_raw_price_i64 ... ok [INFO] [stdout] test types::price::tests::test_deref ... ok [INFO] [stdout] test types::price::tests::test_equality_and_comparisons ... ok [INFO] [stdout] test types::price::tests::test_f64_operations ... ok [INFO] [stdout] test types::price::tests::test_from_decimal_precision_preservation ... ok [INFO] [stdout] test types::price::tests::test_from_decimal_rounding ... ok [INFO] [stdout] test types::price::tests::test_from_raw ... ok [INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_1 ... ok [INFO] [stdout] test types::money::tests::prop_money_addition_commutative ... ok [INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_3 ... ok [INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_4 ... ok [INFO] [stdout] test types::price::tests::test_from_str_with_underscores::case_1 ... ok [INFO] [stdout] test types::price::tests::test_from_str_scientific_notation::case_2 ... ok [INFO] [stdout] test types::price::tests::test_from_str_with_underscores::case_2 ... ok [INFO] [stdout] test types::price::tests::test_from_str_with_underscores::case_3 ... ok [INFO] [stdout] test types::price::tests::test_hash ... ok [INFO] [stdout] test types::price::tests::test_infinity_validation ... ok [INFO] [stdout] test types::price::property_tests::prop_price_string_parsing_precision ... ok [INFO] [stdout] test types::price::tests::test_invalid_precision_max - should panic ... ok [INFO] [stdout] test types::price::tests::test_invalid_precision_from_raw - should panic ... ok [INFO] [stdout] test types::price::tests::test_invalid_precision_new - should panic ... ok [INFO] [stdout] test types::price::tests::test_invalid_precision_zero - should panic ... ok [INFO] [stdout] test types::price::tests::test_is_positive_ok ... ok [INFO] [stdout] test types::price::tests::test_invalid_precision_min - should panic ... ok [INFO] [stdout] test types::price::tests::test_is_positive_rejects_non_positive - should panic ... ok [INFO] [stdout] test types::price::tests::test_max_value_exceeded - should panic ... ok [INFO] [stdout] test types::price::tests::test_is_positive_rejects_undefined - should panic ... ok [INFO] [stdout] test types::price::tests::test_min_constructor ... ok [INFO] [stdout] test types::price::tests::test_min_value_exceeded - should panic ... ok [INFO] [stdout] test types::price::tests::test_nan_validation ... ok [INFO] [stdout] test types::price::tests::test_negative_price_in_range ... ok [INFO] [stdout] test types::price::property_tests::prop_price_arithmetic_associative ... ok [INFO] [stdout] test types::money::tests::prop_money_decimal_conversion ... ok [INFO] [stdout] test types::price::tests::test_negative_price_from_str ... ok [INFO] [stdout] test types::price::tests::test_new_checked ... ok [INFO] [stdout] test types::price::tests::test_price_serde_json_round_trip ... ok [INFO] [stdout] test types::price::tests::test_max_constructor ... ok [INFO] [stdout] test types::price::tests::test_special_values ... ok [INFO] [stdout] test types::price::tests::test_precision_mismatch_sub - should panic ... ok [INFO] [stdout] test types::price::tests::test_string_formatting ... ok [INFO] [stdout] test types::price::tests::test_string_formatting_precision_handling::case_1 ... ok [INFO] [stdout] test types::price::tests::test_precision_mismatch_add - should panic ... ok [INFO] [stdout] test types::price::tests::test_string_formatting_precision_handling::case_2 ... ok [INFO] [stdout] test types::price::tests::test_string_parsing ... ok [INFO] [stdout] test types::price::tests::test_string_parsing_errors ... ok [INFO] [stdout] test types::price::tests::test_zero_constructor ... ok [INFO] [stdout] test types::money::tests::prop_money_negation_inverse ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_addition_subtraction_inverse ... ok [INFO] [stdout] test types::price::property_tests::prop_price_precision_information_preservation ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_arithmetic_bounds ... ok [INFO] [stdout] test types::money::tests::prop_money_construction_roundtrip ... ok [INFO] [stdout] test types::quantity::tests::test_add ... ok [INFO] [stdout] test types::quantity::tests::test_add_assign ... ok [INFO] [stdout] test types::quantity::tests::test_check_quantity_positive - should panic ... ok [INFO] [stdout] test types::price::property_tests::prop_price_arithmetic_bounds ... ok [INFO] [stdout] test types::quantity::tests::test_check_quantity_positive_ok ... ok [INFO] [stdout] test types::quantity::tests::test_comparisons ... ok [INFO] [stdout] test types::quantity::tests::test_debug ... ok [INFO] [stdout] test types::quantity::tests::test_debug_display_precision_handling::case_2 ... ok [INFO] [stdout] test types::quantity::tests::test_display ... ok [INFO] [stdout] test types::quantity::tests::test_from_decimal_precision_preservation ... ok [INFO] [stdout] test types::quantity::tests::test_from_decimal_rounding ... ok [INFO] [stdout] test types::money::tests::prop_money_string_roundtrip ... ok [INFO] [stdout] test types::quantity::tests::test_from_i64 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_errors ... ok [INFO] [stdout] test types::quantity::tests::test_debug_display_precision_handling::case_1 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_1 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_2 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_3 ... ok [INFO] [stdout] test types::quantity::tests::test_from_i32 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_invalid_input - should panic ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_4 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_scientific_notation::case_5 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_valid_input::case_1 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_valid_input::case_2 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_valid_input::case_3 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_with_underscores::case_1 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_with_underscores::case_2 ... ok [INFO] [stdout] test types::quantity::tests::test_from_str_with_underscores::case_3 ... ok [INFO] [stdout] test types::quantity::tests::test_from_u32 ... ok [INFO] [stdout] test types::quantity::tests::test_from_u64 ... ok [INFO] [stdout] test types::quantity::tests::test_hash ... ok [INFO] [stdout] test types::quantity::tests::test_invalid_precision_from_raw - should panic ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_string_parsing_precision ... ok [INFO] [stdout] test types::quantity::tests::test_invalid_precision_new - should panic ... ok [INFO] [stdout] test types::quantity::tests::test_is_zero ... ok [INFO] [stdout] test types::quantity::tests::test_invalid_precision_zero - should panic ... ok [INFO] [stdout] test types::quantity::tests::test_mul_assign ... ok [INFO] [stdout] test types::quantity::tests::test_mul ... ok [INFO] [stdout] test types::quantity::tests::test_negative_quantity_validation ... ok [INFO] [stdout] test types::quantity::tests::test_new ... ok [INFO] [stdout] test types::quantity::tests::test_new_from_str ... ok [INFO] [stdout] test types::money::tests::prop_money_arithmetic_with_f64 ... ok [INFO] [stdout] test types::money::tests::prop_money_subtraction_inverse ... ok [INFO] [stdout] test types::quantity::tests::test_new_non_zero_exceeds_max ... ok [INFO] [stdout] test types::quantity::tests::test_new_non_zero_invalid_precision ... ok [INFO] [stdout] test types::quantity::tests::test_new_non_zero_negative ... ok [INFO] [stdout] test types::quantity::tests::test_new_non_zero_rounds_to_zero ... ok [INFO] [stdout] test types::quantity::tests::test_new_non_zero_ok ... ok [INFO] [stdout] test types::quantity::tests::test_quantity_serde_json_round_trip ... ok [INFO] [stdout] test types::quantity::tests::test_precision_mismatch_mul - should panic ... ok [INFO] [stdout] test types::quantity::tests::test_sub ... ok [INFO] [stdout] test types::quantity::tests::test_to_formatted_string ... ok [INFO] [stdout] test types::quantity::tests::test_undefined ... ok [INFO] [stdout] test types::quantity::tests::test_with_maximum_value ... ok [INFO] [stdout] test types::quantity::tests::test_with_minimum_positive_value ... ok [INFO] [stdout] test types::quantity::tests::test_precision ... ok [INFO] [stdout] test types::quantity::tests::test_new_non_zero_zero_input ... ok [INFO] [stdout] test types::quantity::tests::test_precision_mismatch_add - should panic ... ok [INFO] [stdout] test types::quantity::tests::test_precision_mismatch_sub - should panic ... ok [INFO] [stdout] test types::quantity::tests::test_zero ... ok [INFO] [stdout] test venues::tests::test_venue_constants_lazy_initialization ... ok [INFO] [stdout] test venues::tests::test_venue_constants_uniqueness ... ok [INFO] [stdout] test venues::tests::test_venue_map_contains_all_venues ... ok [INFO] [stdout] test venues::tests::test_venue_map_lookup_nonexistent ... ok [INFO] [stdout] test venues::tests::test_venue_constants_thread_safety ... ok [INFO] [stdout] test types::quantity::tests::test_sub_assign ... ok [INFO] [stdout] test venues::tests::test_venue_map_values_match_constants ... ok [INFO] [stdout] test venues::tests::test_all_venue_strings ... ok [INFO] [stdout] test venues::tests::test_venue_constants ... ok [INFO] [stdout] test venues::tests::test_venue_map_thread_safety ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_arithmetic_associative ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_zero_addition_identity ... ok [INFO] [stdout] test types::quantity::tests::test_with_minimum_value ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_ordering_transitive ... ok [INFO] [stdout] test types::price::property_tests::prop_price_ordering_transitive ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_multiplication_non_negative ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_serde_round_trip ... ok [INFO] [stdout] test types::quantity::property_tests::prop_quantity_precision_information_preservation ... ok [INFO] [stdout] test types::money::tests::prop_money_addition_associative ... ok [INFO] [stdout] test types::money::tests::prop_money_comparison_consistency ... ok [INFO] [stdout] test orderbook::tests::prop_test_l1_book_operations ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1364 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.98s [INFO] [stdout] [INFO] [stderr] Doc-tests nautilus_model [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "96b8fd07bf93cc83bc80899c06f1b9b4f4d7a5dd32dbde6a080636621efd52d0", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "96b8fd07bf93cc83bc80899c06f1b9b4f4d7a5dd32dbde6a080636621efd52d0", kill_on_drop: false }` [INFO] [stdout] 96b8fd07bf93cc83bc80899c06f1b9b4f4d7a5dd32dbde6a080636621efd52d0