[INFO] cloning repository https://github.com/royalbit/forge [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/royalbit/forge" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Froyalbit%2Fforge", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Froyalbit%2Fforge'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] ad07c1d7bf74740b9584f9f69f45b80b9d3e7f21 [INFO] testing royalbit/forge against try#28f95933dc0727396c07b48d0a8cb5211b7fb472 for pr-154065-2 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Froyalbit%2Fforge" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'... [INFO] [stderr] done. [INFO] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml [INFO] started tweaking git repo https://github.com/royalbit/forge [INFO] finished tweaking git repo https://github.com/royalbit/forge [INFO] tweaked toml for git repo https://github.com/royalbit/forge written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/royalbit/forge on toolchain 28f95933dc0727396c07b48d0a8cb5211b7fb472 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/royalbit/forge 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" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 5c1c2e330f2773e6711a9bbe800365e89dae0ade98337ab3b709392a157160b5 [INFO] running `Command { std: "docker" "start" "-a" "5c1c2e330f2773e6711a9bbe800365e89dae0ade98337ab3b709392a157160b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5c1c2e330f2773e6711a9bbe800365e89dae0ade98337ab3b709392a157160b5", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5c1c2e330f2773e6711a9bbe800365e89dae0ade98337ab3b709392a157160b5", kill_on_drop: false }` [INFO] [stdout] 5c1c2e330f2773e6711a9bbe800365e89dae0ade98337ab3b709392a157160b5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 598e5590b3384f888da229a817f029e40cfdacc4cda8bc8c1723b2ff1fcae20a [INFO] running `Command { std: "docker" "start" "-a" "598e5590b3384f888da229a817f029e40cfdacc4cda8bc8c1723b2ff1fcae20a", kill_on_drop: false }` [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling foldhash v0.2.0 [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling aws-lc-rs v1.16.1 [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling rustls v0.23.37 [INFO] [stderr] Compiling sync_wrapper v1.0.2 [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling ucd-trie v0.1.7 [INFO] [stderr] Compiling ahash v0.8.12 [INFO] [stderr] Compiling safe_arch v0.7.4 [INFO] [stderr] Compiling http-body-util v0.1.3 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling zlib-rs v0.6.3 [INFO] [stderr] Compiling bumpalo v3.20.2 [INFO] [stderr] Compiling openssl-probe v0.2.1 [INFO] [stderr] Compiling simd-adler32 v0.3.8 [INFO] [stderr] Compiling pest v2.8.6 [INFO] [stderr] Compiling rustls-native-certs v0.8.3 [INFO] [stderr] Compiling zopfli v0.8.3 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling wide v0.7.33 [INFO] [stderr] Compiling typed-path v0.12.3 [INFO] [stderr] Compiling borrow-or-share v0.2.4 [INFO] [stderr] Compiling linux-raw-sys v0.12.1 [INFO] [stderr] Compiling unicode-general-category v1.1.0 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling mio v1.1.1 [INFO] [stderr] Compiling jobserver v0.1.34 [INFO] [stderr] Compiling errno v0.3.14 [INFO] [stderr] Compiling cc v1.2.57 [INFO] [stderr] Compiling signal-hook-registry v1.4.8 [INFO] [stderr] Compiling socket2 v0.6.3 [INFO] [stderr] Compiling num-integer v0.1.46 [INFO] [stderr] Compiling num-complex v0.4.6 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling num-bigint v0.4.6 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling pest_meta v2.8.6 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling num-iter v0.1.45 [INFO] [stderr] Compiling approx v0.5.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling inotify-sys v0.1.5 [INFO] [stderr] Compiling parking_lot_core v0.9.12 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling inotify v0.11.1 [INFO] [stderr] Compiling rand_distr v0.4.3 [INFO] [stderr] Compiling cmake v0.1.57 [INFO] [stderr] Compiling simba v0.9.1 [INFO] [stderr] Compiling parking_lot v0.12.5 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling notify-types v2.1.0 [INFO] [stderr] Compiling outref v0.5.2 [INFO] [stderr] Compiling rmcp v1.2.0 [INFO] [stderr] Compiling debug_unsafe v0.1.4 [INFO] [stderr] Compiling vsimd v0.8.0 [INFO] [stderr] Compiling dyn-clone v1.0.20 [INFO] [stderr] Compiling notify v8.2.0 [INFO] [stderr] Compiling num-rational v0.4.2 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling atoi_simd v0.17.0 [INFO] [stderr] Compiling aws-lc-sys v0.38.0 [INFO] [stderr] Compiling uuid-simd v0.8.0 [INFO] [stderr] Compiling hashbrown v0.15.5 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling num v0.4.3 [INFO] [stderr] Compiling fraction v0.15.3 [INFO] [stderr] Compiling quick-xml v0.39.2 [INFO] [stderr] Compiling codepage v0.1.2 [INFO] [stderr] Compiling assert_approx_eq v1.1.0 [INFO] [stderr] Compiling pastey v0.2.1 [INFO] [stderr] Compiling bytecount v0.6.9 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling fast-float2 v0.2.3 [INFO] [stderr] Compiling matchers v0.2.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling fancy-regex v0.17.0 [INFO] [stderr] Compiling matchit v0.8.4 [INFO] [stderr] Compiling fixedbitset v0.5.7 [INFO] [stderr] Compiling num-cmp v0.1.0 [INFO] [stderr] Compiling notify-debouncer-mini v0.7.0 [INFO] [stderr] Compiling synstructure v0.13.2 [INFO] [stderr] Compiling darling_core v0.23.0 [INFO] [stderr] Compiling flate2 v1.1.9 [INFO] [stderr] Compiling serde_derive_internals v0.29.1 [INFO] [stderr] Compiling pest_generator v2.8.6 [INFO] [stderr] Compiling petgraph v0.8.3 [INFO] [stderr] Compiling rand_distr v0.6.0 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling zip v7.2.0 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling zerofrom-derive v0.1.6 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling yoke-derive v0.8.1 [INFO] [stderr] Compiling zerovec-derive v0.11.2 [INFO] [stderr] Compiling tracing-attributes v0.1.31 [INFO] [stderr] Compiling tokio-macros v2.6.1 [INFO] [stderr] Compiling displaydoc v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.32 [INFO] [stderr] Compiling ref-cast-impl v1.0.25 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling ref-cast v1.0.25 [INFO] [stderr] Compiling schemars_derive v1.2.1 [INFO] [stderr] Compiling async-trait v0.1.89 [INFO] [stderr] Compiling nalgebra v0.33.2 [INFO] [stderr] Compiling tokio v1.50.0 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling pest_derive v2.8.6 [INFO] [stderr] Compiling rust_xlsxwriter v0.94.0 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling zerofrom v0.1.6 [INFO] [stderr] Compiling yoke v0.8.1 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling darling_macro v0.23.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling zerovec v0.11.5 [INFO] [stderr] Compiling zerotrie v0.2.3 [INFO] [stderr] Compiling darling v0.23.0 [INFO] [stderr] Compiling axum-core v0.5.6 [INFO] [stderr] Compiling rmcp-macros v1.2.0 [INFO] [stderr] Compiling tracing-subscriber v0.3.23 [INFO] [stderr] Compiling tinystr v0.8.2 [INFO] [stderr] Compiling potential_utf v0.1.4 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling icu_collections v2.1.1 [INFO] [stderr] Compiling icu_locale_core v2.1.1 [INFO] [stderr] Compiling icu_provider v2.1.1 [INFO] [stderr] Compiling icu_normalizer v2.1.1 [INFO] [stderr] Compiling icu_properties v2.1.2 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling fluent-uri v0.4.1 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling email_address v0.2.9 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling serde_yaml_ng v0.10.0 [INFO] [stderr] Compiling calamine v0.34.0 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling tower-http v0.6.8 [INFO] [stderr] Compiling h2 v0.4.13 [INFO] [stderr] Compiling schemars v1.2.1 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling referencing v0.45.0 [INFO] [stderr] Compiling xlformula_engine v0.1.18 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling statrs v0.18.0 [INFO] [stderr] Compiling hyper v1.8.1 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.8.8 [INFO] [stderr] Compiling rustls-webpki v0.103.9 [INFO] [stderr] Compiling tokio-rustls v0.26.4 [INFO] [stderr] Compiling rustls-platform-verifier v0.6.2 [INFO] [stderr] Compiling hyper-rustls v0.27.7 [INFO] [stderr] Compiling reqwest v0.13.2 [INFO] [stderr] Compiling jsonschema v0.45.0 [INFO] [stderr] Compiling mollendorff-forge v10.0.0-beta.8 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 10s [INFO] running `Command { std: "docker" "inspect" "598e5590b3384f888da229a817f029e40cfdacc4cda8bc8c1723b2ff1fcae20a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "598e5590b3384f888da229a817f029e40cfdacc4cda8bc8c1723b2ff1fcae20a", kill_on_drop: false }` [INFO] [stdout] 598e5590b3384f888da229a817f029e40cfdacc4cda8bc8c1723b2ff1fcae20a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cea52f285aa3466b194cc33f89350f52e28bcc19e6eea5b7e6b64b1df533646c [INFO] running `Command { std: "docker" "start" "-a" "cea52f285aa3466b194cc33f89350f52e28bcc19e6eea5b7e6b64b1df533646c", kill_on_drop: false }` [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling cargo-husky v1.5.0 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling diff v0.1.13 [INFO] [stderr] Compiling yansi v1.0.1 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling pretty_assertions v1.4.1 [INFO] [stderr] Compiling mollendorff-forge v10.0.0-beta.8 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 28.50s [INFO] running `Command { std: "docker" "inspect" "cea52f285aa3466b194cc33f89350f52e28bcc19e6eea5b7e6b64b1df533646c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cea52f285aa3466b194cc33f89350f52e28bcc19e6eea5b7e6b64b1df533646c", kill_on_drop: false }` [INFO] [stdout] cea52f285aa3466b194cc33f89350f52e28bcc19e6eea5b7e6b64b1df533646c [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+28f95933dc0727396c07b48d0a8cb5211b7fb472" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d996560560373f8d9abc4a70c7574311ceb56b1c5e9a4f7290c22401e8fc0e7e [INFO] running `Command { std: "docker" "start" "-a" "d996560560373f8d9abc4a70c7574311ceb56b1c5e9a4f7290c22401e8fc0e7e", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.53s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/mollendorff_forge-e601ea2bcfd9a730) [INFO] [stdout] [INFO] [stdout] running 1366 tests [INFO] [stdout] test api::handlers::tests::test_api_response_error_serializes_without_data ... ok [INFO] [stdout] test api::handlers::tests::test_api_response_err_creates_error_response ... ok [INFO] [stdout] test api::handlers::tests::test_api_response_request_id_is_unique ... ok [INFO] [stdout] test api::handlers::tests::test_api_response_serializes_without_none_fields ... ok [INFO] [stdout] test api::handlers::tests::test_api_response_ok_creates_success_response ... ok [INFO] [stdout] test api::handlers::tests::test_api_response_ok_with_struct ... ok [INFO] [stdout] test api::handlers::tests::test_audit_response_default ... ok [INFO] [stdout] test api::handlers::tests::test_calculate_response_serialize ... ok [INFO] [stdout] test api::handlers::tests::test_audit_request_deserialize ... ok [INFO] [stdout] test api::handlers::tests::test_calculate_request_deserialize_with_dry_run ... ok [INFO] [stdout] test api::handlers::tests::test_calculate_response_default ... ok [INFO] [stdout] test api::handlers::tests::test_calculate_handler_nonexistent ... ok [INFO] [stdout] test api::handlers::tests::test_calculate_request_deserialize_dry_run_defaults_false ... ok [INFO] [stdout] test api::handlers::tests::test_endpoint_info_serialize ... ok [INFO] [stdout] test api::handlers::tests::test_health_response_serialize ... ok [INFO] [stdout] test api::handlers::tests::test_root_response_has_all_endpoints ... ok [INFO] [stdout] test api::handlers::tests::test_health_handler ... ok [INFO] [stdout] test api::handlers::tests::test_export_handler_nonexistent ... ok [INFO] [stdout] test api::handlers::tests::test_export_response_default ... ok [INFO] [stdout] test api::handlers::tests::test_validate_request_deserialize ... ok [INFO] [stdout] test api::handlers::tests::test_export_request_deserialize ... ok [INFO] [stdout] test api::handlers::tests::test_validate_handler_nonexistent_file ... ok [INFO] [stdout] test api::handlers::tests::test_version_handler ... ok [INFO] [stdout] test api::handlers::tests::test_version_response_serialize ... ok [INFO] [stdout] test api::server::tests::test_app_state_clone ... ok [INFO] [stdout] test api::server::tests::test_app_state_in_arc ... ok [INFO] [stdout] test api::server::tests::test_app_state_version ... ok [INFO] [stdout] test api::server::tests::test_config_address_format ... ok [INFO] [stdout] test api::server::tests::test_build_router ... ok [INFO] [stdout] test api::handlers::tests::test_import_handler_nonexistent ... ok [INFO] [stdout] test api::handlers::tests::test_import_request_deserialize ... ok [INFO] [stdout] test api::handlers::tests::test_import_response_default ... ok [INFO] [stdout] test api::handlers::tests::test_root_handler ... ok [INFO] [stdout] test api::handlers::tests::test_validate_response_serialize ... ok [INFO] [stdout] test api::handlers::tests::test_validate_response_default ... ok [INFO] [stdout] test api::server::tests::test_default_config ... ok [INFO] [stdout] test api::server::tests::test_config_clone ... ok [INFO] [stdout] test api::handlers::tests::test_audit_handler_nonexistent ... ok [INFO] [stdout] test bayesian::config::config_tests::test_empty_network_rejected ... ok [INFO] [stdout] test api::server::tests::test_router_not_found ... ok [INFO] [stdout] test bayesian::config::config_tests::test_missing_parent_rejected ... ok [INFO] [stdout] test api::server::tests::test_router_health_endpoint ... ok [INFO] [stdout] test api::server::tests::test_router_root_endpoint ... ok [INFO] [stdout] test api::server::tests::test_config_custom_values ... ok [INFO] [stdout] test api::server::tests::test_socket_addr_parsing_ipv6 ... ok [INFO] [stdout] test bayesian::config::config_tests::test_invalid_prior_sum_rejected ... ok [INFO] [stdout] test api::server::tests::test_socket_addr_parsing ... ok [INFO] [stdout] test bayesian::config::config_tests::test_config_validation ... ok [INFO] [stdout] test api::server::tests::test_cors_layer_creation ... ok [INFO] [stdout] test bayesian::config::config_tests::test_topological_order ... ok [INFO] [stdout] test bayesian::engine::engine_tests::test_engine_creation ... ok [INFO] [stdout] test bayesian::engine::engine_tests::test_marginal_query ... ok [INFO] [stdout] test bayesian::engine::engine_tests::test_evidence_query ... ok [INFO] [stdout] test api::server::tests::test_router_version_endpoint ... ok [INFO] [stdout] test bayesian::inference::inference_tests::test_evidence_query ... ok [INFO] [stdout] test bayesian::engine::engine_tests::test_query_all ... ok [INFO] [stdout] test bayesian::engine::engine_tests::test_json_export ... ok [INFO] [stdout] test bayesian::engine::engine_tests::test_most_likely_explanation ... ok [INFO] [stdout] test bayesian::inference::inference_tests::test_marginal_query ... ok [INFO] [stdout] test bayesian::inference::inference_tests::test_prior_query ... ok [INFO] [stdout] test bayesian::tests::test_adr_credit_risk_example ... ok [INFO] [stdout] test bayesian::tests::test_chain_network ... ok [INFO] [stdout] test bayesian::config::config_tests::test_root_nodes ... ok [INFO] [stdout] test bayesian::tests::test_evidence_effect ... ok [INFO] [stdout] test bayesian::engine::engine_tests::test_yaml_export ... ok [INFO] [stdout] test bootstrap::config::config_tests::test_single_observation_rejected ... ok [INFO] [stdout] test bayesian::tests::test_probability_normalization ... ok [INFO] [stdout] test bootstrap::config::config_tests::test_config_validation ... ok [INFO] [stdout] test bootstrap::config::config_tests::test_empty_data_rejected ... ok [INFO] [stdout] test bootstrap::config::config_tests::test_invalid_confidence_rejected ... ok [INFO] [stdout] test bootstrap::config::config_tests::test_invalid_percentile_rejected ... ok [INFO] [stdout] test bayesian::tests::test_conditional_independence ... ok [INFO] [stdout] test bayesian::tests::test_json_with_evidence ... ok [INFO] [stdout] test bayesian::tests::test_pgmpy_equivalence ... ok [INFO] [stdout] test bootstrap::tests::test_json_export ... ok [INFO] [stdout] test bootstrap::engine::engine_tests::test_yaml_export ... ok [INFO] [stdout] test bootstrap::engine::engine_tests::test_reproducibility ... ok [INFO] [stdout] test bootstrap::tests::test_min_max_bootstrap ... ok [INFO] [stdout] test api::handlers::tests::test_calculate_handler_dry_run ... ok [INFO] [stdout] test bootstrap::engine::engine_tests::test_bootstrap_mean ... ok [INFO] [stdout] test api::server::tests::test_router_calculate_endpoint ... ok [INFO] [stdout] test api::handlers::tests::test_audit_handler ... ok [INFO] [stdout] test cli::commands::examples::tests::test_all_examples_have_forge_version ... ok [INFO] [stdout] test api::handlers::tests::test_validate_handler_valid_file ... ok [INFO] [stdout] test cli::commands::examples::tests::test_examples_json_mode ... ok [INFO] [stdout] test cli::commands::examples::tests::test_examples_list_mode ... ok [INFO] [stdout] test cli::commands::examples::tests::test_example_count ... ok [INFO] [stdout] test cli::commands::examples::tests::test_examples_unknown_name ... ok [INFO] [stdout] test cli::commands::examples::tests::test_examples_show_specific ... ok [INFO] [stdout] test cli::commands::prediction::tests::test_decision_tree_config_parsing ... ok [INFO] [stdout] test cli::commands::prediction::tests::test_scenarios_config_parsing ... ok [INFO] [stdout] test cli::commands::schema::tests::test_schema_list_mode ... ok [INFO] [stdout] test cli::commands::prediction::tests::test_bootstrap_config_parsing ... ok [INFO] [stdout] test cli::commands::schema::tests::test_schema_v1_is_valid_json ... ok [INFO] [stdout] test cli::commands::schema::tests::test_schema_v5_is_valid_json ... ok [INFO] [stdout] test api::handlers::tests::test_export_handler ... ok [INFO] [stdout] test cli::commands::schema::tests::test_schema_v1_output ... ok [INFO] [stdout] test cli::commands::schema::tests::test_schema_version_aliases ... ok [INFO] [stdout] test cli::commands::schema::tests::test_schema_v5_output ... ok [INFO] [stdout] test cli::commands::simulate::tests::test_parse_monte_carlo_config_defaults ... ok [INFO] [stdout] test cli::commands::simulate::tests::test_parse_monte_carlo_config ... ok [INFO] [stdout] test cli::commands::simulate::tests::test_simulate_with_mc_distributions ... ok [INFO] [stdout] test cli::commands::update::tests::test_current_version ... ok [INFO] [stdout] test cli::commands::update::tests::test_detect_platform ... ok [INFO] [stdout] test cli::commands::update::tests::test_find_platform_asset ... ok [INFO] [stdout] test cli::commands::update::tests::test_is_newer_version_major ... ok [INFO] [stdout] test cli::commands::update::tests::test_is_newer_version_minor ... ok [INFO] [stdout] test cli::commands::update::tests::test_is_newer_version_patch ... ok [INFO] [stdout] test cli::commands::update::tests::test_is_newer_version_prerelease ... ok [INFO] [stdout] test cli::commands::update::tests::test_is_newer_version_different_lengths ... ok [INFO] [stdout] test cli::commands::upgrade::auto_upgrade_tests::test_needs_schema_upgrade_current_version ... ok [INFO] [stdout] test cli::commands::upgrade::auto_upgrade_tests::test_needs_schema_upgrade_no_version ... ok [INFO] [stdout] test cli::commands::upgrade::auto_upgrade_tests::test_needs_schema_upgrade_old_version ... ok [INFO] [stdout] test cli::commands::upgrade::auto_upgrade_tests::test_needs_schema_upgrade_skips_multi_doc ... ok [INFO] [stdout] test cli::commands::upgrade::auto_upgrade_tests::test_needs_schema_upgrade_v4_version ... ok [INFO] [stdout] test cli::commands::upgrade::auto_upgrade_tests::test_auto_upgrade_schema_upgrades_file ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_ifs_first_true ... ok [INFO] [stdout] test bootstrap::tests::test_variance_bootstrap ... ok [INFO] [stdout] test bootstrap::tests::test_bias_estimation ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_ifs_second_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_ifs_with_and ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_ifs_with_comparison ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_ifs_with_or ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_let_dependent ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_let_single ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_let_complex ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_let_two_vars ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_let_with_sum ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_let_nested ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_switch_first ... ok [INFO] [stdout] test bootstrap::engine::engine_tests::test_bootstrap_median ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_switch_numeric ... ok [INFO] [stdout] test bootstrap::tests::test_std_bootstrap ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_switch_default ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::edge_case_tests::test_switch_last ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_let_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_lambda_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_let_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_let_simple ... ok [INFO] [stdout] test cli::commands::examples::tests::test_all_examples_are_valid_yaml ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_let_function_simple ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_switch_default_value ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_lambda_with_multiple_args ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_switch_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_switch_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_lambda_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_switch_match_first ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_switch_insufficient_args ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_lambda_single_param ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_let_with_aggregation ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_let_multiple_vars ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::tests::test_let ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::tests::test_lambda ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::tests::test_nested_functions ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::tests::test_switch ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_aggregation_max_min ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_avg_aggregation_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::advanced::integration_tests::test_switch_with_default ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_aggregation_sum ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_count_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_count_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_counta_with_empty_strings ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_counta_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_countblank_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_max_aggregation_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_empty_array_median ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_median_aggregation_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_median_even_array_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_maxifs_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_median_even_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_aggregation_average ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_large_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_countunique_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_median_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_median_odd_count ... ok [INFO] [stdout] test api::server::tests::test_router_validate_endpoint ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_minifs_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_min_aggregation_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_rank_eq_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_product_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_sum_aggregation_simple ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_sum_empty_table ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_aggregation_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_aggregation_with_array ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_sumproduct_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_aggregation_with_scalars ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_count_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_median ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_counta ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_product ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::tests::test_sum_empty ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::edge_case_tests::test_filter_first_only ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::edge_case_tests::test_filter_greater ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::edge_case_tests::test_filter_less ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::integration_tests::test_filter_function_rowwise ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::tests::test_filter_all_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_randarray_function_larger_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::edge_case_tests::test_filter_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_rows_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::edge_case_tests::test_filter_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::tests::test_filter_all_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_randarray_function_range ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::filter::tests::test_filter ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_sequence_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::aggregation::integration_tests::test_small_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_sequence_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_sequence_function_zero_start ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_sequence_single ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_sequence_with_start ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::edge_case_tests::test_sequence_with_step ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::integration_tests::test_sequence_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::integration_tests::test_sequence_function_with_start_step ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::tests::test_sequence_with_params ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::integration_tests::test_randarray_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::sort::edge_case_tests::test_sort_and_min ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::tests::test_randarray ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::sort::edge_case_tests::test_sort_ascending_last ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::sort::edge_case_tests::test_sort_ascending_first ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::sort::tests::test_sort ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::sort::edge_case_tests::test_sort_preserves_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::sort::integration_tests::test_sort_function_coverage ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::tests::test_sequence ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_all_diff ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_all_same ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_in_expression ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_mixed ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_numbers ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::generators::tests::test_randarray_with_range ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_numbers_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_empty_text_values ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_countunique_with_dates ... ok [INFO] [stdout] test bootstrap::engine::engine_tests::test_r_boot_equivalence ... ok [INFO] [stdout] test bootstrap::tests::test_r_boot_package_validation ... ok [INFO] [stdout] test bootstrap::tests::test_skewed_data ... ok [INFO] [stdout] test bootstrap::engine::engine_tests::test_confidence_intervals ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::tests::test_unique ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_unique_sum ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_unique_all_different ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_unique_some_dups ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_unique_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::integration_tests::test_unique_function_as_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::tests::test_countunique ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::integration_tests::test_countunique_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::averageif::tests::test_averageif ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::averageif::tests::test_averageif_all_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::array::unique::edge_case_tests::test_unique_all_same ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::averageif::tests::test_averageif_greater ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countif_category_a ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countif_text_not_equal ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countif_none_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countif_greater ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countif ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::averageif::tests::test_averageifs_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countif_numeric_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_maxifs_empty_result ... ok [INFO] [stdout] test bootstrap::tests::test_financial_returns_bootstrap ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::averageif::tests::test_averageif_numeric_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_maxifs_multiple_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::averageif::tests::test_averageifs_text_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countif_all_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_maxifs_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countifs_multiple_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_minifs_empty_result ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_minifs_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumif_numeric_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumif_with_range ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumif_all_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_maxifs_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_minifs_multiple_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumifs_two_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumifs_multiple_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumifs_multi_criteria ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_construction ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumif ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::countif::tests::test_countifs_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::minmax::tests::test_minifs_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_day_zero_previous_month_last_day ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_leap_year_feb_29 ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_subtraction ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_days ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_eomonth ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_edate_negative_months ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_month_overflow ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_month_zero_previous_year ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_parts ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::components::tests::test_hour_function_datedif ... ok [INFO] [stdout] test core::array_calculator::evaluator::conditional::sumif::tests::test_sumif_greater ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::components::tests::test_hour_minute_second ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_edate ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_eomonth_december ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::components::tests::test_weekday_function_datedif ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::components::tests::test_hour_from_serial ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::components::tests::test_weekday ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::components::tests::test_second_function_datedif ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_date_non_leap_year_feb_29_rollover ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::components::tests::test_minute_function_datedif ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_eomonth_subtraction ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::current::tests::test_today_function_basic ... ok [INFO] [stdout] test cli::commands::simulate::tests::test_mc_dependent_formula_evaluation ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::arithmetic::tests::test_year_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_datedif_negative_day_diff ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_datedif_negative_month_diff ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_datedif_unknown_unit ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_datedif_yd_unit ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_datedif_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_datedif_all_units ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::current::tests::test_now_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_datedif ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::current::tests::test_today_minus_today_equals_zero ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_time ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_time_function_datedif ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_yearfrac_all_bases ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::datedif::tests::test_yearfrac_unknown_basis ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::workdays::tests::test_networkdays_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::dates::workdays::tests::test_workday_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_accrint_error_invalid_frequency ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_accrint ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_db_zero_life ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_ddb_below_salvage ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_ddb_with_factor ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_accrint_error_invalid_dates ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_accrint_error_invalid_par ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_accrint_error_negative_rate ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_db_with_month ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_db_last_period ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_effect_error_negative_rate ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_fv_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_ipmt ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_effect ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_ipmt_zero_rate ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_irr ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_mirr_positive_flows_only ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_nominal ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_effect_error_invalid_periods ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_nominal_error_negative_rate ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_nominal_error_invalid_periods ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_nper_zero_rate ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_ddb_zero_life ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_npv ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_ppmt_zero_rate ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_ppmt ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_pmt ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_pv_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_pricedisc ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_nper_with_fv ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_rate_with_fv ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_db_zero_cost ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_fv_with_pv ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_rate_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_pricedisc_error_invalid_dates ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_breakeven_revenue_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_breakeven_revenue_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_yielddisc_error_invalid_price ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_yielddisc_error_invalid_dates ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_rate_with_guess ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_sln ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_breakeven_revenue_zero_margin_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_breakeven_units_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_sln_zero_life ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_breakeven_units_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_breakeven_units_invalid_margin_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_breakeven_units_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_scenario_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_scenario_not_found ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_scenario_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_pct_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::financial::tests::test_yielddisc ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_cost_type ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_sample_vs_population ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_cost_type_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_pct_zero_budget_error ... ok [INFO] [stdout] test bootstrap::tests::test_bias_corrected ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_pct_with_zero_original ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_empty_array_variance ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_pct_calc ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_favorable ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_favorable_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_pct_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_unfavorable ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_under_budget ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_breakeven_revenue_invalid_ratio ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_breakeven_revenue_zero_ratio ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_breakeven_units_zero_margin ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_breakeven ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_breakeven_units_negative_margin ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_scenario ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_scenario_missing_scenario ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_pct_zero_budget ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_scenario_missing_variable ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_status ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_status_cost_type_unfavorable ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_status_unfavorable_revenue ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_status_zero_budget_zero ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_status_with_numeric_threshold ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_iseven ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_iserror_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_iserror_detects_na ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_iserror ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_isblank ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_status_zero_budget_negative ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::tests::test_variance_status_cost_type_favorable ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_on_budget ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_isformula ... ok [INFO] [stdout] test core::array_calculator::evaluator::forge::integration_tests::test_variance_status_over_budget ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_islogical ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_isna ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_isnumber ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_isodd ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_na ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_n ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_type ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::boolean_ops::tests::test_logical_or_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::boolean_ops::tests::test_xor ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_float_eq_int ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_false_eq_zero ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_floating_point_precision ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_isref ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::boolean_ops::tests::test_logical_and_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::info::tests::test_istext ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::boolean_ops::tests::test_logical_not_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_gte_equal ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_lt_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_gt_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_if_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::boolean_ops::tests::test_logical ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_floating_point_rounded ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_if ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_if_lazy_evaluation ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_string_exact_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_not_equal ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_lte_equal ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_string_case_insensitive ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_iferror_nested_edge_case ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_ifna ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_ifs ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_ifs_invalid_args ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_iferror ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_iferror_catches_na ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_iferror_edge_cases_comprehensive ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_true_eq_one ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::conditionals::tests::test_ifs_no_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::comparison_tests::test_true_gt_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_average_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_if_zero_condition ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_and_true_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_if_nonzero_condition ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_and_nonzero ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_max_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_min_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_count_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_not_nonzero_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_not_true_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_and_true_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_not_false_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_sum_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_or_true_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_sum_empty_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_not_one_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_and_all_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_and_or_functions ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::constants::tests::test_true_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_or_false_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_and_with_zero ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_cross_table_table_not_found_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_false_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_and_with_numbers ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_false_in_or ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_and_one_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_complex_logical_expression ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_false_via_comparison ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_cross_table_column_not_found_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_cross_table_column_not_found_error_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_if_with_cross_table_reference ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_if_simple_condition ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_iferror_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_or_zero_one ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_iferror_no_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_ifna_with_text ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_ifna_with_table_reference ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_not_false_integration ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_local_column_not_found_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_nested_if_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_not_with_number ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_not_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_not_with_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_not_with_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::edge_case_tests::test_not_zero_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_ifna_with_value ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_or_one_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_or_with_zero ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_cross_table_table_not_found_error_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_local_column_not_found_error_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_not_true_integration ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_true_via_comparison ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_true_in_and ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_true_false_in_arithmetic ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_rowwise_if_formula ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_or_all_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_combined_xor_and_not ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_true_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_xor_with_numbers ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_xor_two_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_first_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_formula ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_xor_all_false ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_xor_one_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_last_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::logical::integration_tests::test_xor_three_true ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_second_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_array_index_out_of_bounds ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_index_out_of_range ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_first ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_bounds_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_valid_index ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_last ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_middle ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_single ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_array_index_access ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_zero_row_num ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::choose::tests::test_choose_rowwise ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_single_column ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::index::tests::test_index_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_approx_greater ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_exact_first ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_exact_last ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_exact_middle ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_approx_less ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_less_than_or_equal_ascending ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_no_value_found_descending ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_greater_than_or_equal_descending ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_invalid_match_type ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_address_relative ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_col_to_letter ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_address ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_text_exact ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_no_value_found_ascending ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_address_b2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_columns ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_indirect_table_column ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_column_function_in_expression ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_indirect_function_v2 ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_indirect_scalar_reference ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_indirect_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_exact ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_indirect_column_reference ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_columns_function_single_column ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_column_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_offset_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_offset_positive_offset ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_row_function_in_expression ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_row_column ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::tests::test_column_row_count_mismatch_local ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_rows_function_single_element ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::tests::test_cross_table_row_count_mismatch_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::tests::test_index_match_basic_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_row_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_offset ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_rows ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_rows_function_in_calculation ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::tests::test_index_match_first_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::tests::test_index_match_combined ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::tests::test_index_match_combination ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_vlookup ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::tests::test_index_match_last_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_vlookup_exact_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_default_value ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_employee_salary ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_indirect_with_index ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_address_absolute ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_exact_match_found ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_offset_with_sum ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::match_fn::tests::test_match_exact_match_not_found ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::reference::tests::test_rows_function_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_last_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_not_found_fallback ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_not_found ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_exact ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_with_if_not_found ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_mod ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_pi ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_double_triple_negative ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_first_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::lookup::xlookup::tests::test_xlookup_exact_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_abs ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_abs_array ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_pow_integration ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_mod_edge_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_power ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_power_operator ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_sqrt_array ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::logarithm::tests::test_exp_ln_log10 ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::logarithm::tests::test_exp_ln_array ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::logarithm::tests::test_log10_errors ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::logarithm::tests::test_log_alias ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_scalar_formulas ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::logarithm::tests::test_exp_ln_scalars ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_sign ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_pow_and_e ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::random::tests::test_rand ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::random::tests::test_rand_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::random::tests::test_randbetween_invalid_range ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::logarithm::tests::test_ln_errors ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_sqrt ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_negative_precision ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::random::tests::test_randbetween ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::random::tests::test_randbetween_same_values ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_rounding_scalars ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_roundup_rounddown ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_floor_ceiling ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_int_trunc ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_ceiling_floor_array ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_int_trunc_scalars ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_round ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::rounding::tests::test_round_array ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_percentile ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::random::tests::test_randbetween_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_quartile ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_boolean_multiplication ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_boolean_number_equality ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_stdev ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_comparison ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_rank ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_variance ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_large ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_varp_alias ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_arithmetic ... ok [INFO] [stdout] test core::array_calculator::evaluator::math::basic::tests::test_pi_e_integration ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_array_index ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_boolean_comparison ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_stdevp_alias ... ok [INFO] [stdout] test core::array_calculator::evaluator::statistical::tests::test_small ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_double_negative ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_floating_point_precision ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_power_zero_to_zero ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_number ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_row_wise ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_string_equality ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_unary_minus ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_scalar_reference ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_array_as_number ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_triple_negative ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_lambda_as_number ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_precedence ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_date_string_as_number ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_lambda_never_equal ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_mixed_type_inequality ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_null_equality ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_null_as_number ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_lower_empty_string_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_value_array_equality ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_lower_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::tests::test_eval_boolean_addition ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_lower_mixed_case ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_lower_numbers_unchanged ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_lower_empty_string_verified ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_lower_length ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_text_column_result ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_text_functions_combined ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_empty_string_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_function_whitespace ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_internal_spaces ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_multiple_spaces ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_mixed_math_and_text_functions ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_only_spaces_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_only_spaces_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_lower_with_numbers_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_text_column_in_rowwise_formula ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_trim_tabs_and_newlines ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_upper_empty_string_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_upper_empty_string_verified ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_upper_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_upper_special_chars ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concat_empty_strings ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_upper_length ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_upper_with_numbers_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concat_function_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::case::tests::test_upper_numbers_unchanged ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concat_mixed_types ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concat_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_rept_function_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_rept_multi_char ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concat_with_spaces_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concatenate_multiple ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concatenate_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_empty_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_rept_multiple_times ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_index_text_column ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_concat_text_columns ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_rept_single_char ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_single_space ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_rept_zero_times ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_cross_table_text_column_reference ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_rept_once ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_format_number_helper ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_text_decimal_format ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_text_function_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::concat::tests::test_text_join_function ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_text_percentage_format ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_value_function_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_value_invalid_text ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_value_with_whitespace ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_empty_string_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_empty_string_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::convert::tests::test_value_with_thousand_separators ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_count_larger_than_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_function_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_len_special_characters ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_len_unicode_characters ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_len_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_len_empty_string_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_len_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_with_unicode ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_beyond_string_length ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_boundary_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_empty_string_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_from_middle ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_from_start ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_with_unicode ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_boundary_cases ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_length_exceeds_remaining ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_start_beyond_string_length ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_full_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_empty_string_edge ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_count_larger_than_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_function_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_partial ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_empty_string_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_zero_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_mid_zero_length ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_replace_beginning ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_right_with_unicode ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_replace_entire_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_replace_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_substitute_empty_old_text ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_substitute_function_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_substitute_no_match ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_substitute_multiple_occurrences ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_find_case_sensitive ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_substitute_no_replacement_needed ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_find_function_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_search_substring_not_found ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_search_case_insensitive_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_search_with_start_position ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_concat_two_strings ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_search_function_arraycalc ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::replace::tests::test_substitute_with_special_chars ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_find_character_not_in_string ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_len_with_spaces ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_find ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_partial ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_search_case_insensitive_verified ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::search::tests::test_find_with_start_position ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_right_functions ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_mid_substring_first_two_chars ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_mid_substring_second_two_chars ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_replace ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_rept_single_char_five_times ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_right_hello_three_chars ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_substitute ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_search ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_text ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_right_empty_string_with_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_text_functions ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_trim ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_rept_two_char_three_times ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_trim_only_spaces ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_trim_with_internal_spaces ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_value ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_value_error ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_upper_lowercase_abc ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_acos_out_of_range ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_asin_out_of_range ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_find_not_found ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_left_hello_three_chars ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_atan_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_cos ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_asin ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_left_empty_string_with_count ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_acos ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_atan ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_acos_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_asin_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_lower_uppercase_abc ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_asin_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_cos_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_cosh ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_atan_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_cosh_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_degrees ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_degrees_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_degrees_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_radians ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_radians_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_radians_degrees_roundtrip ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_radians_negative ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_cosh_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_cos_pi ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sin_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sin ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_radians_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sinh_cosh_identity ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sin_scalar ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sinh ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sin_negative_angles ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_tan_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_tanh ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_tanh_basic ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_tan_negative ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_degrees_negative ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_tanh_scalar ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_comparison_operators ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_error_empty ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_complex_formula ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_error_missing_close_bracket ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_function_call_multiple_args ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_error_missing_close_paren ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_function_with_expression_arg ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_function_call_one_arg ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_multiple_comparison ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_nested_function_calls ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_if_expression ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_number ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_operator_precedence_mul_over_add ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_operator_precedence_power ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_parentheses ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_range_expression ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_simple_addition ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_scalar_reference ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_string ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_table_column_reference ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_unary_minus_in_expression ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_with_formula_prefix ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_all_operators ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_ampersand_operator ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_array_index ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_binary_expression ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_boolean_false ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_boolean_in_expression ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_boolean_true ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_colon_for_range ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_comparison_operators ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_complex_formula ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_decimal_number ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_empty_string ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_error_unexpected_char ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_error_unterminated_string ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_formula_with_equals_prefix ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_function_call ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_identifier_with_underscore ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_if_condition ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_negative_number_as_operator ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_nested_function ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_scientific_notation ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_array_index ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_simple_number ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_string_double_quotes ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_string_escaped_quotes ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_trig_identity_sin_cos ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_whitespace_only ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_string_single_quotes ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_table_column_reference ... ok [INFO] [stdout] test core::unit_validator::tests::test_can_add_counts ... ok [INFO] [stdout] test core::unit_validator::tests::test_can_add_ratios ... ok [INFO] [stdout] test core::unit_validator::tests::test_can_add_same_currency ... ok [INFO] [stdout] test core::unit_validator::tests::test_can_add_same_time_units ... ok [INFO] [stdout] test core::unit_validator::tests::test_can_add_with_unknown ... ok [INFO] [stdout] test core::unit_validator::tests::test_cannot_add_currency_and_count ... ok [INFO] [stdout] test core::unit_validator::tests::test_cannot_add_currency_and_percentage ... ok [INFO] [stdout] test core::unit_validator::tests::test_cannot_add_different_currencies ... ok [INFO] [stdout] test core::unit_validator::tests::test_cannot_add_different_time_units ... ok [INFO] [stdout] test core::unit_validator::tests::test_extract_references ... ok [INFO] [stdout] test core::unit_validator::tests::test_extract_references_with_functions ... ok [INFO] [stdout] test core::unit_validator::tests::test_infer_unit_percentage_times_unknown ... ok [INFO] [stdout] test core::unit_validator::tests::test_infer_unit_unknown_reference ... ok [INFO] [stdout] test core::unit_validator::tests::test_infer_unit_simple ... ok [INFO] [stdout] test core::unit_validator::tests::test_infer_unit_with_percentage_multiplication ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_case_insensitive ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_aggregation ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_conditional ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_date ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_financial ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_logical ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_lookup ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_not_function_name ... ok [INFO] [stdout] test core::unit_validator::tests::test_is_function_name_math ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_category_from_str ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_category_display ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_category_parse_count ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_category_parse_percentage ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_category_parse_currencies ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_category_parse_ratio ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_category_parse_time ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_warning_display_error ... ok [INFO] [stdout] test core::unit_validator::tests::test_unit_warning_display_warning ... ok [INFO] [stdout] test core::unit_validator::tests::test_validate_formula_with_no_references ... ok [INFO] [stdout] test core::unit_validator::tests::test_validate_percentage_with_currency_addition_path ... ok [INFO] [stdout] test core::unit_validator::tests::test_validate_scalar_formula_exercises_path ... ok [INFO] [stdout] test core::unit_validator::tests::test_validator_new_with_scalar_units ... ok [INFO] [stdout] test core::unit_validator::tests::test_validate_table_row_formula_with_compatible_units ... ok [INFO] [stdout] test core::unit_validator::tests::test_validate_table_row_formula_with_incompatible_units ... ok [INFO] [stdout] test core::unit_validator::tests::test_validator_new_with_table_units ... ok [INFO] [stdout] test decision_trees::config::config_tests::test_chance_probabilities_must_sum_to_one ... ok [INFO] [stdout] test core::unit_validator::tests::test_warning_severity_equality ... ok [INFO] [stdout] test decision_trees::config::config_tests::test_cycle_detection ... ok [INFO] [stdout] test decision_trees::config::config_tests::test_invalid_reference_rejected ... ok [INFO] [stdout] test decision_trees::config::config_tests::test_missing_root_rejected ... ok [INFO] [stdout] test decision_trees::config::config_tests::test_tree_config_validation ... ok [INFO] [stdout] test decision_trees::engine::engine_tests::test_backward_induction ... ok [INFO] [stdout] test core::unit_validator::tests::test_can_add_percentages ... ok [INFO] [stdout] test decision_trees::engine::engine_tests::test_decision_policy ... ok [INFO] [stdout] test decision_trees::engine::engine_tests::test_simple_coin_flip ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sinh_basic ... ok [INFO] [stdout] test decision_trees::engine::engine_tests::test_scipy_numpy_equivalence ... ok [INFO] [stdout] test decision_trees::tests::test_adr019_example ... ok [INFO] [stdout] test decision_trees::tests::test_json_export ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_sinh_scalar ... ok [INFO] [stdout] test decision_trees::engine::engine_tests::test_yaml_export ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_len_single_space ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_tan ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::length::tests::test_left_zero_count ... ok [INFO] [stdout] test core::array_calculator::tokenizer::tests::test_tokenize_identifier ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_function_call_no_args ... ok [INFO] [stdout] test core::array_calculator::evaluator::trig::tests::test_acos_basic ... ok [INFO] [stdout] test decision_trees::tests::test_nested_chance_nodes ... ok [INFO] [stdout] test decision_trees::tests::test_risk_profile ... ok [INFO] [stdout] test error::tests::test_forge_error_formula_display ... ok [INFO] [stdout] test error::tests::test_forge_error_from_io_error ... ok [INFO] [stdout] test error::tests::test_formula_error_context_find_similar_contains ... ok [INFO] [stdout] test error::tests::test_formula_error_context_find_similar_exact ... ok [INFO] [stdout] test error::tests::test_formula_error_context_find_similar_none ... ok [INFO] [stdout] test error::tests::test_formula_error_context_find_similar_prefix ... ok [INFO] [stdout] test error::tests::test_formula_error_context_format_error_basic ... ok [INFO] [stdout] test error::tests::test_forge_error_from_yaml_error ... ok [INFO] [stdout] test decision_trees::tests::test_three_way_decision ... ok [INFO] [stdout] test error::tests::test_formula_error_context_format_error_many_columns ... ok [INFO] [stdout] test error::tests::test_formula_error_context_format_error_with_columns ... ok [INFO] [stdout] test error::tests::test_formula_error_context_with_suggestion ... ok [INFO] [stdout] test error::tests::test_formula_error_helper ... ok [INFO] [stdout] test error::tests::test_formula_error_context_format_error_with_suggestion ... ok [INFO] [stdout] test error::tests::test_formula_error_context_new ... ok [INFO] [stdout] test error::tests::test_formula_error_context_with_available_columns ... ok [INFO] [stdout] test error::tests::test_formula_error_helper_no_suggestion ... ok [INFO] [stdout] test error::tests::test_forge_error_display ... ok [INFO] [stdout] test excel::exporter::tests::test_export_scalar_with_mc_formula ... ok [INFO] [stdout] test excel::exporter::tests::test_export_mixed_column_types ... ok [INFO] [stdout] test core::array_calculator::parser::tests::test_parse_negative_number ... ok [INFO] [stdout] test excel::exporter::tests::test_export_empty_table ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_len_empty_string ... ok [INFO] [stdout] test excel::exporter::tests::test_export_to_nonexistent_directory_fails ... ok [INFO] [stdout] test excel::exporter::tests::test_export_aggregations ... ok [INFO] [stdout] test core::array_calculator::evaluator::text::tests::test_len_concatenated_strings ... ok [INFO] [stdout] test excel::exporter::tests::test_export_multiple_tables ... ok [INFO] [stdout] test excel::exporter::tests::test_export_empty_model ... ok [INFO] [stdout] test excel::exporter::tests::test_exporter_column_maps_sorted_alphabetically ... ok [INFO] [stdout] test excel::exporter::tests::test_export_scalars_without_dots ... ok [INFO] [stdout] test excel::exporter::tests::test_export_with_boolean_column ... ok [INFO] [stdout] test excel::exporter::tests::test_export_single_table ... ok [INFO] [stdout] test excel::exporter::tests::test_export_with_metadata ... ok [INFO] [stdout] test excel::exporter::tests::test_exporter_new_empty_model ... ok [INFO] [stdout] test excel::exporter::tests::test_exporter_new_multiple_tables ... ok [INFO] [stdout] test excel::exporter::tests::test_exporter_empty_table ... ok [INFO] [stdout] test excel::exporter::tests::test_export_with_date_column ... ok [INFO] [stdout] test excel::exporter::tests::test_export_cross_table_formula ... ok [INFO] [stdout] test excel::exporter::tests::test_export_with_text_column ... ok [INFO] [stdout] test excel::exporter::tests::test_exporter_new_with_row_formula ... ok [INFO] [stdout] test excel::exporter::tests::test_format_metadata_note_empty ... ok [INFO] [stdout] test excel::exporter::tests::test_format_metadata_note_multiple_fields ... ok [INFO] [stdout] test excel::exporter::tests::test_format_metadata_note_with_notes ... ok [INFO] [stdout] test excel::exporter::tests::test_format_metadata_note_with_unit ... ok [INFO] [stdout] test excel::exporter::tests::test_format_metadata_note_with_last_updated ... ok [INFO] [stdout] test excel::exporter::tests::test_format_metadata_note_with_validation_status ... ok [INFO] [stdout] test excel::formula_translator::tests::test_column_index_to_letter ... ok [INFO] [stdout] test excel::formula_translator::tests::test_column_index_to_letter_extended ... ok [INFO] [stdout] test excel::exporter::tests::test_format_metadata_note_with_source ... ok [INFO] [stdout] test excel::exporter::tests::test_exporter_new_with_table ... ok [INFO] [stdout] test excel::exporter::tests::test_export_all_metadata_fields ... ok [INFO] [stdout] test excel::formula_translator::tests::test_is_excel_function ... ok [INFO] [stdout] test excel::exporter::tests::test_export_with_scalars ... ok [INFO] [stdout] test excel::exporter::tests::test_translate_grouped_scalar_formula ... ok [INFO] [stdout] test excel::formula_translator::tests::test_column_not_found_error ... ok [INFO] [stdout] test excel::formula_translator::tests::test_formula_without_leading_equals ... ok [INFO] [stdout] test excel::formula_translator::tests::test_formula_with_multiple_columns ... ok [INFO] [stdout] test excel::exporter::tests::test_export_grouped_scalars ... ok [INFO] [stdout] test excel::exporter::tests::test_export_scalars_with_formulas ... ok [INFO] [stdout] test excel::formula_translator::tests::test_formula_with_parentheses ... ok [INFO] [stdout] test excel::formula_translator::tests::test_cross_table_reference ... ok [INFO] [stdout] test excel::exporter::tests::test_export_with_row_formula ... ok [INFO] [stdout] test excel::formula_translator::tests::test_translate_scalar_formula_basic ... ok [INFO] [stdout] test excel::formula_translator::tests::test_new_with_tables ... ok [INFO] [stdout] test excel::formula_translator::tests::test_translate_correl_formula ... ok [INFO] [stdout] test excel::importer::tests::test_convert_to_column_value_empty ... ok [INFO] [stdout] test excel::importer::tests::test_convert_to_column_value_mixed_numeric ... ok [INFO] [stdout] test excel::importer::tests::test_convert_to_column_value_numbers ... ok [INFO] [stdout] test excel::importer::tests::test_convert_to_column_value_boolean ... ok [INFO] [stdout] test excel::importer::tests::test_convert_to_column_value_text ... ok [INFO] [stdout] test excel::formula_translator::tests::test_translate_sumifs_formula ... ok [INFO] [stdout] test excel::importer::tests::test_import_nonexistent_file_fails ... ok [INFO] [stdout] test excel::exporter::tests::test_export_with_row_formulas ... ok [INFO] [stdout] test excel::formula_translator::tests::test_translate_percentile_formula ... ok [INFO] [stdout] test excel::importer::tests::test_importer_new_stores_path ... ok [INFO] [stdout] test excel::importer::tests::test_number_to_column_letter ... ok [INFO] [stdout] test excel::formula_translator::tests::test_more_excel_functions_preserved ... ok [INFO] [stdout] test excel::importer::tests::test_sanitize_table_name ... ok [INFO] [stdout] test excel::importer::tests::test_sanitize_table_name_spaces ... ok [INFO] [stdout] test excel::formula_translator::tests::test_translate_scalar_formula_with_scalar_ref ... ok [INFO] [stdout] test excel::importer::tests::test_number_to_column_letter_extended ... ok [INFO] [stdout] test excel::importer::tests::test_import_simple_excel_file ... ok [INFO] [stdout] test excel::exporter::tests::test_export_large_table ... ok [INFO] [stdout] test excel::importer::tests::test_import_multiple_tables ... ok [INFO] [stdout] test functions::registry_tests::tests::test_array_only_functions ... ok [INFO] [stdout] test excel::formula_translator::tests::test_translate_scalar_formula_with_index ... ok [INFO] [stdout] test excel::formula_translator::tests::test_date_functions_preserved ... ok [INFO] [stdout] test functions::registry_tests::tests::test_demo_functions_are_scalar ... ok [INFO] [stdout] test excel::formula_translator::tests::test_simple_formula_translation ... ok [INFO] [stdout] test functions::registry_tests::tests::test_demo_count ... ok [INFO] [stdout] test functions::registry_tests::tests::test_demo_functions_are_subset ... ok [INFO] [stdout] test functions::registry_tests::tests::test_enterprise_count ... ok [INFO] [stdout] test functions::registry_tests::tests::test_find_function ... ok [INFO] [stdout] test functions::registry_tests::tests::test_is_demo_function ... ok [INFO] [stdout] test functions::registry_tests::tests::test_math_demo_count ... ok [INFO] [stdout] test functions::registry_tests::tests::test_scalar_count ... ok [INFO] [stdout] test excel::importer::tests::test_import_with_scalars ... ok [INFO] [stdout] test functions::registry_tests::tests::test_trig_demo_count ... ok [INFO] [stdout] test excel::reverse_formula_translator::tests::test_range_reference ... ok [INFO] [stdout] test mcp::server::tests::test_call_bayesian_with_evidence ... ok [INFO] [stdout] test excel::importer::tests::test_import_with_text_column ... ok [INFO] [stdout] test mcp::server::tests::test_call_bayesian_dispatch ... ok [INFO] [stdout] test excel::reverse_formula_translator::tests::test_multiple_cell_references ... ok [INFO] [stdout] test excel::reverse_formula_translator::tests::test_if_function ... ok [INFO] [stdout] test excel::formula_translator::tests::test_other_new_functions_preserved ... ok [INFO] [stdout] test excel::reverse_formula_translator::tests::test_cross_sheet_reference ... ok [INFO] [stdout] test mcp::server::tests::test_call_calculate_nonexistent ... ok [INFO] [stdout] test mcp::server::tests::test_call_compare_empty_scenarios ... ok [INFO] [stdout] test mcp::server::tests::test_call_decision_tree ... ok [INFO] [stdout] test mcp::server::tests::test_call_audit ... ok [INFO] [stdout] test mcp::server::tests::test_call_examples_list ... ok [INFO] [stdout] test mcp::server::tests::test_call_examples_unknown ... ok [INFO] [stdout] test excel::reverse_formula_translator::tests::test_simple_cell_reference ... ok [INFO] [stdout] test mcp::server::tests::test_call_compare ... ok [INFO] [stdout] test mcp::server::tests::test_calculate_returns_structured_json ... ok [INFO] [stdout] test mcp::server::tests::test_call_examples_specific ... ok [INFO] [stdout] test mcp::server::tests::test_call_functions ... ok [INFO] [stdout] test excel::formula_translator::tests::test_financial_functions_preserved ... ok [INFO] [stdout] test excel::formula_translator::tests::test_logical_functions_preserved ... ok [INFO] [stdout] test mcp::server::tests::test_call_compare_structured_format ... ok [INFO] [stdout] test mcp::server::tests::test_call_scenarios_nonexistent ... ok [INFO] [stdout] test mcp::server::tests::test_call_schema_list ... ok [INFO] [stdout] test mcp::server::tests::test_call_import ... ok [INFO] [stdout] test mcp::server::tests::test_call_break_even ... ok [INFO] [stdout] test mcp::server::tests::test_call_schema_v5 ... ok [INFO] [stdout] test mcp::server::tests::test_call_schema_invalid ... ok [INFO] [stdout] test mcp::server::tests::test_call_sensitivity ... ok [INFO] [stdout] test mcp::server::tests::test_call_schema_v1 ... ok [INFO] [stdout] test mcp::server::tests::test_call_simulate_nonexistent ... ok [INFO] [stdout] test mcp::server::tests::test_call_scenarios_dispatch ... ok [INFO] [stdout] test mcp::server::tests::test_call_sensitivity_two_var ... ok [INFO] [stdout] test mcp::server::tests::test_call_scenarios_grouped_scalar_override ... ok [INFO] [stdout] test mcp::server::tests::test_call_compare_grouped_scalar_override ... ok [INFO] [stdout] test mcp::server::tests::test_call_goal_seek ... ok [INFO] [stdout] test mcp::server::tests::test_call_validate_nonexistent ... ok [INFO] [stdout] test mcp::server::tests::test_call_calculate_dry_run ... ok [INFO] [stdout] test mcp::server::tests::test_inline_includes_missing_namespace ... ok [INFO] [stdout] test mcp::server::tests::test_inline_includes_no_map ... ok [INFO] [stdout] test mcp::server::tests::test_call_scenarios_structured_format ... ok [INFO] [stdout] test excel::formula_translator::tests::test_text_functions_preserved ... ok [INFO] [stdout] test mcp::server::tests::test_call_simulate ... ok [INFO] [stdout] test mcp::server::tests::test_call_real_options ... ok [INFO] [stdout] test mcp::server::tests::test_resolve_model_input_both_error ... ok [INFO] [stdout] test mcp::server::tests::test_resolve_model_input_content ... ok [INFO] [stdout] test mcp::server::tests::test_resolve_model_input_file_path ... ok [INFO] [stdout] test mcp::server::tests::test_resolve_model_input_neither_error ... ok [INFO] [stdout] test mcp::server::tests::test_inline_calculate_write_back ... ok [INFO] [stdout] test mcp::server::tests::test_call_validate_success ... ok [INFO] [stdout] test mcp::server::tests::test_tool_names ... ok [INFO] [stdout] test mcp::server::tests::test_tool_schemas_are_objects ... ok [INFO] [stdout] test mcp::server::tests::test_server_get_info ... ok [INFO] [stdout] test mcp::server::tests::test_inline_calculate_dry_run ... ok [INFO] [stdout] test monte_carlo::config::tests::test_builder_pattern ... ok [INFO] [stdout] test monte_carlo::config::tests::test_default_config ... ok [INFO] [stdout] test monte_carlo::config::tests::test_yaml_parsing ... ok [INFO] [stdout] test monte_carlo::correlation::tests::test_cholesky_decomposition_accuracy ... ok [INFO] [stdout] test monte_carlo::config::tests::test_validation ... ok [INFO] [stdout] test monte_carlo::correlation::tests::test_correlate_identity ... ok [INFO] [stdout] test monte_carlo::correlation::tests::test_identity_matrix ... ok [INFO] [stdout] test mcp::server::tests::test_call_tornado ... ok [INFO] [stdout] test monte_carlo::correlation::tests::test_three_variable_correlation ... ok [INFO] [stdout] test mcp::server::tests::test_tool_count ... ok [INFO] [stdout] test monte_carlo::correlation::tests::test_invalid_correlation ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_parse_distribution_errors ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_parse_distribution ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_seed_reproducibility ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_theoretical_values ... ok [INFO] [stdout] test monte_carlo::correlation::tests::test_correlate_positive ... ok [INFO] [stdout] test monte_carlo::correlation::tests::test_simple_correlation ... ok [INFO] [stdout] test monte_carlo::engine::tests::test_add_distribution ... ok [INFO] [stdout] test monte_carlo::engine::tests::test_engine_creation ... ok [INFO] [stdout] test mcp::server::tests::test_inline_validate ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_normal_distribution ... ok [INFO] [stdout] test mcp::server::tests::test_inline_export ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_uniform_distribution ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_triangular_distribution ... ok [INFO] [stdout] test mcp::server::tests::test_call_export ... ok [INFO] [stdout] test mcp::server::tests::test_inline_includes_nested_dir ... ok [INFO] [stdout] test mcp::server::tests::test_validate_returns_structured_json ... ok [INFO] [stdout] test monte_carlo::sampler::tests::test_latin_hypercube_samples ... ok [INFO] [stdout] test monte_carlo::sampler::tests::test_monte_carlo_samples ... ok [INFO] [stdout] test monte_carlo::sampler::tests::test_sample_stats ... ok [INFO] [stdout] test monte_carlo::sampler::tests::test_multidimensional_samples ... ok [INFO] [stdout] test monte_carlo::sampler::tests::test_seed_reproducibility ... ok [INFO] [stdout] test mcp::server::tests::test_inline_export_buffer ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_sensitivity_analysis ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_spearman_moderate_correlation ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_spearman_perfect_negative ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_spearman_perfect_positive ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_spearman_with_ties ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_tornado_json ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_tornado_ordering ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_empty_samples ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_evaluate_threshold ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_histogram ... ok [INFO] [stdout] test monte_carlo::sensitivity::tests::test_compute_ranks_simple ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_percentiles ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_probability_threshold ... ok [INFO] [stdout] test monte_carlo::engine::tests::test_run_with_evaluator ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_statistics_basic ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_parse_threshold ... ok [INFO] [stdout] test monte_carlo::engine::tests::test_output_yaml ... ok [INFO] [stdout] test mcp::server::tests::test_call_variance ... ok [INFO] [stdout] test monte_carlo::distributions::tests::test_pert_distribution ... ok [INFO] [stdout] test monte_carlo::tests::test_json_output ... ok [INFO] [stdout] test monte_carlo::tests::test_lhs_vs_mc_convergence ... ok [INFO] [stdout] test monte_carlo::tests::test_yaml_output ... ok [INFO] [stdout] test parser::arrays::tests::test_boolean_array_wrong_type ... ok [INFO] [stdout] test parser::arrays::tests::test_date_array_wrong_type ... ok [INFO] [stdout] test monte_carlo::engine::tests::test_output_json ... ok [INFO] [stdout] test parser::arrays::tests::test_detect_array_type_unsupported ... ok [INFO] [stdout] test parser::arrays::tests::test_invalid_date_format_error ... ok [INFO] [stdout] test parser::arrays::tests::test_mixed_type_array_error ... ok [INFO] [stdout] test parser::arrays::tests::test_null_first_element_error ... ok [INFO] [stdout] test parser::arrays::tests::test_parse_boolean_array ... ok [INFO] [stdout] test parser::arrays::tests::test_parse_date_array ... ok [INFO] [stdout] test parser::arrays::tests::test_parse_date_format_yyyy_mm_dd ... ok [INFO] [stdout] test parser::arrays::tests::test_parse_number_array ... ok [INFO] [stdout] test parser::arrays::tests::test_parse_text_array ... ok [INFO] [stdout] test parser::arrays::tests::test_text_array_wrong_type ... ok [INFO] [stdout] test parser::arrays::tests::test_type_name_function ... ok [INFO] [stdout] test parser::arrays::tests::test_valid_date_formats ... ok [INFO] [stdout] test parser::includes::tests::test_parse_includes_invalid_format ... ok [INFO] [stdout] test mcp::server::tests::test_call_bootstrap ... ok [INFO] [stdout] test parser::includes::tests::test_parse_includes_missing_as_field ... ok [INFO] [stdout] test monte_carlo::sampler::tests::test_lhs_better_convergence ... ok [INFO] [stdout] test monte_carlo::tests::test_percentile_accuracy ... ok [INFO] [stdout] test mcp::server::tests::test_inline_variance ... ok [INFO] [stdout] test monte_carlo::engine::tests::test_run_simulation ... ok [INFO] [stdout] test parser::model::tests::test_parse_scenario_invalid_value_type ... ok [INFO] [stdout] test parser::model::tests::test_parse_scenarios ... ok [INFO] [stdout] test monte_carlo::sampler::tests::test_sampling_method_from_str ... ok [INFO] [stdout] test monte_carlo::statistics::tests::test_single_sample ... ok [INFO] [stdout] test parser::arrays::tests::test_empty_array_error ... ok [INFO] [stdout] test parser::model::tests::test_parse_scenario_not_mapping ... ok [INFO] [stdout] test parser::includes::tests::test_parse_includes_missing_file ... ok [INFO] [stdout] test mcp::server::tests::test_inline_with_includes ... ok [INFO] [stdout] test parser::model::tests::test_null_in_numeric_array_error ... ok [INFO] [stdout] test parser::model::tests::test_parse_scenarios_structured_invalid_scalars_type ... ok [INFO] [stdout] test parser::model::tests::test_parse_scenarios_structured_format ... ok [INFO] [stdout] test parser::model::tests::test_parse_v1_model_simple ... ok [INFO] [stdout] test parser::model::tests::test_parse_v4_backward_compatible_with_v1 ... ok [INFO] [stdout] test parser::model::tests::test_parse_table_named_scenarios_as_table ... ok [INFO] [stdout] test parser::model::tests::test_parse_scenarios_structured_no_scalars ... ok [INFO] [stdout] test parser::multi_doc::tests::test_detect_multi_document_false_no_separator ... ok [INFO] [stdout] test parser::multi_doc::tests::test_detect_multi_document_false_single_separator ... ok [INFO] [stdout] test parser::multi_doc::tests::test_detect_multi_document_true ... ok [INFO] [stdout] test parser::multi_doc::tests::test_detect_multi_document_with_trailing_content ... ok [INFO] [stdout] test parser::model::tests::test_parse_v1_model_with_scalars ... ok [INFO] [stdout] test parser::model::tests::test_parse_v5_inputs_outputs_sections ... ok [INFO] [stdout] test parser::model::tests::test_parse_v4_mixed_formats ... ok [INFO] [stdout] test monte_carlo::tests::test_full_simulation_workflow ... ok [INFO] [stdout] test parser::model::tests::test_parse_v4_table_column_with_metadata ... ok [INFO] [stdout] test monte_carlo::tests::test_performance ... ok [INFO] [stdout] test monte_carlo::engine::tests::test_seed_reproducibility ... ok [INFO] [stdout] test parser::model::tests::test_parser_skips_decision_tree_section ... ok [INFO] [stdout] test parser::multi_doc::tests::test_parse_multi_doc_invalid_yaml_error ... ok [INFO] [stdout] test parser::model::tests::test_table_named_scenarios ... ok [INFO] [stdout] test parser::model::tests::test_parser_skips_monte_carlo_section ... ok [INFO] [stdout] test parser::multi_doc::tests::test_multi_document_yaml_with_leading_separator ... ok [INFO] [stdout] test parser::includes::tests::test_parse_includes_section ... ok [INFO] [stdout] test parser::multi_doc::tests::test_parse_multi_doc_auto_names ... ok [INFO] [stdout] test monte_carlo::excel_export::tests::test_excel_export ... ok [INFO] [stdout] test parser::multi_doc::tests::test_split_yaml_documents_single ... ok [INFO] [stdout] test parser::multi_doc::tests::test_split_yaml_documents_empty ... ok [INFO] [stdout] test parser::schema::tests::test_v1_allows_scalars ... ok [INFO] [stdout] test parser::schema::tests::test_unsupported_version ... ok [INFO] [stdout] test parser::multi_doc::tests::test_split_yaml_documents ... ok [INFO] [stdout] test parser::schema::tests::test_missing_forge_version ... ok [INFO] [stdout] test parser::tests::test_parse_file_not_found ... ok [INFO] [stdout] test parser::tests::test_parse_invalid_yaml ... ok [INFO] [stdout] test parser::variables::tests::test_column_value_len ... ok [INFO] [stdout] test parser::variables::tests::test_is_nested_scalar_section_empty_child ... ok [INFO] [stdout] test parser::variables::tests::test_is_nested_scalar_section_false_for_v4_rich_column ... ok [INFO] [stdout] test parser::variables::tests::test_is_nested_scalar_section_true_for_scalar ... ok [INFO] [stdout] test parser::variables::tests::test_metadata_last_updated ... ok [INFO] [stdout] test parser::variables::tests::test_parse_table_column_scalar_not_array ... ok [INFO] [stdout] test parser::variables::tests::test_parse_table_with_arrays ... ok [INFO] [stdout] test parser::schema::tests::test_v1_rejects_tables ... ok [INFO] [stdout] test parser::variables::tests::test_parse_table_with_formula ... ok [INFO] [stdout] test parser::variables::tests::test_column_value_type_name ... ok [INFO] [stdout] test parser::variables::tests::test_parse_scalar_variable_not_mapping ... ok [INFO] [stdout] test parser::schema::tests::test_v1_rejects_monte_carlo ... ok [INFO] [stdout] test parser::variables::tests::test_parse_v4_scalar_with_metadata ... ok [INFO] [stdout] test real_options::binomial::binomial_tests::test_american_premium ... ok [INFO] [stdout] test real_options::binomial::binomial_tests::test_european_convergence ... ok [INFO] [stdout] test real_options::binomial::binomial_tests::test_expand_option ... ok [INFO] [stdout] test real_options::binomial::binomial_tests::test_put_call_parity_european ... ok [INFO] [stdout] test real_options::binomial::binomial_tests::test_quantlib_equivalence ... ok [INFO] [stdout] test real_options::black_scholes::black_scholes_tests::test_call_price ... ok [INFO] [stdout] test real_options::black_scholes::black_scholes_tests::test_deep_itm_call ... ok [INFO] [stdout] test real_options::black_scholes::black_scholes_tests::test_deep_otm_call ... ok [INFO] [stdout] test real_options::black_scholes::black_scholes_tests::test_greeks ... ok [INFO] [stdout] test real_options::black_scholes::black_scholes_tests::test_put_call_parity ... ok [INFO] [stdout] test real_options::black_scholes::black_scholes_tests::test_put_price ... ok [INFO] [stdout] test real_options::black_scholes::black_scholes_tests::test_with_dividend ... ok [INFO] [stdout] test real_options::config::config_tests::test_config_builder ... ok [INFO] [stdout] test real_options::config::config_tests::test_option_types ... ok [INFO] [stdout] test real_options::config::config_tests::test_underlying_validation ... ok [INFO] [stdout] test real_options::engine::engine_tests::test_adr020_example ... ok [INFO] [stdout] test parser::tests::test_parse_table_column_not_array ... ok [INFO] [stdout] test parser::variables::tests::test_table_validate_lengths_error ... ok [INFO] [stdout] test parser::variables::tests::test_table_validate_lengths_ok ... ok [INFO] [stdout] test real_options::binomial::binomial_tests::test_abandon_option ... ok [INFO] [stdout] test real_options::binomial::binomial_tests::test_defer_option ... ok [INFO] [stdout] test real_options::engine::engine_tests::test_black_scholes_method ... ok [INFO] [stdout] test parser::model::tests::test_parser_skips_tornado_section ... ok [INFO] [stdout] test real_options::engine::engine_tests::test_engine_creation ... ok [INFO] [stdout] test real_options::tests::test_abandon_option ... ok [INFO] [stdout] test real_options::tests::test_expand_option ... ok [INFO] [stdout] test real_options::engine::engine_tests::test_json_export ... ok [INFO] [stdout] test real_options::tests::test_quantlib_reference ... ok [INFO] [stdout] test real_options::tests::test_decision_recommendation ... ok [INFO] [stdout] test real_options::tests::test_multiple_options ... ok [INFO] [stdout] test real_options::engine::engine_tests::test_yaml_export ... ok [INFO] [stdout] test real_options::engine::engine_tests::test_option_valuation ... ok [INFO] [stdout] test scenarios::config::config_tests::test_probabilities_must_sum_to_one ... ok [INFO] [stdout] test scenarios::config::config_tests::test_scalar_override_types ... ok [INFO] [stdout] test scenarios::config::config_tests::test_scenario_config_validation ... ok [INFO] [stdout] test scenarios::engine::engine_tests::test_probability_positive ... ok [INFO] [stdout] test scenarios::engine::engine_tests::test_scenario_engine_creation ... ok [INFO] [stdout] test real_options::tests::test_time_horizon_impact ... ok [INFO] [stdout] test parser::schema::tests::test_schema_validates_decision_tree_section ... ok [INFO] [stdout] test scenarios::tests::test_empty_config_rejected ... ok [INFO] [stdout] test scenarios::engine::engine_tests::test_expected_value_calculation ... ok [INFO] [stdout] test scenarios::tests::test_full_scenario_workflow ... ok [INFO] [stdout] test scenarios::tests::test_invalid_probabilities_rejected ... ok [INFO] [stdout] test scenarios::engine::engine_tests::test_json_export ... ok [INFO] [stdout] test scenarios::tests::test_probability_positive_calculation ... ok [INFO] [stdout] test scenarios::tests::test_r_weighted_mean_equivalence ... ok [INFO] [stdout] test scenarios::engine::engine_tests::test_yaml_export ... ok [INFO] [stdout] test scenarios::tests::test_ranges_calculation ... ok [INFO] [stdout] test scenarios::tests::test_scenario_isolation ... ok [INFO] [stdout] test tornado::config::config_tests::test_base_value ... ok [INFO] [stdout] test tornado::config::config_tests::test_config_validation ... ok [INFO] [stdout] test tornado::config::config_tests::test_empty_output_rejected ... ok [INFO] [stdout] test parser::multi_doc::tests::test_parse_multi_doc_with_empty_doc ... ok [INFO] [stdout] test tornado::config::config_tests::test_no_inputs_rejected ... ok [INFO] [stdout] test real_options::tests::test_volatility_impact ... ok [INFO] [stdout] test tornado::config::config_tests::test_invalid_range_rejected ... ok [INFO] [stdout] test scenarios::tests::test_probability_weighting ... ok [INFO] [stdout] test tornado::engine::engine_tests::test_ascii_output ... ok [INFO] [stdout] test parser::multi_doc::tests::test_parse_multi_doc_with_scenarios ... ok [INFO] [stdout] test tornado::engine::engine_tests::test_top_drivers ... ok [INFO] [stdout] test scenarios::tests::test_negative_probability_rejected ... ok [INFO] [stdout] test tornado::tests::test_single_input ... ok [INFO] [stdout] test tornado::engine::engine_tests::test_yaml_export ... ok [INFO] [stdout] test tornado::engine::engine_tests::test_json_export ... ok [INFO] [stdout] test tornado::tests::test_inverse_relationship ... ok [INFO] [stdout] test tornado::tests::test_r_sensitivity_equivalence ... ok [INFO] [stdout] test tornado::engine::engine_tests::test_tornado_analysis ... ok [INFO] [stdout] test tornado::tests::test_full_tornado_workflow ... ok [INFO] [stdout] test scenarios::engine::engine_tests::test_scenario_execution ... ok [INFO] [stdout] test real_options::tests::test_bs_binomial_convergence ... ok [INFO] [stdout] test real_options::tests::test_adr020_full_example ... ok [INFO] [stdout] test tornado::tests::test_swing_direction ... ok [INFO] [stdout] test types::tests::test_column_is_empty ... ok [INFO] [stdout] test types::tests::test_column_value_boolean_equality ... ok [INFO] [stdout] test types::tests::test_column_value_date_equality ... ok [INFO] [stdout] test tornado::tests::test_with_base_values ... ok [INFO] [stdout] test types::tests::test_column_value_types_with_metadata ... ok [INFO] [stdout] test parser::multi_doc::tests::test_parse_multi_doc_skip_comments ... ok [INFO] [stdout] test types::tests::test_column_value_equality ... ok [INFO] [stdout] test types::tests::test_column_value_text_equality ... ok [INFO] [stdout] test types::tests::test_column_with_metadata ... ok [INFO] [stdout] test types::tests::test_include_new ... ok [INFO] [stdout] test types::tests::test_metadata_default_is_empty ... ok [INFO] [stdout] test types::tests::test_metadata_full ... ok [INFO] [stdout] test types::tests::test_metadata_with_last_updated_not_empty ... ok [INFO] [stdout] test types::tests::test_metadata_with_notes_not_empty ... ok [INFO] [stdout] test types::tests::test_metadata_with_unit_not_empty ... ok [INFO] [stdout] test types::tests::test_metadata_with_validation_status_not_empty ... ok [INFO] [stdout] test types::tests::test_parsed_model_add_aggregation ... ok [INFO] [stdout] test types::tests::test_metadata_with_source_not_empty ... ok [INFO] [stdout] test tornado::tests::test_variance_explained ... ok [INFO] [stdout] test types::tests::test_column_new_no_metadata ... ok [INFO] [stdout] test types::tests::test_parsed_model_add_include ... ok [INFO] [stdout] test types::tests::test_parsed_model_add_scalar ... ok [INFO] [stdout] test types::tests::test_parsed_model_default ... ok [INFO] [stdout] test types::tests::test_parsed_model_has_unresolved_includes_empty ... ok [INFO] [stdout] test types::tests::test_parsed_model_has_unresolved_includes_resolved ... ok [INFO] [stdout] test types::tests::test_parsed_model_has_unresolved_includes_true ... ok [INFO] [stdout] test types::tests::test_parsed_model_new ... ok [INFO] [stdout] test types::tests::test_parsed_model_add_scenario ... ok [INFO] [stdout] test types::tests::test_parsed_model_add_table ... ok [INFO] [stdout] test types::tests::test_parsed_model_resolve_namespace_ref_found ... ok [INFO] [stdout] test types::tests::test_parsed_model_resolve_namespace_ref_invalid_format ... ok [INFO] [stdout] test types::tests::test_parsed_model_resolve_namespace_ref_nested_path ... ok [INFO] [stdout] test types::tests::test_parsed_model_resolve_namespace_ref_not_found ... ok [INFO] [stdout] test types::tests::test_parsed_model_scenario_names ... ok [INFO] [stdout] test types::tests::test_resolve_scalar_name_dotted_exact ... ok [INFO] [stdout] test types::tests::test_resolve_scalar_name_ambiguous ... ok [INFO] [stdout] test types::tests::test_resolve_scalar_name_exact_match ... ok [INFO] [stdout] test types::tests::test_resolve_scalar_name_grouped_suffix ... ok [INFO] [stdout] test types::tests::test_scenario_add_override ... ok [INFO] [stdout] test types::tests::test_resolve_scalar_name_no_match ... ok [INFO] [stdout] test types::tests::test_scenario_new ... ok [INFO] [stdout] test types::tests::test_table_new ... ok [INFO] [stdout] test types::tests::test_table_row_count_empty ... ok [INFO] [stdout] test types::tests::test_scenario_default ... ok [INFO] [stdout] test types::tests::test_variable_new_with_formula ... ok [INFO] [stdout] test types::tests::test_variable_with_metadata ... ok [INFO] [stdout] test types::tests::test_variable_new_with_value ... ok [INFO] [stdout] test types::tests::test_table_add_row_formula ... ok [INFO] [stdout] test types::tests::test_table_row_count_with_data ... ok [INFO] [stdout] test types::tests::test_table_add_column ... ok [INFO] [stdout] test writer::tests::test_update_scalars ... ok [INFO] [stdout] test writer::tests::test_update_nested_value ... ok [INFO] [stdout] test writer::tests::test_update_scalars_with_no_value ... ok [INFO] [stdout] test writer::tests::test_update_value_empty_path ... ok [INFO] [stdout] test writer::tests::test_update_value_nonexistent_path ... ok [INFO] [stdout] test writer::tests::test_write_calculated_results_creates_backup ... ok [INFO] [stdout] test writer::tests::test_write_calculated_results_skips_multidoc ... ok [INFO] [stdout] test writer::tests::test_update_simple_value ... ok [INFO] [stdout] test writer::tests::test_write_calculated_results_with_tables ... ok [INFO] [stdout] test writer::tests::test_write_calculated_results_with_scalars ... ok [INFO] [stdout] test writer::tests::test_write_results_integer_values ... ok [INFO] [stdout] test writer::tests::test_write_results_fractional_values ... ok [INFO] [stdout] test writer::tests::test_update_multiple_values ... ok [INFO] [stdout] test parser::schema::tests::test_schema_validates_tornado_section ... ok [INFO] [stdout] test parser::multi_doc::tests::test_parse_multi_doc_with_names ... ok [INFO] [stdout] test parser::multi_doc::tests::test_parse_multi_doc_with_scalars ... ok [INFO] [stdout] test bootstrap::tests::test_percentile_bootstrap ... ok [INFO] [stdout] test monte_carlo::tests::test_distribution_accuracy ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1366 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.40s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/forge-9a4601bb04ea4505) [INFO] [stderr] Doc-tests mollendorff_forge [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] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test src/parser/mod.rs - parser::parse_model (line 52) - compile ... ok [INFO] [stdout] test src/lib.rs - (line 17) - compile ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.20s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "d996560560373f8d9abc4a70c7574311ceb56b1c5e9a4f7290c22401e8fc0e7e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d996560560373f8d9abc4a70c7574311ceb56b1c5e9a4f7290c22401e8fc0e7e", kill_on_drop: false }` [INFO] [stdout] d996560560373f8d9abc4a70c7574311ceb56b1c5e9a4f7290c22401e8fc0e7e