[INFO] cloning repository https://github.com/openquanter/openquanter
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/openquanter/openquanter" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fopenquanter%2Fopenquanter", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fopenquanter%2Fopenquanter'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bef851c0ff7bff753ff28175ba7502a0c8ab670f
[INFO] testing openquanter/openquanter against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fopenquanter%2Fopenquanter" "/workspace/builds/worker-1-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/openquanter/openquanter
[INFO] finished tweaking git repo https://github.com/openquanter/openquanter
[INFO] tweaked toml for git repo https://github.com/openquanter/openquanter written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/openquanter/openquanter on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/openquanter/openquanter 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" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `oq-cli`
[INFO] [stderr]   --> Cargo.toml:26:25
[INFO] [stderr]    |
[INFO] [stderr] 26 | [workspace.dependencies.oq-cli]
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `oq-cli`
[INFO] [stderr] warning: unused workspace dependency `oq-live`
[INFO] [stderr]   --> Cargo.toml:70:25
[INFO] [stderr]    |
[INFO] [stderr] 70 | [workspace.dependencies.oq-live]
[INFO] [stderr]    |                         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-live`
[INFO] [stderr] warning: unused workspace dependency `oq-py`
[INFO] [stderr]   --> Cargo.toml:82:25
[INFO] [stderr]    |
[INFO] [stderr] 82 | [workspace.dependencies.oq-py]
[INFO] [stderr]    |                         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-py`
[INFO] [stderr] warning: workspace (manifest) generated 3 warnings
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1
[INFO] running `Command { std: "docker" "start" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `oq-cli`
[INFO] [stderr]   --> Cargo.toml:26:25
[INFO] [stderr]    |
[INFO] [stderr] 26 | [workspace.dependencies.oq-cli]
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `oq-cli`
[INFO] [stderr] warning: unused workspace dependency `oq-live`
[INFO] [stderr]   --> Cargo.toml:70:25
[INFO] [stderr]    |
[INFO] [stderr] 70 | [workspace.dependencies.oq-live]
[INFO] [stderr]    |                         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-live`
[INFO] [stderr] warning: unused workspace dependency `oq-py`
[INFO] [stderr]   --> Cargo.toml:82:25
[INFO] [stderr]    |
[INFO] [stderr] 82 | [workspace.dependencies.oq-py]
[INFO] [stderr]    |                         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-py`
[INFO] [stderr] warning: workspace (manifest) generated 3 warnings
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling libc v0.2.189
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling oq-types v2.0.1 (/opt/rustwide/workdir/crates/oq-types)
[INFO] [stderr]    Compiling proc-macro2 v1.0.107
[INFO] [stderr]    Compiling quote v1.0.47
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling oq-hash v2.0.1 (/opt/rustwide/workdir/crates/oq-hash)
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling oq-book v2.0.1 (/opt/rustwide/workdir/crates/oq-book)
[INFO] [stderr]    Compiling cc v1.4.3
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling const-oid v0.9.6
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling rand_core v0.10.1
[INFO] [stderr]    Compiling oq-stats v2.0.1 (/opt/rustwide/workdir/crates/oq-stats)
[INFO] [stderr]    Compiling bytes v1.12.1
[INFO] [stderr]    Compiling getrandom v0.4.3
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling hybrid-array v0.4.14
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling http v1.5.0
[INFO] [stderr]    Compiling const-oid v0.10.2
[INFO] [stderr]    Compiling crypto-common v0.2.2
[INFO] [stderr]    Compiling block-buffer v0.12.1
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling chacha20 v0.10.1
[INFO] [stderr]    Compiling base64 v0.23.1
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling oq-engine v2.0.1 (/opt/rustwide/workdir/crates/oq-engine)
[INFO] [stderr]    Compiling digest v0.11.3
[INFO] [stderr]    Compiling sha1 v0.11.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling ureq-proto v0.6.1
[INFO] [stderr]    Compiling rand v0.10.2
[INFO] [stderr]    Compiling data-encoding v2.11.1
[INFO] [stderr]    Compiling utf8-zero v0.8.1
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling twox-hash v2.1.3
[INFO] [stderr]    Compiling oq-strategy v2.0.1 (/opt/rustwide/workdir/crates/oq-strategy)
[INFO] [stderr]    Compiling oq-data v2.0.1 (/opt/rustwide/workdir/crates/oq-data)
[INFO] [stderr]    Compiling ruzstd v0.8.2
[INFO] [stderr]    Compiling oq-features v2.0.1 (/opt/rustwide/workdir/crates/oq-features)
[INFO] [stderr]    Compiling der v0.7.10
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling oq-parity v2.0.1 (/opt/rustwide/workdir/crates/oq-parity)
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling ff v0.13.1
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling oq-journal v2.0.1 (/opt/rustwide/workdir/crates/oq-journal)
[INFO] [stderr]    Compiling oq-margin v2.0.1 (/opt/rustwide/workdir/crates/oq-margin)
[INFO] [stderr]    Compiling base16ct v0.2.0
[INFO] [stderr]    Compiling oq-core v2.0.1 (/opt/rustwide/workdir/crates/oq-core)
[INFO] [stderr]    Compiling group v0.13.0
[INFO] [stderr]    Compiling sec1 v0.7.3
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling crypto-bigint v0.5.5
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling rfc6979 v0.4.0
[INFO] [stderr]    Compiling oq-backtest v2.0.1 (/opt/rustwide/workdir/crates/oq-backtest)
[INFO] [stderr]    Compiling spki v0.7.3
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling keccak v0.1.6
[INFO] [stderr]    Compiling elliptic-curve v0.13.8
[INFO] [stderr]    Compiling sha3 v0.10.9
[INFO] [stderr]    Compiling ecdsa v0.16.9
[INFO] [stderr]    Compiling oq-risk v2.0.1 (/opt/rustwide/workdir/crates/oq-risk)
[INFO] [stderr]    Compiling k256 v0.13.4
[INFO] [stderr]    Compiling oq-sim v2.0.1 (/opt/rustwide/workdir/crates/oq-sim)
[INFO] [stderr]    Compiling oq-env v2.0.1 (/opt/rustwide/workdir/crates/oq-env)
[INFO] [stderr]    Compiling oq-cli v2.0.1 (/opt/rustwide/workdir/crates/oq-cli)
[INFO] [stderr]    Compiling oq-examples v2.0.1 (/opt/rustwide/workdir/crates/oq-examples)
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling rustls-webpki v0.103.14
[INFO] [stderr]    Compiling tungstenite v0.30.0
[INFO] [stderr]    Compiling ureq v3.4.0
[INFO] [stderr]    Compiling oq-l2feed v2.0.1 (/opt/rustwide/workdir/crates/oq-l2feed)
[INFO] [stderr]    Compiling oq-gateway v2.0.1 (/opt/rustwide/workdir/crates/oq-gateway)
[INFO] [stderr]    Compiling oq-ingest v2.0.1 (/opt/rustwide/workdir/crates/oq-ingest)
[INFO] [stderr]    Compiling oq-live v2.0.1 (/opt/rustwide/workdir/crates/oq-live)
[INFO] [stderr] warning: unused dependency `oq-env`
[INFO] [stderr]   --> crates/oq-examples/Cargo.toml:17:1
[INFO] [stderr]    |
[INFO] [stderr] 17 | oq-env.workspace = true
[INFO] [stderr]    | ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `oq-env`
[INFO] [stderr] warning: `oq-examples` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `oq-types`
[INFO] [stderr]   --> crates/oq-journal/Cargo.toml:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | oq-types.workspace = true
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `oq-types`
[INFO] [stderr] warning: `oq-journal` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 59s
[INFO] running `Command { std: "docker" "inspect" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `oq-cli`
[INFO] [stderr]   --> Cargo.toml:26:25
[INFO] [stderr]    |
[INFO] [stderr] 26 | [workspace.dependencies.oq-cli]
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `oq-cli`
[INFO] [stderr] warning: unused workspace dependency `oq-live`
[INFO] [stderr]   --> Cargo.toml:70:25
[INFO] [stderr]    |
[INFO] [stderr] 70 | [workspace.dependencies.oq-live]
[INFO] [stderr]    |                         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-live`
[INFO] [stderr] warning: unused workspace dependency `oq-py`
[INFO] [stderr]   --> Cargo.toml:82:25
[INFO] [stderr]    |
[INFO] [stderr] 82 | [workspace.dependencies.oq-py]
[INFO] [stderr]    |                         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-py`
[INFO] [stderr] warning: workspace (manifest) generated 3 warnings
[INFO] [stderr]    Compiling zerocopy v0.8.56
[INFO] [stderr]    Compiling zerocopy-derive v0.8.56
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling either v1.17.0
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling clap_builder v4.6.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling bitflags v2.13.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling oq-cli v2.0.1 (/opt/rustwide/workdir/crates/oq-cli)
[INFO] [stderr]    Compiling oq-live v2.0.1 (/opt/rustwide/workdir/crates/oq-live)
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling criterion-plot v0.6.0
[INFO] [stderr]    Compiling clap v4.6.6
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling criterion v0.7.0
[INFO] [stderr]    Compiling oq-gateway v2.0.1 (/opt/rustwide/workdir/crates/oq-gateway)
[INFO] [stderr]    Compiling oq-ingest v2.0.1 (/opt/rustwide/workdir/crates/oq-ingest)
[INFO] [stderr]    Compiling oq-l2feed v2.0.1 (/opt/rustwide/workdir/crates/oq-l2feed)
[INFO] [stderr]    Compiling oq-env v2.0.1 (/opt/rustwide/workdir/crates/oq-env)
[INFO] [stderr]    Compiling oq-backtest v2.0.1 (/opt/rustwide/workdir/crates/oq-backtest)
[INFO] [stderr]    Compiling oq-core v2.0.1 (/opt/rustwide/workdir/crates/oq-core)
[INFO] [stderr]    Compiling oq-margin v2.0.1 (/opt/rustwide/workdir/crates/oq-margin)
[INFO] [stderr]    Compiling oq-engine v2.0.1 (/opt/rustwide/workdir/crates/oq-engine)
[INFO] [stderr]    Compiling oq-parity v2.0.1 (/opt/rustwide/workdir/crates/oq-parity)
[INFO] [stderr]    Compiling oq-features v2.0.1 (/opt/rustwide/workdir/crates/oq-features)
[INFO] [stderr]    Compiling oq-examples v2.0.1 (/opt/rustwide/workdir/crates/oq-examples)
[INFO] [stderr]    Compiling oq-data v2.0.1 (/opt/rustwide/workdir/crates/oq-data)
[INFO] [stderr]    Compiling oq-strategy v2.0.1 (/opt/rustwide/workdir/crates/oq-strategy)
[INFO] [stderr]    Compiling oq-journal v2.0.1 (/opt/rustwide/workdir/crates/oq-journal)
[INFO] [stderr]    Compiling oq-risk v2.0.1 (/opt/rustwide/workdir/crates/oq-risk)
[INFO] [stderr]    Compiling oq-hash v2.0.1 (/opt/rustwide/workdir/crates/oq-hash)
[INFO] [stderr]    Compiling oq-book v2.0.1 (/opt/rustwide/workdir/crates/oq-book)
[INFO] [stderr]    Compiling oq-stats v2.0.1 (/opt/rustwide/workdir/crates/oq-stats)
[INFO] [stderr]    Compiling oq-sim v2.0.1 (/opt/rustwide/workdir/crates/oq-sim)
[INFO] [stderr]    Compiling oq-types v2.0.1 (/opt/rustwide/workdir/crates/oq-types)
[INFO] [stderr] warning: unused dependency `oq-env`
[INFO] [stderr]   --> crates/oq-examples/Cargo.toml:17:1
[INFO] [stderr]    |
[INFO] [stderr] 17 | oq-env.workspace = true
[INFO] [stderr]    | ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `oq-env`
[INFO] [stderr] help: to still use for development builds, move to `dev-dependencies`
[INFO] [stderr] warning: `oq-examples` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `oq-types`
[INFO] [stderr]   --> crates/oq-journal/Cargo.toml:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | oq-types.workspace = true
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `oq-types`
[INFO] [stderr] warning: `oq-journal` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 4m 27s
[INFO] running `Command { std: "docker" "inspect" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: unused workspace dependency `oq-cli`
[INFO] [stderr]   --> Cargo.toml:26:25
[INFO] [stderr]    |
[INFO] [stderr] 26 | [workspace.dependencies.oq-cli]
[INFO] [stderr]    |                         ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_workspace_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the workspace dependency `oq-cli`
[INFO] [stderr] warning: unused workspace dependency `oq-live`
[INFO] [stderr]   --> Cargo.toml:70:25
[INFO] [stderr]    |
[INFO] [stderr] 70 | [workspace.dependencies.oq-live]
[INFO] [stderr]    |                         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-live`
[INFO] [stderr] warning: unused workspace dependency `oq-py`
[INFO] [stderr]   --> Cargo.toml:82:25
[INFO] [stderr]    |
[INFO] [stderr] 82 | [workspace.dependencies.oq-py]
[INFO] [stderr]    |                         ^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: consider removing the workspace dependency `oq-py`
[INFO] [stderr] warning: workspace (manifest) generated 3 warnings
[INFO] [stderr] warning: unused dependency `oq-env`
[INFO] [stderr]   --> crates/oq-examples/Cargo.toml:17:1
[INFO] [stderr]    |
[INFO] [stderr] 17 | oq-env.workspace = true
[INFO] [stderr]    | ^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `oq-env`
[INFO] [stderr] help: to still use for development builds, move to `dev-dependencies`
[INFO] [stderr] warning: `oq-examples` (manifest) generated 1 warning
[INFO] [stderr] warning: unused dependency `oq-types`
[INFO] [stderr]   --> crates/oq-journal/Cargo.toml:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | oq-types.workspace = true
[INFO] [stderr]    | ^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `oq-types`
[INFO] [stderr] warning: `oq-journal` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.34s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-backtest/8456c59f779f0542/out/oq_backtest-8456c59f779f0542)
[INFO] [stdout] 
[INFO] [stdout] running 92 tests
[INFO] [stdout] test adverse::tests::a_run_with_no_fills_is_not_a_maker_strategy ... ok
[INFO] [stdout] test adverse::tests::a_bid_filled_on_wobbles_that_revert_is_not ... ok
[INFO] [stdout] test adverse::tests::too_few_maker_fills_is_refused_rather_than_passed ... ok
[INFO] [stdout] test deviation::tests::a_thin_account_shows_the_gap_the_report_exists_to_show ... ok
[INFO] [stdout] test deviation::tests::a_well_collateralized_run_reports_no_difference ... ok
[INFO] [stdout] test deviation::tests::both_arms_see_identical_market_data ... ok
[INFO] [stdout] test fidelity::tests::a_quantile_finer_than_the_data_is_refused_rather_than_rounded ... ok
[INFO] [stdout] test deviation::tests::fills_after_the_first_liquidation_are_counted ... ok
[INFO] [stdout] test fidelity::tests::a_reported_quantile_is_an_observation_and_not_an_average_of_two ... ok
[INFO] [stdout] test fidelity::tests::a_study_too_small_for_the_quantile_is_refused ... ok
[INFO] [stdout] test fidelity::tests::liquidation_is_where_the_arms_stop_being_the_same_account ... ok
[INFO] [stdout] test adverse::tests::a_bid_filled_into_a_falling_market_is_refused ... ok
[INFO] [stdout] test fidelity::tests::no_liquidation_means_no_conditional_statistic ... ok
[INFO] [stdout] test deviation::tests::the_comparison_is_reproducible ... ok
[INFO] [stdout] test fidelity::tests::negative_equity_is_still_caught_even_though_returns_stops_at_it ... ok
[INFO] [stdout] test fidelity::tests::a_study_where_the_overlay_never_bit_reports_nothing_rather_than_something ... ok
[INFO] [stdout] test fidelity::tests::no_quantiles_means_no_worst_case ... ok
[INFO] [stdout] test fidelity::tests::the_worst_decile_of_a_small_study_is_still_a_window ... ok
[INFO] [stdout] test fidelity::tests::the_worst_point_is_one_of_the_reported_points ... ok
[INFO] [stdout] test fidelity::tests::the_median_agrees_where_the_tail_does_not ... ok
[INFO] [stdout] test fidelity::tests::two_runs_over_different_ticks_are_not_a_comparison ... ok
[INFO] [stdout] test fidelity::tests::the_conditional_statistic_does_not_move_when_the_mix_does ... ok
[INFO] [stdout] test ledger::tests::an_unreadable_ledger_is_an_error_not_a_reset ... ok
[INFO] [stdout] test fidelity::tests::a_window_will_not_be_built_from_incomparable_runs ... ok
[INFO] [stdout] test fidelity::tests::arms_that_never_diverge_report_no_divergence ... ok
[INFO] [stdout] test lookahead::tests::a_strategy_built_from_the_whole_window_is_caught ... ok
[INFO] [stdout] test fidelity::tests::the_error_is_concentrated_in_a_few_windows_not_spread_over_all ... ok
[INFO] [stdout] test lookahead::tests::a_strategy_that_uses_only_the_past_is_clean ... ok
[INFO] [stdout] test lookahead::tests::the_spread_is_even_and_keeps_both_ends ... ok
[INFO] [stdout] test run::depth_path_tests::a_higher_tier_given_nothing_extra_matches_l0 ... ok
[INFO] [stdout] test run::depth_path_tests::an_order_for_another_instrument_is_refused_and_reported ... ok
[INFO] [stdout] test run::depth_path_tests::declared_gap_reaches_l2_and_is_reported_until_recovery ... ok
[INFO] [stdout] test lookahead::tests::at_most_the_bound_is_checked_and_the_report_says_so ... ok
[INFO] [stdout] test run::depth_path_tests::an_order_for_the_held_instrument_is_accepted ... ok
[INFO] [stdout] test run::depth_path_tests::depth_given_to_a_lower_tier_is_reported_unused ... ok
[INFO] [stdout] test run::depth_path_tests::depth_reaches_the_matcher_and_delays_a_fill ... ok
[INFO] [stdout] test run::tests::a_liquidation_is_delivered_as_a_venue_close ... ok
[INFO] [stdout] test run::tests::a_tick_out_of_order_settles_nothing_twice ... ok
[INFO] [stdout] test run::tests::a_run_is_deterministic ... ok
[INFO] [stdout] test run::tests::a_strategy_is_told_when_each_of_its_orders_ends ... ok
[INFO] [stdout] test ledger::tests::a_missing_ledger_is_an_empty_one_and_a_saved_one_reads_back ... ok
[INFO] [stdout] test run::hedge_mode_tests::a_balance_that_survives_netted_can_be_liquidated_hedged ... ok
[INFO] [stdout] test run::tests::with_enough_collateral_the_two_arms_agree ... ok
[INFO] [stdout] test run::tests::adverse_excursion_is_measured_against_entry ... ok
[INFO] [stdout] test run::tests::funding_is_charged_on_the_position_held_when_it_settles ... ok
[INFO] [stdout] test run::hedge_mode_tests::the_same_fills_leave_a_net_position_or_two_legs ... ok
[INFO] [stdout] test run::tests::min_equity_records_the_worst_point_not_the_last_one ... ok
[INFO] [stdout] test run::tests::without_margin_a_thin_account_survives_a_move_that_would_end_it ... ok
[INFO] [stdout] test run::stream_tests::streaming_and_slice_runs_are_identical ... ok
[INFO] [stdout] test sweep::strict_mode::a_sweep_failing_the_pbo_and_the_slope_is_refused_on_both ... ok
[INFO] [stdout] test sweep::strict_mode::a_sweep_that_clears_both_thresholds_is_deployable ... ok
[INFO] [stdout] test sweep::strict_mode::a_sweep_that_fails_on_both_says_so_on_both ... ok
[INFO] [stdout] test sweep::strict_mode::a_winner_that_used_the_future_is_refused ... ok
[INFO] [stdout] test sweep::strict_mode::an_adversely_selected_maker_winner_is_refused ... ok
[INFO] [stdout] test sweep::strict_mode::an_overfit_sweep_is_refused_and_the_reason_carries_the_numbers ... ok
[INFO] [stdout] test sweep::strict_mode::an_unscored_sweep_is_refused_rather_than_passed ... ok
[INFO] [stdout] test sweep::strict_mode::the_limit_itself_is_acceptable ... ok
[INFO] [stdout] test sweep::tests::a_constant_return_series_is_refused_rather_than_scored ... ok
[INFO] [stdout] test sweep::tests::a_curve_of_one_sample_yields_no_returns_rather_than_a_zero ... ok
[INFO] [stdout] test run::stream_tests::an_empty_stream_runs_and_reports_nothing ... ok
[INFO] [stdout] test sweep::tests::a_curve_reaching_zero_ends_the_series_there ... ok
[INFO] [stdout] test sweep::tests::pbo_refuses_a_single_configuration ... ok
[INFO] [stdout] test sweep::tests::pbo_refuses_a_sweep_too_short_to_split ... ok
[INFO] [stdout] test sweep::strict_mode::a_caller_who_disagrees_changes_the_number_not_the_check ... ok
[INFO] [stdout] test sweep::strict_mode::a_flat_slope_is_refused_even_when_the_pbo_passes ... ok
[INFO] [stdout] test sweep::strict_mode::a_positive_slope_is_not_refused ... ok
[INFO] [stdout] test sweep::tests::returns_are_simple_and_come_from_consecutive_samples ... ok
[INFO] [stdout] test sweep_file::tests::a_rendered_sweep_reads_back_whole_including_what_could_not_be_computed ... ok
[INFO] [stdout] test sweep_file::tests::a_version_1_file_still_reads_without_its_trial_count ... ok
[INFO] [stdout] test validity::tests::degenerate_inputs_are_refused_rather_than_divided_by ... ok
[INFO] [stdout] test validity::tests::the_maker_taker_split_is_counted ... ok
[INFO] [stdout] test validity::tests::the_peak_catches_what_the_average_hides ... ok
[INFO] [stdout] test validity::tests::a_run_with_no_fills_has_no_maker_share ... ok
[INFO] [stdout] test validity::tests::a_run_that_stays_small_is_not_flagged ... ok
[INFO] [stdout] test validity::tests::volume_that_goes_backwards_makes_participation_unmeasurable ... ok
[INFO] [stdout] test validity::tier_divergence::a_gain_that_becomes_a_loss_is_a_reversal ... ok
[INFO] [stdout] test validity::tier_divergence::a_report_without_a_comparison_says_so ... ok
[INFO] [stdout] test validity::tier_divergence::a_sharpe_that_turns_non_positive_is_a_reversal_even_with_a_gain ... ok
[INFO] [stdout] test validity::tier_divergence::a_smaller_gain_is_measured_not_refused ... ok
[INFO] [stdout] test validity::tier_divergence::compare_takes_each_run_at_its_own_configuration ... ok
[INFO] [stdout] test validity::tier_divergence::one_tier_is_no_comparison ... ok
[INFO] [stdout] test validity::tests::the_things_the_tier_does_not_model_are_stated_rather_than_blank ... ok
[INFO] [stdout] test validity::tests::the_three_margin_states_read_differently ... ok
[INFO] [stdout] test validity::tier_divergence::tiers_sampled_differently_have_no_sharpe_to_compare ... ok
[INFO] [stdout] test validity::tier_tests::an_l1_run_does_not_report_l0s_assumptions ... ok
[INFO] [stdout] test validity::tier_tests::the_queue_line_comes_from_the_policy_itself ... ok
[INFO] [stdout] test validity::tier_tests::a_transparent_l1_policy_is_reported_as_equivalent_to_l0 ... ok
[INFO] [stdout] test validity::tier_tests::an_l0_run_has_no_queue_heading ... ok
[INFO] [stdout] test sweep::tests::pbo_cuts_columns_to_the_shortest_rather_than_padding ... ok
[INFO] [stdout] test sweep::ledger::a_configuration_that_could_not_be_scored_is_still_counted ... ok
[INFO] [stdout] test sweep::ledger::a_second_sweep_on_the_same_ledger_is_deflated_by_both ... ok
[INFO] [stdout] test sweep::ledger::a_ledger_sampled_at_another_frequency_is_refused_and_left_alone ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 92 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/moved_paths_still_resolve.rs (/opt/rustwide/target/release/build/oq-backtest/9069fa029443630b/out/moved_paths_still_resolve-9069fa029443630b)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test a_strategy_written_before_the_move_still_compiles_and_runs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-book/759318df317ba313/out/oq_book-759318df317ba313)
[INFO] [stdout] 
[INFO] [stdout] running 32 tests
[INFO] [stdout] test book::tests::a_broken_chain_is_refused_and_leaves_the_book_untouched ... ok
[INFO] [stdout] test book::tests::a_crossed_book_is_detectable ... ok
[INFO] [stdout] test book::tests::a_first_id_of_zero_reports_a_gap_rather_than_overflowing ... ok
[INFO] [stdout] test book::tests::a_snapshot_resets_rather_than_merges ... ok
[INFO] [stdout] test book::tests::a_sweep_large_enough_to_overflow_i64_does_not ... ok
[INFO] [stdout] test book::tests::a_snapshot_resets_the_applied_count ... ok
[INFO] [stdout] test book::tests::a_sweep_that_fits_in_the_best_level_never_touches_a_worse_price ... ok
[INFO] [stdout] test book::tests::a_sweep_walks_levels_in_order_and_stops_when_filled ... ok
[INFO] [stdout] test book::tests::removing_a_level_that_was_never_there_is_not_an_error ... ok
[INFO] [stdout] test book::tests::sides_order_best_first ... ok
[INFO] [stdout] test book::tests::taking_leaves_the_next_taker_a_worse_book ... ok
[INFO] [stdout] test book::tests::taking_more_than_the_book_holds_empties_it_and_says_so ... ok
[INFO] [stdout] test book::tests::the_first_update_must_straddle_the_snapshot ... ok
[INFO] [stdout] test book::tests::updates_before_the_snapshot_are_already_reflected_in_it ... ok
[INFO] [stdout] test book::tests::a_sweep_deeper_than_the_book_says_so ... ok
[INFO] [stdout] test book::tests::a_zero_quantity_removes_a_level ... ok
[INFO] [stdout] test book::tests::an_empty_side_takes_nothing_and_is_exhausted ... ok
[INFO] [stdout] test book::tests::an_update_whose_predecessor_is_in_the_snapshot_joins_it ... ok
[INFO] [stdout] test book::tests::an_update_whose_predecessor_is_past_the_snapshot_does_not_join ... ok
[INFO] [stdout] test book::tests::updates_without_a_snapshot_are_refused ... ok
[INFO] [stdout] test book::tests::bids_sweep_from_the_highest_price_down ... ok
[INFO] [stdout] test depth::tests::a_price_that_does_not_fit_the_scale_is_refused_not_rounded ... ok
[INFO] [stdout] test book::tests::taking_a_whole_level_removes_it ... ok
[INFO] [stdout] test depth::tests::a_rest_snapshot_parses_into_both_sides ... ok
[INFO] [stdout] test depth::tests::a_zero_quantity_survives_parsing ... ok
[INFO] [stdout] test depth::tests::an_empty_side_is_not_an_error ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-cli/7548805ac245f804/out/oq_cli-7548805ac245f804)
[INFO] [stdout] test depth::tests::an_error_body_is_not_a_snapshot ... ok
[INFO] [stdout] test depth::tests::parses_a_depth_update ... ok
[INFO] [stdout] test depth::tests::parses_decimals_exactly ... ok
[INFO] [stdout] test depth::tests::rejects_messages_that_are_not_depth_updates ... ok
[INFO] [stdout] test depth::tests::rejects_what_it_cannot_read_rather_than_guessing ... ok
[INFO] [stdout] test depth::tests::float_would_have_lost_these ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 32 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test absent_tests::an_absent_command_is_named_rather_than_merely_missing ... ok
[INFO] [stdout] test tests::a_tool_we_do_not_ship_is_not_invented ... ok
[INFO] [stdout] test absent_tests::the_new_tools_name_their_crates_too ... ok
[INFO] [stdout] test tests::the_list_has_no_duplicates ... ok
[INFO] [stdout] test absent_tests::nothing_is_both_shipped_and_absent ... ok
[INFO] [stdout] test tests::every_tool_names_the_crate_that_ships_it ... ok
[INFO] [stdout] test tests::every_tool_says_what_it_is_for ... ok
[INFO] [stdout] test tests::the_binary_name_is_the_subcommand_with_one_prefix ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq.rs (/opt/rustwide/target/release/build/oq-cli/6cb2a268c508caae/out/oq-6cb2a268c508caae)
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-core/caae3198f6885ff4/out/oq_core-caae3198f6885ff4)
[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 84 tests
[INFO] [stdout] test event::tests::a_charged_amount_round_trips_named_or_not_and_a_wrong_length_is_refused ... ok
[INFO] [stdout] test event::tests::a_close_survives_the_round_trip ... ok
[INFO] [stdout] test event::tests::a_legacy_length_under_the_modern_kind_is_refused ... ok
[INFO] [stdout] test event::tests::a_named_tick_is_a_different_record_from_an_unnamed_one ... ok
[INFO] [stdout] test event::tests::a_one_sided_update_round_trips ... ok
[INFO] [stdout] test event::tests::an_older_tick_decodes_as_the_only_instrument ... ok
[INFO] [stdout] test event::tests::a_wrong_length_payload_is_refused ... ok
[INFO] [stdout] test event::tests::a_payload_disagreeing_with_its_counts_is_refused ... ok
[INFO] [stdout] test event::tests::an_unknown_kind_is_refused_rather_than_guessed ... ok
[INFO] [stdout] test event::tests::every_event_round_trips ... ok
[INFO] [stdout] test event::tests::an_unknown_presence_byte_is_refused ... ok
[INFO] [stdout] test event::tests::kinds_are_distinct ... ok
[INFO] [stdout] test event::tests::a_market_order_stays_distinct_from_a_zero_price_limit ... ok
[INFO] [stdout] test event::tests::a_tick_of_the_wrong_length_for_its_kind_is_refused ... ok
[INFO] [stdout] test event::tests::a_legacy_submit_decodes_as_an_open ... ok
[INFO] [stdout] test kernel::every_holding::an_insolvent_cross_account_closes_every_holding_at_its_own_price ... ok
[INFO] [stdout] test kernel::every_holding::another_instruments_price_does_not_liquidate_this_one ... ok
[INFO] [stdout] test kernel::every_holding::named_funding_for_an_instrument_not_held_is_refused ... ok
[INFO] [stdout] test kernel::every_holding::named_funding_settles_the_holding_it_names ... ok
[INFO] [stdout] test kernel::hedge_tests::a_cross_currency_total_does_not_move_the_margin_number ... ok
[INFO] [stdout] test kernel::hedge_tests::a_currency_the_account_does_not_settle_in_is_held_and_not_counted ... ok
[INFO] [stdout] test kernel::hedge_tests::a_long_and_a_short_stand_side_by_side ... ok
[INFO] [stdout] test kernel::hedge_tests::a_named_tick_routes_and_an_unheld_one_is_refused ... ok
[INFO] [stdout] test event::tests::recovered_commission_has_an_additive_fixed_payload_and_no_fill ... ok
[INFO] [stdout] test kernel::hedge_tests::an_account_totals_across_currencies_when_rates_are_given ... ok
[INFO] [stdout] test event::tests::the_sides_do_not_swap_across_the_round_trip ... ok
[INFO] [stdout] test kernel::hedge_tests::an_instrument_is_opened_once ... ok
[INFO] [stdout] test kernel::every_holding::a_close_on_the_second_instrument_realizes_at_its_own_contract ... ok
[INFO] [stdout] test kernel::every_holding::named_funding_on_a_flat_holding_charges_nothing ... ok
[INFO] [stdout] test kernel::every_holding::unnamed_funding_is_refused_when_there_is_more_than_one_holding ... ok
[INFO] [stdout] test kernel::hedge_tests::closing_a_leg_realizes_against_that_legs_entry ... ok
[INFO] [stdout] test kernel::hedge_tests::equity_counts_both_legs ... ok
[INFO] [stdout] test kernel::hedge_tests::margin_is_decided_in_the_settlement_currency ... ok
[INFO] [stdout] test kernel::hedge_tests::netting_gives_a_different_position_from_the_same_fills ... ok
[INFO] [stdout] test kernel::hedge_tests::two_instruments_share_one_account ... ok
[INFO] [stdout] test kernel::hedged_funding::a_short_leg_receives_a_positive_rate ... ok
[INFO] [stdout] test kernel::hedged_funding::equal_legs_net_to_nothing ... ok
[INFO] [stdout] test kernel::tests::a_charged_amount_is_booked_as_funding_to_the_last_place ... ok
[INFO] [stdout] test kernel::tests::a_duplicate_order_id_is_rejected ... ok
[INFO] [stdout] test kernel::tests::a_fee_that_could_not_be_read_leaves_the_total_unknown ... ok
[INFO] [stdout] test kernel::tests::a_fill_opens_a_position_at_the_fill_price ... ok
[INFO] [stdout] test kernel::tests::a_liquidated_account_cannot_keep_trading_on_no_collateral ... ok
[INFO] [stdout] test kernel::tests::a_liquidated_account_keeps_nothing_the_mark_would_have_paid ... ok
[INFO] [stdout] test kernel::tests::a_maker_rebate_is_carried_through_rather_than_clamped ... ok
[INFO] [stdout] test kernel::tests::a_non_positive_quantity_is_rejected ... ok
[INFO] [stdout] test kernel::tests::a_position_is_liquidated_when_the_market_reaches_the_level ... ok
[INFO] [stdout] test kernel::tests::a_venue_fills_fee_is_the_venues_own_figure ... ok
[INFO] [stdout] test kernel::tests::adding_to_a_position_averages_the_entry ... ok
[INFO] [stdout] test kernel::tests::closing_realizes_profit_and_flattens ... ok
[INFO] [stdout] test kernel::tests::crossing_through_flat_starts_a_new_position_at_the_fill_price ... ok
[INFO] [stdout] test kernel::tests::fees_are_charged_per_fill_and_tracked_separately ... ok
[INFO] [stdout] test kernel::tests::funding_alone_can_cause_liquidation ... ok
[INFO] [stdout] test kernel::tests::funding_moves_the_balance_and_is_tracked_separately ... ok
[INFO] [stdout] test kernel::hedge_tests::an_instrument_never_opened_has_no_holding ... ok
[INFO] [stdout] test kernel::tests::no_fee_schedule_means_no_fees ... ok
[INFO] [stdout] test kernel::hedge_tests::an_order_fills_on_the_instrument_it_named ... ok
[INFO] [stdout] test kernel::unreported_at_the_end::a_fill_inside_the_response_latency_is_not_yet_booked ... ok
[INFO] [stdout] test kernel::hedge_tests::an_oversized_close_stops_at_flat ... ok
[INFO] [stdout] test kernel::hedge_tests::an_unnamed_tick_is_refused_once_a_second_instrument_is_held ... ok
[INFO] [stdout] test kernel::hedge_tests::maintenance_covers_both_legs_rather_than_the_net ... ok
[INFO] [stdout] test kernel::tests::a_gap_past_bankruptcy_leaves_zero_rather_than_a_debt ... ok
[INFO] [stdout] test kernel::unreported_at_the_end::the_end_of_a_run_books_what_the_latency_still_held ... ok
[INFO] [stdout] test matcher::tests::a_matcher_names_its_tier ... ok
[INFO] [stdout] test kernel::unreported_at_the_end::with_no_response_latency_there_is_nothing_to_settle ... ok
[INFO] [stdout] test matcher::tests::an_order_in_flight_is_counted_at_the_tiers_that_have_one ... ok
[INFO] [stdout] test sequencer::tests::generated_scenarios_actually_exercise_the_engine ... ok
[INFO] [stdout] test matcher::tests::depth_offered_to_a_tier_that_cannot_use_it_is_refused ... ok
[INFO] [stdout] test matcher::tests::the_upper_tiers_answer_as_l0_when_given_nothing_extra ... ok
[INFO] [stdout] test sequencer::tests::a_failed_append_does_not_reach_the_kernel ... ok
[INFO] [stdout] test sequencer::tests::replaying_an_l2_run_reproduces_the_book_it_matched_against ... ok
[INFO] [stdout] test sequencer::tests::a_crash_mid_write_replays_up_to_the_last_whole_event ... ok
[INFO] [stdout] test sequencer::tests::replaying_twice_gives_the_same_answer ... ok
[INFO] [stdout] test shard::tests::an_event_routes_by_instrument ... ok
[INFO] [stdout] test shard::tests::a_loss_in_one_shard_does_not_reach_another ... ok
[INFO] [stdout] test shard::tests::an_event_for_an_unheld_instrument_is_refused ... ok
[INFO] [stdout] test sequencer::tests::an_undecodable_record_is_an_error_not_a_partial_answer ... ok
[INFO] [stdout] test sequencer::tests::a_liquidation_is_reproduced_by_replay ... ok
[INFO] [stdout] test shard::tests::interleaving_shards_changes_nothing ... ok
[INFO] [stdout] test sequencer::tests::the_journal_records_every_event_the_core_acted_on ... ok
[INFO] [stdout] test sequencer::tests::a_replay_reproduces_the_run_exactly ... ok
[INFO] [stdout] test shard::tests::one_instrument_gets_one_shard - should panic ... ok
[INFO] [stdout] test shard::tests::an_unnamed_event_needs_exactly_one_shard ... ok
[INFO] [stdout] test sink::tests::memory_sink_numbers_from_zero ... ok
[INFO] [stdout] test sequencer::tests::replay_reproduces_generated_scenarios ... ok
[INFO] [stderr]      Running tests/entry_cost.rs (/opt/rustwide/target/release/build/oq-core/688a9add69a5582c/out/entry_cost-688a9add69a5582c)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 84 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.29s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 7 tests
[INFO] [stdout] test cost_precision_changes_liquidation_boundary_in_both_directions ... ok
[INFO] [stdout] test flattening_realizes_cash_flow_not_rounded_entry ... ok
[INFO] [stdout] test partial_closes_carry_cash_rounding_to_final_flattening ... ok
[INFO] [stdout] test serialized_replay_preserves_remaining_cost_and_future_outputs ... ok
[INFO] [stdout] test mark_equity_and_margin_view_use_precise_cost ... ok
[INFO] [stdout] test adding_after_partial_close_preserves_full_cash_conservation ... ok
[INFO] [stderr]      Running tests/venue_matching.rs (/opt/rustwide/target/release/build/oq-core/51913427a9e06b82/out/venue_matching-51913427a9e06b82)
[INFO] [stdout] test crossing_flat_starts_a_fresh_opposite_cost ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test a_filled_order_leaves_the_book_so_a_replay_cannot_match_it_again ... ok
[INFO] [stdout] test a_matched_fill_and_a_venue_fill_leave_the_same_account ... ok
[INFO] [stdout] test a_fill_journalled_before_the_fee_was_carried_still_reads ... ok
[INFO] [stdout] test a_venue_fill_is_ordered_by_the_venues_clock ... ok
[INFO] [stdout] test a_venue_fill_is_refused_by_a_kernel_that_is_matching_for_itself ... ok
[INFO] [stdout] test a_venue_fill_survives_the_journal ... ok
[INFO] [stdout] test a_venue_fill_that_breaches_maintenance_is_noticed_at_once ... ok
[INFO] [stdout] test the_matcher_does_not_fill_when_the_venue_is_matching ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-data/dcb8e9602e968957/out/oq_data-dcb8e9602e968957)
[INFO] [stdout] 
[INFO] [stdout] running 34 tests
[INFO] [stdout] test asof::tests::a_join_produces_one_answer_per_query ... ok
[INFO] [stdout] test asof::tests::an_empty_series_knows_nothing ... ok
[INFO] [stdout] test asof::tests::arrival_and_event_timelines_disagree_where_it_matters ... ok
[INFO] [stdout] test asof::tests::ties_on_arrival_resolve_to_the_last_inserted ... ok
[INFO] [stdout] test bitemporal::tests::a_run_from_april_still_answers_as_april_did ... ok
[INFO] [stdout] test bitemporal::tests::an_empty_store_knows_nothing ... ok
[INFO] [stdout] test bitemporal::tests::before_anything_was_known_the_answer_is_none ... ok
[INFO] [stdout] test bitemporal::tests::insertion_order_does_not_change_answers ... ok
[INFO] [stdout] test bitemporal::tests::retroactive_corrections_are_detectable ... ok
[INFO] [stdout] test bitemporal::tests::valid_time_selects_the_regime_in_force ... ok
[INFO] [stdout] test asof::tests::nothing_known_yet_is_none_not_the_first_record ... ok
[INFO] [stdout] test asof::tests::queries_past_the_end_hold_the_last_value ... ok
[INFO] [stdout] test asof::tests::strict_refuses_a_record_stamped_at_the_decision_instant ... ok
[INFO] [stdout] test asof::tests::unsorted_input_is_ordered_on_the_queried_timeline ... ok
[INFO] [stdout] test ticks::reader_tests::the_header_is_available_before_any_tick_is_read ... ok
[INFO] [stdout] test ticks::streaming_tests::a_corrupt_count_is_reported_before_anything_is_allocated ... ok
[INFO] [stdout] test ticks::streaming_tests::a_truncated_file_is_reported_as_truncated ... ok
[INFO] [stdout] test ticks::tests::a_clock_that_ran_backwards_is_counted_not_hidden ... ok
[INFO] [stdout] test ticks::tests::a_dataset_without_arrival_times_says_so ... ok
[INFO] [stdout] test ticks::tests::an_empty_file_round_trips ... ok
[INFO] [stdout] test ticks::tests::a_foreign_file_is_refused ... ok
[INFO] [stdout] test ticks::tests::corrupted_prices_are_caught ... ok
[INFO] [stdout] test ticks::reader_tests::a_backwards_timestamp_is_reported_with_its_position ... ok
[INFO] [stdout] test ticks::tests::feed_latency_reports_a_real_capture ... ok
[INFO] [stdout] test ticks::tests::equal_timestamps_are_allowed ... ok
[INFO] [stdout] test ticks::tests::round_trip_preserves_every_field ... ok
[INFO] [stdout] test ticks::tests::out_of_order_ticks_are_refused_with_their_index ... ok
[INFO] [stdout] test ticks::tests::stream_bytes_round_trip ... ok
[INFO] [stdout] test ticks::tests::truncation_is_detected_rather_than_read_as_a_shorter_file ... ok
[INFO] [stdout] test ticks::reader_tests::a_truncated_file_is_truncated_and_not_a_shorter_run ... ok
[INFO] [stdout] test ticks::reader_tests::a_corrupt_record_is_still_reported ... ok
[INFO] [stdout] test ticks::streaming_tests::streaming_and_whole_file_decoding_agree ... ok
[INFO] [stdout] test ticks::streaming_tests::a_corrupted_record_is_caught_while_streaming ... ok
[INFO] [stdout] test ticks::reader_tests::streaming_yields_exactly_what_reading_the_whole_file_yields ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 34 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.15s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-data.rs (/opt/rustwide/target/release/build/oq-data/235ac6410a98d84f/out/oq_data-235ac6410a98d84f)
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-engine/981da4f021159957/out/oq_engine-981da4f021159957)
[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 73 tests
[INFO] [stdout] test l0::tests::a_limit_buy_above_the_market_gets_price_improvement ... ok
[INFO] [stdout] test book::tests::remove_finds_orders_on_any_side ... ok
[INFO] [stdout] test l0::tests::a_gap_crossed_fill_carries_the_previous_tick_time ... ok
[INFO] [stdout] test l0::tests::a_resting_buy_fills_when_the_market_reaches_it ... ok
[INFO] [stdout] test book::tests::market_orders_are_kept_apart_from_the_price_ordering ... ok
[INFO] [stdout] test l0::tests::a_gap_crossed_order_fills_at_its_own_price ... ok
[INFO] [stdout] test l0::tests::a_limit_sell_below_the_market_gets_price_improvement ... ok
[INFO] [stdout] test l0::tests::an_ordinary_crossing_carries_the_current_tick_time ... ok
[INFO] [stdout] test book::tests::equal_prices_keep_arrival_order ... ok
[INFO] [stdout] test book::tests::a_partial_fill_keeps_its_queue_position ... ok
[INFO] [stdout] test book::tests::bids_are_best_first_and_asks_are_best_first ... ok
[INFO] [stdout] test l0::tests::gap_crossing_fills_in_arrival_order_not_price_order ... ok
[INFO] [stdout] test l0::tests::trade_ids_are_dense_and_monotonic ... ok
[INFO] [stdout] test l1::queue_symmetry::a_window_without_trades_passes_no_order_through_its_queue ... ok
[INFO] [stdout] test l1::tests::a_cancel_reaches_an_order_in_every_place_it_can_be ... ok
[INFO] [stdout] test l1::tests::a_draw_is_always_a_measured_point ... ok
[INFO] [stdout] test l1::queue_symmetry::an_order_with_no_entry_latency_queues_behind_the_multiple ... ok
[INFO] [stdout] test l1::tests::a_distribution_of_zeroes_is_zero ... ok
[INFO] [stdout] test l1::tests::a_price_gapping_through_empties_the_queue ... ok
[INFO] [stdout] test l1::tests::a_transparent_policy_reproduces_l0_exactly ... ok
[INFO] [stdout] test l1::tests::an_order_waiting_in_a_queue_is_still_counted ... ok
[INFO] [stdout] test l1::tests::entry_latency_keeps_an_order_out_of_a_market_it_has_not_reached ... ok
[INFO] [stdout] test l1::tests::impact_is_not_charged_when_there_is_no_volume_to_be_a_share_of ... ok
[INFO] [stdout] test l1::tests::impact_worsens_a_taker_fill_and_never_improves_it ... ok
[INFO] [stdout] test l1::tests::response_latency_holds_a_fill_back_and_says_how_many ... ok
[INFO] [stdout] test l1::tests::a_queue_delays_a_fill_that_l0_would_have_given_immediately ... ok
[INFO] [stdout] test l1::tests::a_transparent_policy_admits_what_it_is ... ok
[INFO] [stdout] test l1::tests::the_policy_describes_every_assumption_it_holds ... ok
[INFO] [stdout] test l1::tests::the_report_line_distinguishes_a_distribution_from_a_constant ... ok
[INFO] [stdout] test l1::tests::volume_going_backwards_does_not_refund_a_queue ... ok
[INFO] [stdout] test l2::tests::a_book_better_than_the_tick_does_not_improve_the_fill ... ok
[INFO] [stdout] test l2::tests::a_book_that_has_not_bootstrapped_says_so ... ok
[INFO] [stdout] test l2::tests::a_gap_does_not_erase_already_executed_delayed_responses ... ok
[INFO] [stdout] test l0::tests::cancelled_orders_do_not_fill ... ok
[INFO] [stdout] test l0::tests::orders_are_not_eligible_on_the_tick_they_are_submitted ... ok
[INFO] [stdout] test l2::tests::a_gap_suspends_resting_and_in_flight_orders_until_snapshot ... ok
[INFO] [stdout] test l0::tests::the_first_tick_only_establishes_a_reference ... ok
[INFO] [stdout] test l2::tests::a_market_order_queues_for_nothing ... ok
[INFO] [stdout] test l2::tests::a_measured_fill_is_not_also_charged_the_policy ... ok
[INFO] [stdout] test l0::tests::crossing_fills_the_best_price_first ... ok
[INFO] [stdout] test l0::tests::market_orders_fill_as_taker_at_the_reference_price ... ok
[INFO] [stdout] test l1::tests::the_same_key_draws_the_same_delay ... ok
[INFO] [stdout] test l2::tests::a_measured_queue_is_not_lost_to_entry_latency ... ok
[INFO] [stdout] test l2::tests::a_selling_taker_walks_the_bids ... ok
[INFO] [stdout] test l1::tests::the_bands_have_roughly_the_frequencies_they_claim ... ok
[INFO] [stdout] test l2::tests::an_observation_without_a_taker_sweeps_nothing ... ok
[INFO] [stdout] test l2::tests::an_order_built_outside_still_enters_through_this_tier ... ok
[INFO] [stdout] test l2::tests::an_order_deeper_than_the_book_falls_back_and_is_counted ... ok
[INFO] [stdout] test l2::tests::an_out_of_sequence_update_is_refused_and_counted ... ok
[INFO] [stdout] test l2::tests::an_undeclared_sequence_break_also_suspends_matching ... ok
[INFO] [stdout] test l2::tests::an_update_after_arrival_cannot_reprice_the_arrival_queue ... ok
[INFO] [stdout] test l2::tests::a_maker_fill_is_left_alone ... ok
[INFO] [stdout] test l2::tests::cancel_all_reaches_orders_that_have_not_landed ... ok
[INFO] [stdout] test l2::tests::depth_at_the_exact_arrival_has_market_first_priority ... ok
[INFO] [stdout] test l2::tests::a_taker_pays_the_walk_up_the_book_not_the_touch ... ok
[INFO] [stdout] test l2::tests::an_empty_level_measures_zero_and_not_unknown ... ok
[INFO] [stdout] test l2::tests::an_unfed_l2_reproduces_l0_exactly ... ok
[INFO] [stdout] test l2::tests::unready_depth_is_not_a_measurement_of_zero_ahead ... ok
[INFO] [stdout] test l2::tests::the_queue_is_read_from_the_book ... ok
[INFO] [stdout] test l2::tests::the_second_taker_in_an_observation_reaches_a_thinner_book ... ok
[INFO] [stdout] test l2::tests::zero_latency_orders_in_a_gap_and_formerly_unqueued_orders_join_recovery_depth ... ok
[INFO] [stdout] test observation::tests::a_snapshot_carries_no_time ... ok
[INFO] [stdout] test tick::tests::a_degenerate_tick_falls_back_to_last ... ok
[INFO] [stdout] test tick::tests::quotes_take_precedence_over_trade_extremes ... ok
[INFO] [stdout] test tick::tests::without_quotes_the_window_extremes_trigger ... ok
[INFO] [stdout] test tick::volume_tests::a_reset_reads_as_no_volume_not_negative_volume ... ok
[INFO] [stdout] test tick::volume_tests::volume_deltas_are_differences ... ok
[INFO] [stdout] test l2::tests::in_flight_growth_is_measured_at_arrival_not_submission ... ok
[INFO] [stdout] test l2::tests::pre_arrival_volume_cannot_spend_the_new_queue ... ok
[INFO] [stdout] test l2::tests::a_later_snapshot_cannot_change_a_sealed_arrival ... ok
[INFO] [stdout] test l2::tests::a_measurement_beats_the_policy_it_replaces ... ok
[INFO] [stdout] test observation::tests::a_tick_and_an_update_report_time_in_the_same_unit ... ok
[INFO] [stderr]      Running tests/matching_invariants.rs (/opt/rustwide/target/release/build/oq-engine/1ca26c5021334672/out/matching_invariants-1ca26c5021334672)
[INFO] [stdout] test l2::tests::recovery_does_not_keep_old_queue_priority_or_spend_gap_volume ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 73 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test same_price_orders_fill_in_arrival_order ... ok
[INFO] [stdout] test a_cancelled_order_never_fills ... ok
[INFO] [stdout] test the_resting_book_is_never_crossed ... ok
[INFO] [stdout] test the_same_script_produces_the_same_fills ... ok
[INFO] [stdout] test no_order_fills_for_more_than_it_asked ... ok
[INFO] [stdout] test every_fill_has_a_positive_price_and_quantity ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-env/67707ef601701c08/out/oq_env-67707ef601701c08)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test tests::a_batch_reproduces_from_its_seed ... ok
[INFO] [stdout] test tests::a_batch_agrees_when_its_actions_agree ... ok
[INFO] [stdout] test tests::a_long_held_through_positive_funding_pays_it ... ok
[INFO] [stdout] test tests::ignored_margin_does_not_end_an_episode_in_liquidation ... ok
[INFO] [stdout] test tests::liquidation_is_distinguishable_from_exhaustion ... ok
[INFO] [stdout] test tests::repeating_an_action_holds_rather_than_doubling ... ok
[INFO] [stdout] test tests::an_exhausted_episode_keeps_answering ... ok
[INFO] [stdout] test tests::a_short_action_slice_is_refused - should panic ... ok
[INFO] [stdout] test tests::an_episode_reproduces_from_its_seed ... ok
[INFO] [stdout] test tests::an_empty_batch_is_refused - should panic ... ok
[INFO] [stdout] test tests::reset_clears_the_position_and_the_book ... ok
[INFO] [stdout] test tests::the_reward_follows_the_position_against_the_market ... ok
[INFO] [stdout] test vec::tests::a_batch_reproduces_from_its_seed ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-examples/80d7a00d8ead8756/out/oq_examples-80d7a00d8ead8756)
[INFO] [stdout] test vec::tests::seeds_are_derived_rather_than_counted ... ok
[INFO] [stdout] test tests::a_batch_separates_when_its_actions_do ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test tests::a_series_is_identical_on_every_run ... ok
[INFO] [stdout] test tests::observations_are_internally_consistent ... ok
[INFO] [stdout] test tests::the_crash_series_actually_crashes_and_recovers ... ok
[INFO] [stdout] test tests::volume_only_ever_increases ... ok
[INFO] [stdout] test tests::a_rising_market_rises_by_what_was_asked_at_any_length ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/classics.rs (/opt/rustwide/target/release/build/oq-examples/71f70e09a8ffb591/out/classics-71f70e09a8ffb591)
[INFO] [stdout] running 9 tests
[INFO] [stdout] test only_one_rung_is_outstanding ... ok
[INFO] [stdout] test every_entry_names_its_own_weakness ... ok
[INFO] [stdout] test none_of_them_trades_before_its_indicator_has_a_reading ... ok
[INFO] [stdout] test refused_rung_does_not_move_the_ladder ... ok
[INFO] [stdout] test the_catalogue_lists_exactly_what_ships ... ok
[INFO] [stdout] test the_grid_under_leverage_shows_what_a_margin_free_backtest_hides ... ok
[INFO] [stdout] test the_ladder_anchors_on_the_fill_price ... ok
[INFO] [stdout] test every_classic_trades_on_a_quiet_market_too ... ok
[INFO] [stdout] test every_classic_actually_trades ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/golden.rs (/opt/rustwide/target/release/build/oq-examples/058d0147976bf84c/out/golden-058d0147976bf84c)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test print_goldens ... ignored, prints the goldens rather than checking them
[INFO] [stdout] test hello_produces_the_documented_numbers ... ok
[INFO] [stdout] test a_generated_market_survives_the_tick_format ... ok
[INFO] [stdout] test the_generated_market_is_stable_across_runs_and_machines ... ok
[INFO] [stdout] test the_margin_free_arm_reports_an_account_that_did_not_survive ... ok
[INFO] [stdout] test a_crossover_over_a_trending_market_produces_exactly_these_numbers ... ok
[INFO] [stdout] test the_same_run_twice_is_the_same_run ... ok
[INFO] [stdout] test the_grid_levered_matches_what_the_documentation_quotes ... ok
[INFO] [stdout] test every_levered_row_is_pinned ... ok
[INFO] [stdout] test unlevered_the_two_arms_agree_for_all_six ... ok
[INFO] [stderr]      Running tests/stylized.rs (/opt/rustwide/target/release/build/oq-examples/612acb0cb7b89f73/out/stylized-612acb0cb7b89f73)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test the_tally_is_what_it_is ... ok
[INFO] [stdout] test the_crash_fixture_is_a_designed_trend_not_a_market ... ok
[INFO] [stdout] test only_the_crash_clusters_and_it_is_a_step_not_a_process ... ok
[INFO] [stdout] test the_random_walk_fixtures_are_uncorrelated ... ok
[INFO] [stdout] test no_generated_market_is_heavy_tailed ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-features/ec8c0597267e80c9/out/oq_features-ec8c0597267e80c9)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test drift::tests::a_handful_of_observations_is_not_evidence ... ok
[INFO] [stdout] test drift::tests::a_shift_shows_up ... ok
[INFO] [stdout] test drift::tests::re_deriving_bins_would_have_hidden_the_shift ... ok
[INFO] [stdout] test drift::tests::a_feature_that_stops_answering_is_caught_by_something_else ... ok
[INFO] [stdout] test drift::tests::the_reference_does_not_drift_from_itself ... ok
[INFO] [stdout] test drift::tests::tied_values_reduce_the_bin_count_instead_of_making_empty_bins ... ok
[INFO] [stdout] test drift::tests::a_nan_does_not_slip_through ... ok
[INFO] [stdout] test drift::tests::a_reference_needs_something_to_describe ... ok
[INFO] [stdout] test drift::tests::an_always_gappy_feature_does_not_alarm_on_its_usual_gaps ... ok
[INFO] [stdout] test drift::tests::values_outside_the_reference_range_are_counted_separately ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/skew.rs (/opt/rustwide/target/release/build/oq-features/d938966924a99067/out/skew-d938966924a99067)
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test a_feature_normalised_over_the_whole_series_is_caught ... ok
[INFO] [stdout] test a_nan_is_a_divergence_and_not_a_free_pass ... ok
[INFO] [stdout] test different_lengths_are_refused_rather_than_truncated ... ok
[INFO] [stdout] test the_prefix_of_the_output_does_not_depend_on_what_comes_after ... ok
[INFO] [stdout] test an_off_by_one_shift_is_caught ... ok
[INFO] [stdout] test filling_the_warmup_with_zeros_is_caught_at_any_tolerance ... ok
[INFO] [stderr]      Running tests/warmup.rs (/opt/rustwide/target/release/build/oq-features/a2623bfd72451d87/out/warmup-a2623bfd72451d87)
[INFO] [stdout] test inventing_a_mid_for_an_empty_book_is_caught ... ok
[INFO] [stdout] test the_derived_path_is_deterministic ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test cold_undefined_is_not_zero_or_a_defined_hold ... ok
[INFO] [stdout] test converged_indicators_can_still_change_every_decision ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-gateway/796cb62bbd4b9949/out/oq_gateway-796cb62bbd4b9949)
[INFO] [stdout] test undefined_on_both_paths_is_not_numeric_convergence ... ok
[INFO] [stdout] test unavailable_history_empty_windows_duplicates_and_invalid_tolerances_refuse ... ok
[INFO] [stdout] test unused_future_observations_do_not_change_a_common_window_report ... ok
[INFO] [stdout] test equal_nonfinite_features_cannot_pass_even_with_identical_defined_decisions ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 331 tests
[INFO] [stdout] test account::tests::a_boxed_account_answers_as_the_venue_it_holds ... ok
[INFO] [stdout] test account::tests::an_account_can_be_boxed ... ok
[INFO] [stdout] test account::tests::an_adapter_that_does_not_report_fees_returns_none_rather_than_zero ... ok
[INFO] [stdout] test backpack::account_reads::an_order_state_this_build_does_not_know_is_refused ... ok
[INFO] [stdout] test backpack::account_reads::a_resting_order_keeps_its_numeric_client_id_as_text ... ok
[INFO] [stdout] test backpack::account_reads::the_sign_comes_from_the_number_here_and_that_is_the_exception ... ok
[INFO] [stdout] test backpack::account_reads::an_empty_account_reads_as_empty_rather_than_failing ... ok
[INFO] [stdout] test b64::tests::arbitrary_bytes_survive_a_round_trip ... ok
[INFO] [stdout] test b64::tests::the_rfc_4648_vectors_round_trip ... ok
[INFO] [stdout] test backpack::tests::an_answer_this_adapter_cannot_read_concludes_nothing ... ok
[INFO] [stdout] test backpack::tests::an_order_is_read_from_the_shape_the_spec_publishes ... ok
[INFO] [stdout] test backpack::tests::testnet_never_falls_through_to_the_live_host ... ok
[INFO] [stdout] test backpack::tests::the_signing_message_is_the_documented_order ... ok
[INFO] [stdout] test backpack::tests::a_client_id_here_is_a_number ... ok
[INFO] [stdout] test b64::tests::a_key_that_is_not_base64_is_refused_rather_than_half_decoded ... ok
[INFO] [stdout] test backpack::tests::cancelled_with_two_ls_becomes_canceled_with_one ... ok
[INFO] [stdout] test backpack::tests::instruction_leads_even_when_a_parameter_would_sort_ahead_of_it ... ok
[INFO] [stdout] test backpack::tests::request_json_preserves_schema_types_and_escapes_strings ... ok
[INFO] [stdout] test backpack::tests::an_order_query_matches_the_client_id_field_not_an_unrelated_number ... ok
[INFO] [stdout] test binance::ban_backoff::a_ban_names_the_moment_it_lifts ... ok
[INFO] [stdout] test binance::ban_backoff::a_rate_limit_warning_cools_down_for_as_long_as_asked ... ok
[INFO] [stdout] test binance::ban_backoff::a_limit_without_a_ban_yields_no_deadline ... ok
[INFO] [stdout] test binance::ban_backoff::a_standing_ban_refuses_locally_and_then_expires ... ok
[INFO] [stdout] test binance::ban_backoff::a_deadline_that_cannot_be_read_is_not_guessed ... ok
[INFO] [stdout] test binance::bounded_history_tests::bounded_funding_refuses_filtered_or_wrong_asset_rows ... ok
[INFO] [stdout] test binance::bounded_history_tests::ignored_upper_bound_and_failed_tail_never_return_a_prefix ... ok
[INFO] [stdout] test binance::bounded_history_tests::unreadable_rows_are_not_an_empty_complete_array ... ok
[INFO] [stdout] test binance::bounded_history_tests::upper_bound_is_fixed_while_inclusive_pages_advance ... ok
[INFO] [stdout] test backpack::tests::a_signature_is_over_the_message_and_moves_with_it ... ok
[INFO] [stdout] test binance::clock::the_midpoint_survives_a_slow_link ... ok
[INFO] [stdout] test binance::commission::a_commission_that_is_not_a_decimal_amount_is_refused ... ok
[INFO] [stdout] test binance::clock::real_skew_is_still_reported ... ok
[INFO] [stdout] test binance::commission::commission_in_another_asset_is_refused_rather_than_added ... ok
[INFO] [stdout] test binance::commission::commission_in_the_settlement_currency_is_summed ... ok
[INFO] [stdout] test binance::dialects::a_client_built_from_a_bare_base_still_speaks_the_first_venue ... ok
[INFO] [stdout] test binance::dialects::a_dialect_opens_its_own_stream_and_not_the_other_ones ... ok
[INFO] [stdout] test binance::dialects::aster_is_the_same_api_with_one_version_number_changed ... ok
[INFO] [stdout] test binance::floors::a_market_order_is_not_checked_against_the_floor ... ok
[INFO] [stdout] test binance::floors::an_order_over_the_floor_passes ... ok
[INFO] [stdout] test binance::floors::an_order_under_the_floor_is_refused_with_both_numbers ... ok
[INFO] [stdout] test binance::funding_reads::a_decimal_amount_is_cash_exactly_or_not_at_all ... ok
[INFO] [stdout] test binance::funding_reads::only_this_symbols_funding_lines_are_read_and_to_the_last_place ... ok
[INFO] [stdout] test binance::funding_reads::settled_rates_keep_the_venues_digits_and_come_oldest_first ... ok
[INFO] [stdout] test binance::clock::asymmetric_legs_cost_half_the_asymmetry_not_a_whole_leg ... ok
[INFO] [stdout] test binance::dialects::the_first_venues_paths_are_unchanged ... ok
[INFO] [stdout] test binance::bounded_history_tests::shared_wire_dialect_does_not_inherit_a_retention_claim ... ok
[INFO] [stdout] test binance::hedged_accounts::a_hedged_account_names_the_leg ... ok
[INFO] [stdout] test binance::floors::a_contract_with_no_stated_floor_refuses_nothing ... ok
[INFO] [stdout] test binance::bounded_history_tests::retention_and_future_range_fail_before_fetching ... ok
[INFO] [stdout] test binance::hedged_accounts::a_one_way_account_names_no_leg ... ok
[INFO] [stdout] test binance::hedged_accounts::reduce_only_is_sent_only_where_the_venue_accepts_it ... ok
[INFO] [stdout] test binance::hedged_accounts::the_final_state_is_requested_rather_than_a_bare_acknowledgement ... ok
[INFO] [stdout] test binance::history_paging_tests::a_full_boundary_page_cannot_be_claimed_complete_or_skipped ... ok
[INFO] [stdout] test binance::history_paging_tests::conflicting_stable_ids_and_ignored_ranges_are_refused ... ok
[INFO] [stdout] test binance::history_paging_tests::inclusive_boundary_preserves_distinct_same_time_ids_and_deduplicates_overlap ... ok
[INFO] [stdout] test binance::history_paging_tests::page_bound_and_request_failure_never_return_an_accumulated_prefix ... ok
[INFO] [stdout] test binance::listings::a_brace_inside_a_string_does_not_close_the_object_early ... ok
[INFO] [stdout] test binance::listings::a_contract_that_is_not_the_first_is_still_found ... ok
[INFO] [stdout] test binance::order_entry::a_limit_order_carries_its_price_and_time_in_force ... ok
[INFO] [stdout] test binance::order_entry::a_market_order_names_no_price_at_all ... ok
[INFO] [stdout] test binance::order_entry::a_refusal_that_names_its_code_is_final ... ok
[INFO] [stdout] test binance::order_entry::a_server_error_is_unknown_because_it_may_have_been_processed ... ok
[INFO] [stdout] test binance::order_entry::a_timeout_whose_execution_status_is_unknown_is_not_a_refusal ... ok
[INFO] [stdout] test binance::order_entry::a_short_sends_a_positive_quantity_and_a_sell_side ... ok
[INFO] [stdout] test binance::order_entry::an_acceptance_is_read_into_an_ack ... ok
[INFO] [stdout] test binance::order_entry::a_success_that_cannot_be_read_is_unknown_not_success ... ok
[INFO] [stdout] test binance::recovery::a_cancelled_remainder_is_its_own_report_after_the_fills ... ok
[INFO] [stdout] test binance::recovery::a_filled_order_is_one_fill_that_ends_it ... ok
[INFO] [stdout] test binance::recovery::a_fill_in_pieces_ends_only_on_the_last ... ok
[INFO] [stdout] test binance::recovery::an_untouched_resting_order_recovers_nothing ... ok
[INFO] [stdout] test binance::recovery::another_orders_trade_is_not_booked_against_this_one ... ok
[INFO] [stdout] test binance::recovery::decimals_add_exactly ... ok
[INFO] [stdout] test binance::listings::a_contract_the_venue_does_not_list_is_none ... ok
[INFO] [stdout] test binance::order_entry::a_client_id_that_could_rewrite_the_query_is_refused_before_sending ... ok
[INFO] [stdout] test binance::listings::the_first_contract_is_still_found_correctly ... ok
[INFO] [stdout] test binance::order_entry::a_refusal_with_no_code_is_unknown_rather_than_assumed_final ... ok
[INFO] [stdout] test binance::signing_tests::an_empty_query_signs_what_it_sends_too ... ok
[INFO] [stdout] test binance::order_entry::the_signature_covers_the_order_parameters ... ok
[INFO] [stdout] test binance::signing_tests::the_signature_covers_exactly_the_query_that_is_sent ... ok
[INFO] [stdout] test binance::recovery::trades_that_do_not_add_up_are_refused ... ok
[INFO] [stdout] test binance::signing_tests::a_failed_request_does_not_report_its_signature ... ok
[INFO] [stdout] test binance::stale_timestamp::an_unknown_execution_status_is_not_retried ... ok
[INFO] [stdout] test binance::used_weight::a_weight_that_was_not_reported_is_not_zero ... ok
[INFO] [stdout] test binance::stale_timestamp::the_prose_alone_does_not_count ... ok
[INFO] [stdout] test binance::user_stream::a_fill_carries_the_ids_that_join_it_to_an_order_and_deduplicate_it ... ok
[INFO] [stdout] test binance::user_stream::a_fill_carries_what_the_venue_said_it_paid ... ok
[INFO] [stdout] test binance::used_weight::a_rate_limit_refusal_still_reports_its_weight ... ok
[INFO] [stdout] test binance::user_stream::a_fill_says_which_way_it_went ... ok
[INFO] [stdout] test binance::user_stream::a_non_fill_has_no_trade_id_rather_than_a_sentinel_one ... ok
[INFO] [stdout] test binance::user_stream::a_stream_does_not_print_its_own_credential ... ok
[INFO] [stdout] test binance::signing_tests::venue_time_moves_with_the_measured_offset ... ok
[INFO] [stdout] test binance::stale_timestamp::a_stale_timestamp_is_recognised ... ok
[INFO] [stdout] test binance::stale_timestamp::a_transport_failure_is_not_a_clock_problem ... ok
[INFO] [stdout] test binance::stale_timestamp::rate_limiting_is_not_retried ... ok
[INFO] [stdout] test binance::user_stream::an_unmapped_event_is_kept_whole_rather_than_dropped ... ok
[INFO] [stdout] test binance::user_stream::something_that_is_not_an_account_event_is_none ... ok
[INFO] [stdout] test binance::user_stream::orders_the_venue_placed_itself_are_named ... ok
[INFO] [stdout] test binance::user_stream::the_stream_host_follows_the_rest_base ... ok
[INFO] [stdout] test bitget::demo::a_demo_client_marks_every_private_request ... ok
[INFO] [stdout] test bitget::tests::a_refusal_arrives_inside_a_200 ... ok
[INFO] [stdout] test bitget::tests::an_answer_this_adapter_cannot_read_concludes_nothing ... ok
[INFO] [stdout] test bitget::tests::the_success_code_is_five_zeroes_and_not_one ... ok
[INFO] [stdout] test broker::tests::a_broker_code_is_added_without_touching_the_adapter ... ok
[INFO] [stdout] test bitget::tests::the_signature_is_over_milliseconds_not_an_iso_stamp ... ok
[INFO] [stdout] test binance::used_weight::every_response_updates_the_weight_on_both_venues ... ok
[INFO] [stdout] test binance::used_weight::the_one_minute_weight_is_read_from_its_header ... ok
[INFO] [stdout] test broker::tests::a_number_is_checked_by_value_and_not_by_length ... ok
[INFO] [stdout] test broker::tests::a_prefix_without_digits_cannot_nest ... ok
[INFO] [stdout] test broker::tests::a_venue_that_cannot_hold_a_prefix_says_so_at_construction ... ok
[INFO] [stdout] test binance::user_stream::absent_means_taker_rather_than_maker ... ok
[INFO] [stdout] test binance::user_stream::an_expired_key_is_an_event_and_not_silence ... ok
[INFO] [stdout] test bitget::tests::an_order_body_carries_coins_and_the_product_line ... ok
[INFO] [stdout] test broker::tests::a_broker_code_is_alphanumeric_on_every_venue ... ok
[INFO] [stdout] test broker::tests::an_id_that_the_venue_will_not_take_is_refused_here ... ok
[INFO] [stdout] test broker::tests::both_shipped_venues_take_a_composed_id ... ok
[INFO] [stdout] test broker::tests::ownership_and_attribution_vary_independently ... ok
[INFO] [stdout] test broker::tests::ownership_matches_the_whole_composed_prefix ... ok
[INFO] [stdout] test creds::tests::a_blank_half_is_refused_rather_than_used ... ok
[INFO] [stdout] test broker::tests::six_venues_take_four_shapes ... ok
[INFO] [stdout] test broker::tests::the_length_limit_applies_to_the_composed_id ... ok
[INFO] [stdout] test creds::tests::a_blank_passphrase_is_refused_rather_than_signed_with ... ok
[INFO] [stdout] test creds::tests::a_credential_file_is_read_before_the_environment ... ok
[INFO] [stdout] test creds::tests::a_missing_value_is_named_with_both_places_it_was_looked_for ... ok
[INFO] [stdout] test creds::tests::an_unreadable_credential_is_an_error_not_a_fallback ... ok
[INFO] [stdout] test creds::tests::debug_never_shows_the_passphrase ... ok
[INFO] [stdout] test creds::tests::debug_never_shows_the_secret ... ok
[INFO] [stdout] test deribit::account_reads::an_error_envelope_is_not_an_empty_account ... ok
[INFO] [stdout] test deribit::account_reads::the_venue_names_the_margin_balance_itself ... ok
[INFO] [stdout] test creds::tests::debug_shows_enough_key_to_identify_the_account ... ok
[INFO] [stdout] test deribit::account_reads::a_balance_that_cannot_be_read_is_an_error_and_never_a_zero ... ok
[INFO] [stdout] test deribit::tests::a_label_is_sixty_four_characters ... ok
[INFO] [stdout] test deribit::tests::an_answer_this_adapter_cannot_read_concludes_nothing ... ok
[INFO] [stdout] test deribit::tests::an_order_is_read_out_of_the_rpc_envelope ... ok
[INFO] [stdout] test creds::tests::the_environment_is_the_fallback ... ok
[INFO] [stdout] test exec::tests::a_scale_of_zero_prints_an_integer_without_a_point ... ok
[INFO] [stdout] test deribit::tests::an_order_the_venue_rejected_is_not_an_acceptance ... ok
[INFO] [stdout] test deribit::tests::cancelled_with_two_ls_becomes_canceled_with_one ... ok
[INFO] [stdout] test deribit::tests::the_side_chooses_the_method_rather_than_a_parameter ... ok
[INFO] [stdout] test exec::tests::a_fixed_point_price_becomes_exact_decimal_text ... ok
[INFO] [stdout] test deribit::tests::a_refusal_is_the_error_member_and_not_the_status_line ... ok
[INFO] [stdout] test exec::tests::a_venue_id_can_be_a_name_rather_than_a_number ... ok
[INFO] [stdout] test exec::tests::an_unknown_outcome_is_not_an_error_type ... ok
[INFO] [stdout] test exec::tests::negatives_keep_their_sign_and_their_magnitude ... ok
[INFO] [stdout] test http::tests::the_venue_client_follows_no_redirect_and_speaks_only_https ... ok
[INFO] [stdout] test hyperliquid::account_reads::a_position_read_keeps_only_the_coin_it_was_asked_about ... ok
[INFO] [stdout] test hyperliquid::account_reads::a_position_takes_its_sign_from_the_number ... ok
[INFO] [stdout] test hyperliquid::account_reads::a_response_with_no_position_list_is_not_a_flat_account ... ok
[INFO] [stdout] test hyperliquid::account_reads::a_summary_that_fails_the_identity_is_refused ... ok
[INFO] [stdout] test deribit::account_reads::a_resting_order_carries_its_label_as_the_client_id ... ok
[INFO] [stdout] test exec::tests::the_fraction_keeps_its_leading_zeros ... ok
[INFO] [stdout] test deribit::account_reads::a_short_position_is_negative_because_the_direction_says_so ... ok
[INFO] [stdout] test http::tests::a_plain_text_request_is_refused ... ok
[INFO] [stdout] test hyperliquid::account_reads::the_margin_summary_satisfies_the_identity_this_build_reads_it_by ... ok
[INFO] [stdout] test hyperliquid::account_reads::an_account_holding_nothing_reads_as_flat ... ok
[INFO] [stdout] test hyperliquid::tests::a_cancel_is_read_as_a_cancel ... ok
[INFO] [stdout] test hyperliquid::tests::a_cloid_is_the_fourth_shape_a_client_id_takes ... ok
[INFO] [stdout] test hyperliquid::tests::a_fill_or_kill_order_is_refused ... ok
[INFO] [stdout] test hyperliquid::tests::a_map_keeps_the_order_it_was_given ... ok
[INFO] [stdout] test hyperliquid::tests::an_action_refused_as_a_whole_is_a_rejection ... ok
[INFO] [stdout] test hyperliquid::tests::a_vault_action_names_the_vault_in_its_body ... ok
[INFO] [stdout] test hyperliquid::tests::an_address_is_derived_the_way_the_venue_recovers_it ... ok
[INFO] [stdout] test hyperliquid::tests::an_asset_is_a_position_in_the_universe ... ok
[INFO] [stdout] test hyperliquid::tests::account_queries_use_the_configured_master_not_the_signer ... ok
[INFO] [stdout] test hyperliquid::tests::an_order_status_is_the_orders_and_its_fill_is_what_left_the_book ... ok
[INFO] [stdout] test hyperliquid::tests::an_account_query_address_must_be_an_ethereum_address ... ok
[INFO] [stdout] test hyperliquid::tests::an_over_precise_price_is_caught_here_rather_than_by_the_venue ... ok
[INFO] [stdout] test hyperliquid::tests::the_body_and_the_signature_describe_one_order ... ok
[INFO] [stdout] test hyperliquid::tests::keccak_is_not_sha3 ... ok
[INFO] [stdout] test hyperliquid::tests::nothing_is_sent_before_the_account_role_is_known ... ok
[INFO] [stdout] test hyperliquid::tests::the_account_role_decides_whose_account_is_traded ... ok
[INFO] [stdout] test hyperliquid::tests::the_published_l1_signing_vector_on_mainnet ... ok
[INFO] [stdout] test hyperliquid::tests::the_published_order_action_hash ... ok
[INFO] [stdout] test hyperliquid::tests::the_published_l1_signing_vector_on_testnet ... ok
[INFO] [stdout] test hyperliquid::tests::the_published_vault_signing_vector ... ok
[INFO] [stdout] test json::tests::a_brace_inside_a_string_does_not_split_an_object ... ok
[INFO] [stdout] test json::tests::a_bracket_inside_a_message_does_not_end_the_array ... ok
[INFO] [stdout] test json::tests::a_key_that_appears_as_a_value_first_does_not_hide_the_field ... ok
[INFO] [stdout] test json::tests::a_missing_number_is_an_error_rather_than_zero ... ok
[INFO] [stdout] test json::tests::an_array_field_is_read_whole_rather_than_to_its_first_comma ... ok
[INFO] [stdout] test json::tests::a_field_that_is_not_an_array_is_not_read_as_one ... ok
[INFO] [stdout] test hyperliquid::tests::an_unreadable_universe_entry_fails_the_read ... ok
[INFO] [stdout] test json::tests::an_escaped_quote_inside_a_value_does_not_truncate_it ... ok
[INFO] [stdout] test json::tests::an_escaped_quote_does_not_end_a_string ... ok
[INFO] [stdout] test hyperliquid::tests::hyperliquid_numbers_drop_trailing_zeroes_before_signing ... ok
[INFO] [stdout] test json::tests::an_object_field_is_the_one_named_and_not_the_first_that_matches ... ok
[INFO] [stdout] test json::tests::an_object_field_named_first_as_a_value_is_still_found ... ok
[INFO] [stdout] test json::tests::flat_legs_are_dropped ... ok
[INFO] [stdout] test klines::tests::a_truncated_row_is_refused ... ok
[INFO] [stdout] test klines::tests::an_empty_response_is_refused ... ok
[INFO] [stdout] test klines::tests::bars_come_back_oldest_first ... ok
[INFO] [stdout] test klines::tests::decimals_scale_to_the_instrument ... ok
[INFO] [stdout] test json::tests::an_unreadable_entry_fails_the_read_rather_than_shrinking_the_list ... ok
[INFO] [stdout] test json::tests::an_unterminated_string_is_not_a_value ... ok
[INFO] [stdout] test klines::tests::each_column_is_read_from_its_own_position ... ok
[INFO] [stdout] test klines::tests::volume_is_this_bar_alone ... ok
[INFO] [stdout] test kraken::account_reads::a_legs_direction_comes_from_its_name ... ok
[INFO] [stdout] test kraken::account_reads::a_mapping_the_numbers_contradict_is_refused_rather_than_reported ... ok
[INFO] [stdout] test kraken::account_reads::an_instrument_carries_its_tick_and_what_a_contract_is_worth ... ok
[INFO] [stdout] test kraken::account_reads::an_order_state_this_build_does_not_know_is_refused ... ok
[INFO] [stdout] test kraken::account_reads::the_balance_mapping_is_checked_against_the_venues_own_numbers ... ok
[INFO] [stdout] test kraken::cancels::a_cancelled_order_is_a_successful_cancel ... ok
[INFO] [stdout] test kraken::cancels::an_answer_that_cannot_be_read_is_unknown ... ok
[INFO] [stdout] test kraken::cancels::filled_and_not_found_are_not_cancels ... ok
[INFO] [stdout] test kraken::tests::a_client_id_may_be_long_here ... ok
[INFO] [stdout] test json::tests::booleans_are_read ... ok
[INFO] [stdout] test json::tests::both_legs_of_a_hedged_position_are_read ... ok
[INFO] [stdout] test json::tests::numbers_arrive_as_strings_and_are_read_as_numbers ... ok
[INFO] [stdout] test kraken::tests::a_placed_order_is_accepted_and_keeps_its_uuid ... ok
[INFO] [stdout] test kraken::tests::a_refusal_inside_a_200_is_a_rejection_and_not_an_acceptance ... ok
[INFO] [stdout] test kraken::tests::a_request_that_never_answered_is_unknown_rather_than_failed ... ok
[INFO] [stdout] test kraken::tests::an_answer_this_adapter_cannot_read_concludes_nothing ... ok
[INFO] [stdout] test okx::account_reads::a_balance_is_read_for_the_currency_that_was_asked_for ... ok
[INFO] [stdout] test okx::account_reads::a_balance_that_cannot_be_read_is_an_error_and_never_a_zero ... ok
[INFO] [stdout] test okx::account_reads::a_failure_arrives_as_http_200_and_is_not_an_empty_account ... ok
[INFO] [stdout] test okx::account_reads::a_flat_leg_is_kept_and_an_unreported_one_is_not_invented ... ok
[INFO] [stdout] test kraken::account_reads::a_resting_orders_original_size_is_what_is_left_plus_what_filled ... ok
[INFO] [stdout] test okx::account_reads::a_legs_direction_comes_from_its_name_not_from_the_sign ... ok
[INFO] [stdout] test kraken::account_reads::an_account_with_no_positions_is_flat_and_not_unreadable ... ok
[INFO] [stdout] test okx::account_reads::a_position_mode_this_build_does_not_know_is_refused ... ok
[INFO] [stdout] test kraken::tests::the_signature_is_two_hashes_and_a_decode ... ok
[INFO] [stdout] test okx::account_reads::a_position_reads_back_through_the_instruments_own_scale ... ok
[INFO] [stdout] test okx::account_reads::an_order_state_this_build_does_not_know_is_refused ... ok
[INFO] [stdout] test kraken::tests::an_envelope_that_failed_is_refused_by_its_own_error ... ok
[INFO] [stdout] test okx::account_reads::an_orders_vocabulary_is_translated_rather_than_passed_through ... ok
[INFO] [stdout] test okx::account_reads::hedge_mode_is_read_and_an_unknown_mode_is_refused ... ok
[INFO] [stdout] test okx::account_reads::the_venue_clock_is_read_from_its_own_envelope ... ok
[INFO] [stdout] test okx::account_stream::a_channel_this_build_does_not_map_is_kept_rather_than_dropped ... ok
[INFO] [stdout] test okx::account_stream::the_reader_keeps_the_venues_own_sizes ... ok
[INFO] [stdout] test okx::account_trait::a_candle_refusal_is_not_an_empty_history ... ok
[INFO] [stdout] test okx::account_trait::a_quantity_is_a_contract_count_and_the_instrument_says_so ... ok
[INFO] [stdout] test okx::account_trait::a_stream_here_needs_neither_renewal_nor_closing ... ok
[INFO] [stdout] test okx::account_trait::candles_come_back_newest_first_and_are_replayed_oldest_first ... ok
[INFO] [stdout] test okx::account_trait::the_adapter_names_itself_the_way_the_capture_side_does ... ok
[INFO] [stdout] test okx::private_channel::a_login_event_with_a_bad_code_is_a_refusal_wearing_the_confirmations_name ... ok
[INFO] [stdout] test okx::private_channel::a_login_is_signed_over_the_verify_path_with_a_seconds_timestamp ... ok
[INFO] [stdout] test okx::private_channel::a_stream_here_has_no_key_to_renew ... ok
[INFO] [stdout] test okx::private_channel::a_stream_without_a_passphrase_is_refused_before_it_is_opened ... ok
[INFO] [stdout] test okx::private_channel::a_subscription_is_waited_on_rather_than_assumed ... ok
[INFO] [stdout] test okx::private_channel::demo_trading_is_a_different_host_here ... ok
[INFO] [stdout] test okx::tests::a_coin_quantity_becomes_the_venues_size ... ok
[INFO] [stdout] test okx::tests::a_hedged_order_names_its_leg ... ok
[INFO] [stdout] test okx::tests::a_limit_order_names_its_price_and_its_resting_rule ... ok
[INFO] [stdout] test okx::tests::a_market_order_carries_no_price ... ok
[INFO] [stdout] test okx::tests::a_missing_order_is_reported_as_missing ... ok
[INFO] [stdout] test okx::tests::a_quantity_off_the_grid_is_refused_not_rounded ... ok
[INFO] [stdout] test okx::tests::a_refusal_arriving_as_http_200_is_a_refusal ... ok
[INFO] [stdout] test okx::tests::a_request_timeout_at_the_venue_is_unknown ... ok
[INFO] [stdout] test okx::tests::a_server_error_leaves_the_order_unknown ... ok
[INFO] [stdout] test okx::tests::a_size_below_the_venues_minimum_is_refused ... ok
[INFO] [stdout] test okx::tests::a_whole_request_refusal_is_rejected_not_unknown ... ok
[INFO] [stdout] test okx::account_stream::an_entry_that_cannot_be_read_survives_as_itself ... ok
[INFO] [stdout] test okx::tests::an_accepted_order_is_accepted ... ok
[INFO] [stdout] test okx::account_stream::a_frame_with_two_fills_produces_two_events ... ok
[INFO] [stdout] test okx::account_stream::an_update_with_no_trade_id_is_not_given_one ... ok
[INFO] [stdout] test okx::tests::an_envelope_that_succeeded_does_not_make_the_order_accepted ... ok
[INFO] [stdout] test okx::account_stream::a_subscription_acknowledgement_is_not_an_account_event ... ok
[INFO] [stdout] test okx::account_stream::orders_the_venue_placed_itself_are_named ... ok
[INFO] [stdout] test okx::tests::an_existing_order_comes_back_with_its_state ... ok
[INFO] [stdout] test okx::tests::an_order_carries_contracts_and_says_so_when_it_cannot ... ok
[INFO] [stdout] test okx::tests::an_unreadable_listing_is_refused_by_field ... ok
[INFO] [stdout] test okx::tests::an_unrecognisable_body_is_unknown_rather_than_assumed ... ok
[INFO] [stdout] test okx::tests::the_timestamp_is_the_format_the_venue_accepts ... ok
[INFO] [stdout] test okx::tests::an_unfamiliar_state_is_carried_through_rather_than_mapped ... ok
[INFO] [stdout] test okx::tests::the_endpoint_decides_the_simulation_header_and_nothing_else_does ... ok
[INFO] [stdout] test okx::tests::the_signature_covers_the_timestamp_method_path_and_body ... ok
[INFO] [stdout] test okx::tests::the_venues_own_listing_is_read_correctly ... ok
[INFO] [stdout] test okx::tests::time_in_force_becomes_the_order_type ... ok
[INFO] [stdout] test position_read::tests::explicit_flat_is_comparable_but_empty_or_missing_is_unknown ... ok
[INFO] [stdout] test reconcile::tests::a_fatal_report_states_that_nothing_was_adjusted ... ok
[INFO] [stdout] test reconcile::tests::a_flat_leg_agrees_with_a_venue_that_does_not_mention_it ... ok
[INFO] [stdout] test reconcile::tests::a_flat_leg_the_venue_does_report_is_not_a_position_we_missed ... ok
[INFO] [stdout] test reconcile::tests::a_leg_with_size_is_still_reported_absent ... ok
[INFO] [stdout] test reconcile::tests::a_position_only_the_venue_knows_about_is_found ... ok
[INFO] [stdout] test reconcile::tests::a_quantity_on_the_grid_passes_the_grid_check ... ok
[INFO] [stdout] test reconcile::tests::agreement_reports_nothing ... ok
[INFO] [stdout] test reconcile::tests::an_agreement_is_newline_terminated_like_everything_else ... ok
[INFO] [stdout] test reconcile::tests::an_entry_price_difference_is_fatal_on_its_own ... ok
[INFO] [stdout] test okx::tests::base64_matches_the_standard_vectors ... ok
[INFO] [stdout] test reconcile::tests::an_off_grid_quantity_is_reported_as_such ... ok
[INFO] [stdout] test okx::tests::the_body_is_built_in_a_fixed_order ... ok
[INFO] [stdout] test okx::tests::the_client_id_rule_is_this_venues_and_not_the_other_ones ... ok
[INFO] [stdout] test reconcile::tests::an_order_only_the_venue_knows_about_is_found ... ok
[INFO] [stdout] test reconcile::tests::an_order_the_venue_did_not_mention_is_reported_but_not_fatal ... ok
[INFO] [stdout] test reconcile::tests::both_legs_are_compared_rather_than_the_net ... ok
[INFO] [stdout] test reconcile::tests::representation_noise_is_absorbed_and_disagreement_is_not ... ok
[INFO] [stdout] test record::tests::a_float_rendering_and_a_leg_name_are_not_differences ... ok
[INFO] [stdout] test record::tests::a_leg_that_vanished_is_reported ... ok
[INFO] [stdout] test record::tests::a_record_survives_the_round_trip ... ok
[INFO] [stdout] test position_read::tests::stream_before_rest_and_rest_before_stream_have_distinct_read_cuts ... ok
[INFO] [stdout] test reconcile::tests::a_size_difference_is_fatal ... ok
[INFO] [stdout] test record::tests::a_record_that_does_not_parse_is_refused_by_line ... ok
[INFO] [stdout] test record::tests::an_entry_price_that_moved_is_reported ... ok
[INFO] [stdout] test record::tests::flat_legs_are_not_recorded ... ok
[INFO] [stdout] test snapshot::tests::a_complete_snapshot_seals ... ok
[INFO] [stdout] test snapshot::tests::a_hedged_pair_nets_to_zero_while_both_legs_stand ... ok
[INFO] [stdout] test snapshot::tests::a_snapshot_missing_a_part_cannot_be_sealed ... ok
[INFO] [stdout] test snapshot::tests::legs_are_addressable_by_side ... ok
[INFO] [stdout] test snapshot::tests::the_failure_names_every_missing_part ... ok
[INFO] [stdout] test reconcile::tests::a_venue_figure_that_is_not_a_number_is_a_fatal_divergence ... ok
[INFO] [stdout] test stream::health::a_position_missing_from_one_view_is_a_disagreement ... ok
[INFO] [stdout] test position_read::tests::stale_future_wrong_scope_mode_and_invalid_values_do_not_compare ... ok
[INFO] [stdout] test record::tests::ordering_from_the_venue_does_not_make_two_readings_differ ... ok
[INFO] [stdout] test stream::health::agreement_resets_the_count ... ok
[INFO] [stdout] test stream::health::one_disagreement_is_not_evidence_but_three_are ... ok
[INFO] [stdout] test stream::health::rounding_does_not_condemn_a_healthy_stream ... ok
[INFO] [stdout] test stream::health::the_two_legs_of_a_hedged_account_are_compared_separately ... ok
[INFO] [stdout] test stream::opening_sequence::a_frame_that_needs_no_answer_does_not_wait_for_one ... ok
[INFO] [stdout] test stream::opening_sequence::a_login_frame_does_not_print_its_signature ... ok
[INFO] [stdout] test record::tests::an_order_that_appeared_is_reported ... ok
[INFO] [stdout] test stream::opening_sequence::a_login_that_is_never_answered_gives_up_rather_than_waiting_forever ... ok
[INFO] [stdout] test stream::opening_sequence::a_message_that_is_not_an_answer_does_not_end_the_wait ... ok
[INFO] [stdout] test record::tests::the_time_between_readings_is_not_a_difference ... ok
[INFO] [stdout] test record::tests::comments_are_allowed ... ok
[INFO] [stdout] test stream::message_limits::a_large_but_plausible_message_is_read ... ok
[INFO] [stdout] test stream::health::an_empty_account_agrees_with_itself ... ok
[INFO] [stdout] test stream::opening_sequence::a_login_is_confirmed_before_the_next_frame_is_sent ... ok
[INFO] [stdout] test stream::opening_sequence::a_refused_login_fails_the_connection_and_carries_the_reason ... ok
[INFO] [stdout] test stream::opening_sequence::a_venue_that_authenticates_in_its_url_sends_nothing ... ok
[INFO] [stdout] test stream::tests::a_close_frame_is_a_disconnect_and_not_an_idle_period ... ok
[INFO] [stdout] test stream::tests::silence_past_the_window_is_death_and_silence_within_it_is_not ... ok
[INFO] [stdout] test stream::tests::the_window_outlasts_a_lost_ping ... ok
[INFO] [stdout] test watch::tests::a_balance_move_is_reported ... ok
[INFO] [stdout] test watch::tests::a_cover_filling_shows_as_a_resize_and_names_the_moved_anchor ... ok
[INFO] [stdout] test watch::tests::a_partial_fill_on_a_resting_order_is_seen ... ok
[INFO] [stdout] test watch::tests::a_position_appearing_and_disappearing_are_distinct_changes ... ok
[INFO] [stdout] test watch::tests::an_order_leaving_the_book_is_reported_without_a_cause ... ok
[INFO] [stdout] test watch::tests::quiet_reads_and_failed_reads_are_counted_separately ... ok
[INFO] [stdout] test watch::tests::the_first_read_reports_nothing ... ok
[INFO] [stdout] test stream::message_limits::an_oversized_message_is_a_disconnect ... ok
[INFO] [stdout] test stream::tests::renewal_leaves_room_for_a_retry ... ok
[INFO] [stderr]      Running unittests src/bin/oq-order-check.rs (/opt/rustwide/target/release/build/oq-gateway/ca88cbe1f6789a88/out/oq_order_check-ca88cbe1f6789a88)
[INFO] [stdout] test stream::opening_sequence::two_openings_are_the_same_when_the_same_thing_gets_sent ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 331 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-recon.rs (/opt/rustwide/target/release/build/oq-gateway/1001e88b2a7b7153/out/oq_recon-1001e88b2a7b7153)
[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 5 tests
[INFO] [stdout] test tests::a_leg_spec_parses ... ok
[INFO] [stdout] test tests::a_missing_reason_still_names_the_part ... ok
[INFO] [stdout] test tests::a_short_leg_keeps_its_sign ... ok
[INFO] [stdout] test tests::every_missing_part_is_reported_with_its_reason ... ok
[INFO] [stdout] test tests::a_malformed_spec_is_refused_with_the_input_in_the_message ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/conformance.rs (/opt/rustwide/target/release/build/oq-gateway/ad7e9f87a2ac8b93/out/conformance-ad7e9f87a2ac8b93)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test an_adapter_that_calls_an_unanswered_request_a_refusal_is_caught ... ok
[INFO] [stdout] test every_shipped_adapter_is_listed ... ok
[INFO] [stdout] test an_adapter_that_cannot_say_no_such_order_is_caught ... ok
[INFO] [stdout] test an_adapter_that_trusts_okxs_http_status_is_caught ... ok
[INFO] [stdout] test the_backpack_adapter_conforms ... ok
[INFO] [stdout] test the_bitget_adapter_conforms ... ok
[INFO] [stdout] test the_binance_adapter_conforms ... ok
[INFO] [stdout] test an_adapter_that_reads_a_nested_answer_flat_is_caught ... ok
[INFO] [stdout] test the_deribit_adapter_conforms ... ok
[INFO] [stdout] test the_hyperliquid_adapter_conforms ... ok
[INFO] [stdout] test the_okx_adapter_conforms ... ok
[INFO] [stdout] test the_kraken_adapter_conforms ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running tests/time_in_force.rs (/opt/rustwide/target/release/build/oq-gateway/e039962f66f5f839/out/time_in_force-e039962f66f5f839)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test a_market_order_is_unchanged ... ok
[INFO] [stdout] test backpack_states_every_time_in_force ... ok
[INFO] [stdout] test bitget_states_every_time_in_force ... ok
[INFO] [stdout] test deribit_states_every_time_in_force ... ok
[INFO] [stdout] test kraken_expresses_ioc_and_refuses_fill_or_kill ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-hash/8c2f4a90b414cacb/out/oq_hash-8c2f4a90b414cacb)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 16 tests
[INFO] [stdout] test crc32::tests::detects_single_bit_flips ... ok
[INFO] [stdout] test crc32::tests::empty_input_is_zero ... ok
[INFO] [stdout] test hmac::tests::a_long_key_and_a_long_message ... ok
[INFO] [stdout] test hmac::tests::rfc_4231_sha512_case_one ... ok
[INFO] [stdout] test hmac::tests::rfc_4231_sha512_case_two ... ok
[INFO] [stdout] test hmac::tests::rfc_case_one ... ok
[INFO] [stdout] test hmac::tests::rfc_case_two ... ok
[INFO] [stdout] test hmac::tests::the_key_participates ... ok
[INFO] [stdout] test sha256::tests::streaming_matches_one_shot ... ok
[INFO] [stdout] test sha256::tests::a_single_bit_changes_the_digest ... ok
[INFO] [stdout] test sha256::tests::matches_the_standard_test_vectors ... ok
[INFO] [stdout] test crc32::tests::matches_the_standard_check_value ... ok
[INFO] [stdout] test hmac::tests::a_key_longer_than_the_block_is_hashed_first ... ok
[INFO] [stdout] test hmac::tests::rfc_4231_sha512_a_key_longer_than_its_block ... ok
[INFO] [stdout] test sha512::tests::a_message_that_spills_the_length_into_another_block ... ok
[INFO] [stdout] test sha512::tests::the_standard_vectors ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-ingest/f4f15a27f5adfe2f/out/oq_ingest-f4f15a27f5adfe2f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 16 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 38 tests
[INFO] [stdout] test agg::batching::the_cumulative_volume_does_not_restart_at_a_boundary ... ok
[INFO] [stdout] test agg::batching::a_batch_boundary_inside_a_window_does_not_split_the_window ... ok
[INFO] [stdout] test agg::carried_price::a_late_event_does_not_reopen_a_published_window ... ok
[INFO] [stdout] test agg::snapshots::a_break_in_the_chain_waits_for_a_new_snapshot ... ok
[INFO] [stdout] test agg::snapshots::a_snapshot_older_than_the_stream_is_refused ... ok
[INFO] [stdout] test agg::snapshots::dropping_the_book_forgets_what_was_held ... ok
[INFO] [stdout] test agg::tests::a_dropped_book_quotes_nothing_until_rebuilt ... ok
[INFO] [stdout] test agg::tests::a_gap_clears_the_quote_rather_than_carrying_a_stale_one ... ok
[INFO] [stdout] test agg::tests::a_window_closes_when_an_event_crosses_its_boundary ... ok
[INFO] [stdout] test agg::carried_price::a_quiet_window_carries_the_price_rather_than_publishing_zero ... ok
[INFO] [stdout] test agg::batching::folding_in_batches_gives_exactly_what_folding_at_once_gives ... ok
[INFO] [stdout] test agg::tests::a_zero_window_is_refused_rather_than_divided_by ... ok
[INFO] [stdout] test agg::snapshots::a_book_that_waits_for_its_snapshot_has_both_sides ... ok
[INFO] [stdout] test agg::tests::flushing_an_empty_aggregator_produces_nothing ... ok
[INFO] [stdout] test agg::tests::volume_is_cumulative_so_consumers_difference_it ... ok
[INFO] [stdout] test agg::snapshots::held_updates_older_than_the_snapshot_are_skipped ... ok
[INFO] [stdout] test agg::carried_price::nothing_is_published_before_the_first_trade ... ok
[INFO] [stdout] test batches::tests::depth_is_read_before_trades ... ok
[INFO] [stdout] test batches::tests::a_missing_archive_holds_no_hours ... ok
[INFO] [stdout] test batches::tests::an_hour_is_one_file_however_the_archive_left_it ... ok
[INFO] [stdout] test agg::tests::extremes_do_not_carry_across_a_boundary ... ok
[INFO] [stdout] test agg::snapshots::the_hold_is_bounded ... ok
[INFO] [stdout] test agg::tests::a_quiet_market_still_produces_ticks_when_a_timer_advances_it ... ok
[INFO] [stdout] test tests::a_window_of_trades_still_reports_the_book ... ok
[INFO] [stdout] test tests::a_zero_window_is_rejected_rather_than_dividing_by_it ... ok
[INFO] [stdout] test tests::an_unreadable_payload_is_counted_rather_than_fatal ... ok
[INFO] [stdout] test tests::an_update_inside_a_window_precedes_that_windows_tick ... ok
[INFO] [stdout] test tests::a_stretch_with_no_events_produces_no_windows ... ok
[INFO] [stdout] test tests::an_update_that_closes_a_window_follows_that_windows_tick ... ok
[INFO] [stdout] test tests::no_depth_update_is_lost_between_the_folds ... ok
[INFO] [stdout] test tests::extremes_belong_to_their_own_window ... ok
[INFO] [stdout] test tests::depth_supplies_top_of_book_and_a_gap_clears_it ... ok
[INFO] [stdout] test tests::volume_accumulates_so_differences_are_per_window ... ok
[INFO] [stdout] test tests::windows_dropped_before_the_first_trade_reach_the_report ... ok
[INFO] [stdout] test tests::captured_gap_and_snapshot_stay_at_their_window_boundary ... ok
[INFO] [stdout] test tests::depth_alone_publishes_nothing ... ok
[INFO] [stderr]      Running unittests src/bin/oq-ingest.rs (/opt/rustwide/target/release/build/oq-ingest/76add405b15d744d/out/oq_ingest-76add405b15d744d)
[INFO] [stdout] test tests::native_okx_snapshots_are_resets_not_incremental_updates ... ok
[INFO] [stderr]      Running unittests src/bin/oq-tiers.rs (/opt/rustwide/target/release/build/oq-ingest/f05b3412ab520955/out/oq_tiers-f05b3412ab520955)
[INFO] [stdout] test tests::both_folds_produce_the_same_ticks ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 38 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[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 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] [stderr]      Running tests/quiet_windows.rs (/opt/rustwide/target/release/build/oq-ingest/0021ddf6116d8320/out/quiet_windows-0021ddf6116d8320)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test a_quiet_market_does_not_invent_a_drawdown ... ok
[INFO] [stdout] test a_quiet_market_does_not_liquidate_a_levered_account ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-journal/b552a795c2480c60/out/oq_journal-b552a795c2480c60)
[INFO] [stdout] 
[INFO] [stdout] running 29 tests
[INFO] [stdout] test frame::tests::bad_magic_is_distinguished_from_truncation ... ok
[INFO] [stdout] test frame::tests::records_concatenate_without_ambiguity ... ok
[INFO] [stdout] test frame::tests::corrupted_length_is_caught_before_it_is_acted_on ... ok
[INFO] [stdout] test reader::tests::a_final_record_the_writer_did_not_finish_is_still_a_torn_tail ... ok
[INFO] [stdout] test frame::tests::corrupted_payload_is_caught ... ok
[INFO] [stdout] test frame::tests::empty_payload_round_trips ... ok
[INFO] [stdout] test frame::tests::round_trip ... ok
[INFO] [stdout] test frame::tests::every_single_bit_flip_in_a_record_is_detected ... ok
[INFO] [stdout] test frame::tests::truncation_at_every_length_reports_incomplete ... ok
[INFO] [stdout] test reader::tests::a_sequence_at_the_top_of_the_range_is_refused ... ok
[INFO] [stdout] test snapshot::tests::latest_at_or_before_respects_the_bound ... ok
[INFO] [stdout] test reader::tests::a_damaged_length_in_the_middle_is_corruption_not_a_torn_tail ... ok
[INFO] [stdout] test snapshot::tests::corruption_is_rejected ... ok
[INFO] [stdout] test snapshot::tests::missing_directory_is_not_an_error ... ok
[INFO] [stdout] test reader::tests::absent_journal_replays_as_empty ... ok
[INFO] [stdout] test snapshot::tests::round_trip ... ok
[INFO] [stdout] test snapshot::tests::truncation_is_rejected ... ok
[INFO] [stdout] test reader::tests::corruption_in_the_middle_is_an_error_not_a_stop ... ok
[INFO] [stdout] test reader::tests::torn_tail_stops_cleanly_and_reports_the_resume_offset ... ok
[INFO] [stdout] test reader::tests::since_selects_the_recovery_range ... ok
[INFO] [stdout] test snapshot::tests::latest_ignores_damaged_files_and_prefers_the_newest_valid_one ... ok
[INFO] [stdout] test reader::tests::round_trip_preserves_order_and_payloads ... ok
[INFO] [stdout] test writer::tests::append_at_refuses_a_gap ... ok
[INFO] [stdout] test writer::tests::appends_are_numbered_from_zero ... ok
[INFO] [stdout] test writer::tests::a_failed_write_stops_every_later_append ... ok
[INFO] [stdout] test writer::tests::a_second_writer_is_refused_while_the_first_holds_it ... ok
[INFO] [stdout] test writer::tests::reopening_continues_the_sequence ... ok
[INFO] [stdout] test writer::tests::the_test_hook_fails_a_writer_the_same_way_at_the_chosen_point ... ok
[INFO] [stdout] test writer::tests::a_torn_tail_is_truncated_on_reopen ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 29 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.06s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 101 tests
[INFO] [stdout] test archive::tests::a_file_named_zst_that_is_not_one_is_named_as_the_problem ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-l2feed/4cae16cda361b420/out/oq_l2feed-4cae16cda361b420)
[INFO] [stdout] test archive::tests::a_compressed_file_round_trips_whatever_it_is_called ... ok
[INFO] [stdout] test day::tests::boundaries_are_exact ... ok
[INFO] [stdout] test archive::tests::an_uncompressed_file_reads_through_unchanged ... ok
[INFO] [stdout] test archive::tests::the_limit_scales_with_the_compressed_size ... ok
[INFO] [stdout] test archive::tests::anything_that_is_not_a_capture_file_has_no_stem ... ok
[INFO] [stdout] test archive::tests::the_stem_is_the_same_compressed_or_not ... ok
[INFO] [stdout] test day::tests::known_dates ... ok
[INFO] [stdout] test day::tests::leap_days_exist_where_they_should ... ok
[INFO] [stdout] test day::window_tests::hourly_windows_split_the_day ... ok
[INFO] [stdout] test day::window_tests::the_last_hour_of_a_day_precedes_the_first_of_the_next ... ok
[INFO] [stdout] test disk::tests::parses_linux_output ... ok
[INFO] [stdout] test day::window_tests::windows_are_ordered_and_boundaries_are_exact ... ok
[INFO] [stdout] test disk::tests::parses_macos_output ... ok
[INFO] [stdout] test disk::tests::parses_output_wrapped_onto_a_second_line ... ok
[INFO] [stdout] test disk::tests::rejects_unparseable_output_rather_than_guessing ... ok
[INFO] [stdout] test frame::tests::a_header_cut_short_is_a_torn_tail ... ok
[INFO] [stdout] test day::window_tests::parses_its_own_names ... ok
[INFO] [stdout] test day::tests::round_trips_over_a_long_range ... ok
[INFO] [stdout] test frame::tests::a_torn_final_record_stops_reading_without_erroring ... ok
[INFO] [stdout] test day::window_tests::daily_windows_ignore_the_hour ... ok
[INFO] [stdout] test frame::tests::control_records_have_no_exchange_timestamp ... ok
[INFO] [stdout] test frame::tests::any_flipped_bit_in_a_header_is_reported_not_read_past ... ok
[INFO] [stdout] test frame::tests::corruption_before_the_end_is_an_error ... ok
[INFO] [stdout] test frame::tests::day_ts_prefers_exchange_time ... ok
[INFO] [stdout] test frame::tests::round_trips ... ok
[INFO] [stdout] test frame::tests::version_1_frames_still_read_alone_and_mixed ... ok
[INFO] [stdout] test manifest::tests::an_absent_range_is_null_rather_than_the_epoch ... ok
[INFO] [stdout] test manifest::tests::builder_tracks_ranges_and_gaps ... ok
[INFO] [stdout] test frame::tests::frames_are_written_as_version_2 ... ok
[INFO] [stdout] test manifest::tests::gap_records_are_recognizable ... ok
[INFO] [stdout] test frame::tests::rejects_impossible_lengths_and_unknown_kinds ... ok
[INFO] [stdout] test frame::tests::payload_bytes_survive_verbatim ... ok
[INFO] [stdout] test manifest::tests::json_has_the_documented_shape ... ok
[INFO] [stdout] test manifest::tests::json_strings_are_escaped ... ok
[INFO] [stdout] test peer::tests::a_connection_to_ourselves_reports_our_own_uid ... ok
[INFO] [stdout] test session::tests::projects_a_daily_volume_from_what_it_measured ... ok
[INFO] [stdout] test disk::tests::reads_real_free_space_for_the_temp_directory ... ok
[INFO] [stdout] test session::tests::a_low_rate_stream_reaches_disk_without_waiting_for_the_record_threshold ... ok
[INFO] [stdout] test session::tests::a_payload_without_an_event_time_still_lands_in_a_file ... ok
[INFO] [stdout] test stream::tests::paths_follow_the_documented_layout ... ok
[INFO] [stdout] test venue::binance::cadence::the_book_is_offered_at_two_cadences ... ok
[INFO] [stdout] test venue::binance::tests::a_confirmed_but_dead_stream_is_caught_by_the_deadline ... ok
[INFO] [stdout] test session::tests::stops_at_the_disk_floor_instead_of_filling_the_host ... ok
[INFO] [stdout] test venue::binance::tests::a_payload_without_an_event_time_yields_none ... ok
[INFO] [stdout] test session::tests::writes_every_received_message_and_marks_the_disconnect ... ok
[INFO] [stdout] test venue::binance::tests::a_silent_stream_carries_a_keepalive_and_a_busy_one_does_not ... ok
[INFO] [stdout] test venue::binance::tests::event_time_is_read_from_the_e_field ... ok
[INFO] [stdout] test venue::binance::tests::precisions_differ_between_contracts ... ok
[INFO] [stdout] test venue::binance::tests::the_depth_snapshot_is_asked_of_the_deployment_being_traded ... ok
[INFO] [stdout] test venue::binance::tests::the_id_matches_the_registry_key ... ok
[INFO] [stdout] test venue::binance::tests::the_subscription_is_the_url_so_nothing_is_sent ... ok
[INFO] [stdout] test venue::binance_instruments::tests::an_unlisted_symbol_is_none_rather_than_a_default ... ok
[INFO] [stdout] test venue::binance_instruments::tests::precisions_differ_between_contracts ... ok
[INFO] [stdout] test venue::binance_instruments::tests::the_contracts_that_are_captured_are_present ... ok
[INFO] [stdout] test venue::okx::tests::a_hyphenated_channel_does_not_become_a_hyphenated_id ... ok
[INFO] [stdout] test venue::okx::tests::a_quoted_timestamp_is_read_where_a_bare_one_would_not_be ... ok
[INFO] [stdout] test venue::okx::tests::a_sequence_number_that_cannot_be_placed_is_refused ... ok
[INFO] [stdout] test venue::binance::tests::a_liquidation_feed_is_allowed_to_be_silent ... ok
[INFO] [stdout] test venue::okx::tests::a_trades_all_payload_is_still_a_trade ... ok
[INFO] [stdout] test venue::binance::tests::a_polled_payload_carries_its_own_event_time ... ok
[INFO] [stdout] test venue::okx::tests::a_usd_suffix_is_not_translated_into_the_inverse_contract ... ok
[INFO] [stdout] test venue::okx::tests::every_trade_in_a_batched_frame_is_counted ... ok
[INFO] [stdout] test venue::okx::tests::an_unknown_instrument_is_none_rather_than_a_guess ... ok
[INFO] [stdout] test venue::okx::tests::mark_price_and_funding_are_captured_like_the_other_venue_polls_them ... ok
[INFO] [stdout] test venue::okx::tests::neither_venue_reads_the_other_venue_ids ... ok
[INFO] [stdout] test venue::okx::tests::symbols_are_translated_to_this_venue_and_left_alone_if_already_translated ... ok
[INFO] [stdout] test venue::okx::tests::the_complete_trade_feed_comes_from_the_business_endpoint ... ok
[INFO] [stdout] test venue::okx::tests::the_id_matches_the_registry_key ... ok
[INFO] [stdout] test venue::okx::tests::the_subscription_is_a_frame_rather_than_a_url ... ok
[INFO] [stdout] test venue::okx_instruments::tests::a_size_here_is_contracts_and_the_table_says_how_big_one_is ... ok
[INFO] [stdout] test venue::okx_instruments::tests::a_tick_size_becomes_a_count_of_decimal_places ... ok
[INFO] [stdout] test venue::okx_instruments::tests::an_unlisted_instrument_is_none_rather_than_a_default ... ok
[INFO] [stdout] test venue::okx::tests::precision_is_found_through_the_translated_symbol ... ok
[INFO] [stdout] test archive::tests::a_small_very_compressible_file_still_reads ... ok
[INFO] [stdout] test writer::streaming::no_file_is_nothing_to_scan ... ok
[INFO] [stdout] test writer::tests::a_late_record_at_the_boundary_lands_in_its_own_day_rather_than_killing_capture ... ok
[INFO] [stdout] test writer::tests::a_late_gap_is_counted_in_the_manifest_of_the_file_that_holds_it ... ok
[INFO] [stdout] test writer::tests::a_session_marker_reaches_disk_without_waiting_for_data ... ok
[INFO] [stdout] test archive::tests::a_frame_that_expands_past_its_limit_is_refused ... ok
[INFO] [stdout] test writer::tests::a_restart_appends_to_the_same_day_rather_than_truncating ... ok
[INFO] [stdout] test writer::tests::sealing_without_an_open_day_is_an_error_not_an_empty_manifest ... ok
[INFO] [stdout] test writer::tests::gaps_are_written_and_counted ... ok
[INFO] [stdout] test writer::tests::rotates_on_the_exchange_day_not_the_local_clock ... ok
[INFO] [stdout] test ws::bounded_connect::a_large_but_plausible_message_is_read_whole ... ok
[INFO] [stdout] test writer::tests::the_grace_window_closes_once_the_new_day_is_under_way ... ok
[INFO] [stdout] test writer::tests::writes_records_that_read_back_identically ... ok
[INFO] [stdout] test ws::bounded_connect::an_oversized_message_ends_the_connection ... ok
[INFO] [stdout] test ws::tests::an_empty_reject_marker_matches_nothing ... ok
[INFO] [stdout] test ws::tests::an_explicit_ack_is_consumed_but_data_before_it_is_not ... ok
[INFO] [stdout] test ws::tests::an_explicit_refusal_is_neither_data_nor_something_to_wait_out ... ok
[INFO] [stdout] test ws::tests::contains_does_not_match_an_empty_needle ... ok
[INFO] [stdout] test ws::tests::no_policy_confirms_immediately_and_keeps_the_message ... ok
[INFO] [stdout] test ws::tests::the_first_message_confirms_and_is_still_data ... ok
[INFO] [stdout] test writer::streaming::a_file_scanned_in_pieces_counts_what_decoding_it_whole_does ... ok
[INFO] [stdout] test session::tests::silence_without_a_keepalive_is_still_a_disconnect ... ok
[INFO] [stdout] test writer::streaming::a_file_hashed_in_pieces_has_the_whole_files_digest ... ok
[INFO] [stdout] test session::tests::a_keepalive_tick_is_not_a_disconnect ... ok
[INFO] [stdout] test session::tests::a_gap_reports_the_outage_not_the_time_the_connection_was_up ... ok
[INFO] [stdout] test ws::bounded_connect::a_silent_peer_ends_the_plain_handshake_within_the_bound ... ok
[INFO] [stdout] test ws::bounded_connect::a_silent_peer_ends_the_tls_handshake_within_the_bound ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 101 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.42s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-book-check.rs (/opt/rustwide/target/release/build/oq-l2feed/e359c878fd40e428/out/oq_book_check-e359c878fd40e428)
[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] [stderr]      Running unittests src/bin/oq-capture.rs (/opt/rustwide/target/release/build/oq-l2feed/bcf683bac819b520/out/oq_capture-bcf683bac819b520)
[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] [stderr]      Running unittests src/bin/oq-merge.rs (/opt/rustwide/target/release/build/oq-l2feed/0977db1f1c5bfc01/out/oq_merge-0977db1f1c5bfc01)
[INFO] [stderr]      Running unittests src/bin/oq-resequence.rs (/opt/rustwide/target/release/build/oq-l2feed/6ecd2a0e18c6a26f/out/oq_resequence-6ecd2a0e18c6a26f)
[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 5 tests
[INFO] [stdout] test tests::a_file_already_in_order_comes_out_byte_for_byte_the_same ... ok
[INFO] [stdout] test tests::a_record_this_tool_cannot_sequence_keeps_its_place ... ok
[INFO] [stdout] test tests::a_header_written_before_any_data_stays_first ... ok
[INFO] [stdout] test tests::a_repeat_is_dropped_even_with_a_control_between_the_copies ... ok
[INFO] [stdout] test tests::a_gap_marker_keeps_its_place_between_the_records_it_separated ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-trade-check.rs (/opt/rustwide/target/release/build/oq-l2feed/07d11971e578d70c/out/oq_trade_check-07d11971e578d70c)
[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] [stderr]      Running tests/conformance.rs (/opt/rustwide/target/release/build/oq-l2feed/67ea16e5b98ddf70/out/conformance-67ea16e5b98ddf70)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test the_okx_adapter_conforms_to_the_same_contract ... ok
[INFO] [stdout] test the_binance_adapter_conforms_to_the_contract ... ok
[INFO] [stdout] test an_adapter_with_no_instrument_definition_fails_before_anything_else ... ok
[INFO] [stdout] test the_suite_reports_every_failure_rather_than_the_first ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stderr]      Running tests/deployments.rs (/opt/rustwide/target/release/build/oq-l2feed/fb1e5c304d56d413/out/deployments-fb1e5c304d56d413)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test a_venue_with_no_test_deployment_refuses_rather_than_answering_with_production ... ok
[INFO] [stdout] test the_polled_streams_follow_the_same_deployment ... ok
[INFO] [stdout] test the_plain_registry_still_means_production ... ok
[INFO] [stdout] test the_same_venue_reaches_two_different_hosts ... ok
[INFO] [stdout] test a_read_timeout_keeps_its_kind_so_a_poller_can_tell ... ok
[INFO] [stdout] test an_unknown_venue_is_none_on_every_deployment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/merge.rs (/opt/rustwide/target/release/build/oq-l2feed/1296b3645738ead2/out/merge-1296b3645738ead2)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] binance-perp/BTCUSDT/depth/2026-08-06.oqcap                primary      61  new from secondary      41  duplicates dropped      20
[INFO] [stdout] binance-perp/BTCUSDT/depth/2026-08-06.oqcap                primary      42  new from secondary      21  duplicates dropped      16
[INFO] [stdout] 
[INFO] [stdout] files            : 1
[INFO] [stdout] from primary     : 42
[INFO] [stdout] from secondary   : 21
[INFO] [stdout] duplicates       : 16
[INFO] [stdout] failed           : 0
[INFO] [stdout] test a_hole_in_the_middle_of_the_primary_is_filled_in_order ... ok
[INFO] [stdout] 
[INFO] [stdout] files            : 1
[INFO] [stdout] from primary     : 61
[INFO] [stdout] from secondary   : 41
[INFO] [stdout] duplicates       : 20
[INFO] [stdout] failed           : 0
[INFO] [stdout] test merge_covers_the_union_exactly_once ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/quantity_units.rs (/opt/rustwide/target/release/build/oq-l2feed/43dc2c53f0fbc436/out/quantity_units-43dc2c53f0fbc436)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test a_contract_size_cannot_be_recovered_from_cash_per_tick ... ok
[INFO] [stdout] test a_venue_that_quotes_the_asset_and_one_that_quotes_contracts_disagree ... ok
[INFO] [stdout] test cash_per_tick_can_agree_while_the_contracts_do_not ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/sessions.rs (/opt/rustwide/target/release/build/oq-l2feed/05cdf6efa8c7855a/out/sessions-05cdf6efa8c7855a)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test a_session_crossing_midnight_stays_one_file ... ok
[INFO] [stdout] test a_venue_that_says_nothing_still_divides_by_the_clock ... ok
[INFO] [stderr]      Running tests/signal.rs (/opt/rustwide/target/release/build/oq-l2feed/2a32f199cbfb839e/out/signal-2a32f199cbfb839e)
[INFO] [stdout] test the_writer_honours_the_venue_rather_than_the_clock ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test sigterm_stops_the_capture_and_keeps_what_it_received ... ok
[INFO] [stdout] test reopening_a_window_keeps_the_manifest_describing_the_whole_file ... ok
[INFO] [stdout] test a_restart_seam_is_counted_as_a_gap ... ok
[INFO] [stdout] test a_torn_tail_is_cut_off_before_a_restart_appends ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/signal_interrupts_read.rs (/opt/rustwide/target/release/build/oq-l2feed/0969796c6f1d3247/out/signal_interrupts_read-0969796c6f1d3247)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-live/177f7fda83e66563/out/oq_live-177f7fda83e66563)
[INFO] [stdout] test a_blocked_read_returns_when_sigterm_arrives ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 209 tests
[INFO] [stdout] test belief::tests::a_decimal_string_becomes_fixed_point ... ok
[INFO] [stdout] test belief::tests::adding_averages_the_entry_and_reducing_leaves_it ... ok
[INFO] [stdout] test belief::tests::more_decimals_than_the_contract_quotes_is_refused ... ok
[INFO] [stdout] test belief::tests::closing_exactly_leaves_no_entry ... ok
[INFO] [stdout] test belief::tests::reducing_never_moves_the_entry ... ok
[INFO] [stdout] test book::fills::an_unparseable_fill_does_not_shadow_its_redelivery ... ok
[INFO] [stdout] test book::fills::both_sides_of_a_match_between_two_systems_are_applied ... ok
[INFO] [stdout] test book::ownership::a_book_with_no_prefix_accepts_everything ... ok
[INFO] [stdout] test book::ownership::a_prefix_that_merely_begins_with_ours_is_not_ours ... ok
[INFO] [stdout] test book::ownership::another_systems_fill_does_not_reach_the_deduplication_table ... ok
[INFO] [stdout] test book::ownership::another_systems_order_does_not_count_as_resting ... ok
[INFO] [stdout] test book::tests::a_fill_without_a_trade_id_is_not_applied ... ok
[INFO] [stdout] test book::ownership::the_same_symbol_traded_by_two_systems_is_the_case_that_matters ... ok
[INFO] [stdout] test book::ownership::our_own_order_still_counts ... ok
[INFO] [stdout] test book::tests::a_redelivered_fill_is_counted_once ... ok
[INFO] [stdout] test book::tests::adopting_the_venues_view_replaces_rather_than_merges ... ok
[INFO] [stdout] test book::tests::duplicate_final_status_still_ends_a_previously_partial_fill ... ok
[INFO] [stdout] test belief::tests::a_split_fill_lands_where_a_whole_one_would ... ok
[INFO] [stdout] test belief::tests::crossing_through_flat_resets_the_entry ... ok
[INFO] [stdout] test book::stp::an_order_ended_by_self_trade_prevention_stops_working ... ok
[INFO] [stdout] test book::tests::every_terminal_status_blocks_late_new_but_not_late_economic_fills ... ok
[INFO] [stdout] test book::tests::recovered_fill_then_late_new_and_duplicate_fill_cannot_resurrect_an_order ... ok
[INFO] [stdout] test book::tests::resting_orders_are_counted_and_removed_when_they_end ... ok
[INFO] [stdout] test book::tests::terminal_status_without_bookable_economics_still_ends_the_order ... ok
[INFO] [stdout] test book::tests::both_legs_of_a_hedged_symbol_net_together ... ok
[INFO] [stdout] test book::tests::two_different_fills_are_both_applied ... ok
[INFO] [stdout] test book::tests::the_same_order_arriving_new_twice_is_counted_once ... ok
[INFO] [stdout] test book::window::a_fill_below_the_floor_is_not_booked ... ok
[INFO] [stdout] test book::window::a_stale_final_fill_still_ends_the_order ... ok
[INFO] [stdout] test belief::tests::garbage_is_none_rather_than_zero ... ok
[INFO] [stdout] test book::window::each_symbol_has_its_own_floor ... ok
[INFO] [stdout] test books::tests::a_disagreement_with_the_venue_is_reported_and_not_corrected ... ok
[INFO] [stdout] test books::tests::an_adopted_position_is_accounted_like_any_other ... ok
[INFO] [stdout] test books::tests::a_redelivered_fill_does_not_double_the_position ... ok
[INFO] [stdout] test books::tests::equity_moves_with_the_market ... ok
[INFO] [stdout] test books::tests::a_close_reduces_the_position ... ok
[INFO] [stdout] test books::tests::the_context_reflects_the_position_rather_than_a_constant ... ok
[INFO] [stdout] test books::tests::the_books_never_invent_a_fill ... ok
[INFO] [stdout] test books::window::a_fill_below_the_floor_is_stale_everywhere ... ok
[INFO] [stdout] test books::two_systems::both_sides_of_one_trade_are_booked_and_a_redelivery_is_not ... ok
[INFO] [stdout] test clock::tests::a_manual_clock_moves_only_when_told_and_sleeping_moves_it ... ok
[INFO] [stdout] test books::tests::recovered_commissions_update_cash_once_and_keep_partial_uncertainty ... ok
[INFO] [stdout] test books::tests::recovered_zero_is_known_but_altered_or_already_priced_fills_are_refused ... ok
[INFO] [stdout] test control::tests::a_request_line_reads_as_command_origin_and_reason ... ok
[INFO] [stdout] test control::tests::json_escapes_whatever_it_is_given ... ok
[INFO] [stdout] test control::tests::a_change_without_a_reason_is_refused ... ok
[INFO] [stdout] test books::window::the_booked_count_does_not_fall_when_the_set_is_pruned ... ok
[INFO] [stdout] test control::tests::something_that_is_not_a_socket_is_never_removed ... ok
[INFO] [stdout] test books::window::both_sides_of_a_match_survive_pruning ... ok
[INFO] [stdout] test dedup::tests::a_redelivery_inside_the_window_is_a_duplicate ... ok
[INFO] [stdout] test dedup::tests::an_id_below_the_floor_is_stale_and_never_new ... ok
[INFO] [stdout] test dedup::tests::pruning_keeps_both_sides_of_a_match_inside_the_window ... ok
[INFO] [stdout] test feed::liveness::a_stream_that_goes_quiet_is_reconnected ... ok
[INFO] [stdout] test feed::liveness::a_stream_that_speaks_is_not_dropped ... ok
[INFO] [stdout] test fee_history::tests::conflicts_future_rows_and_repeated_unpriced_inventory_are_refused ... ok
[INFO] [stdout] test fee_history::tests::stable_identity_and_side_bind_rebates_and_measured_zero_without_double_counting ... ok
[INFO] [stdout] test funding::tests::a_contract_that_is_not_linear_is_not_guessed_at ... ok
[INFO] [stdout] test funding::tests::a_missing_rate_also_remains_recoverable_after_the_overdue_boundary ... ok
[INFO] [stdout] test funding::tests::a_run_that_crossed_no_settlement_measured_zero_and_one_unknown_is_unavailable ... ok
[INFO] [stdout] test funding::tests::a_settlement_is_booked_from_the_ledger_and_checked_against_the_live_legs ... ok
[INFO] [stdout] test funding::tests::an_overdue_settlement_stays_unresolved_and_late_evidence_is_booked_once ... ok
[INFO] [stdout] test funding::tests::conflicting_history_identity_cannot_change_economics_or_discard_pending ... ok
[INFO] [stdout] test funding::tests::a_flat_account_has_no_line_and_needs_none ... ok
[INFO] [stdout] test funding::tests::a_ledger_that_disagrees_with_the_live_legs_makes_the_model_untrusted ... ok
[INFO] [stdout] test funding::tests::conflicting_unknown_history_is_refused_before_any_new_identity_is_consumed ... ok
[INFO] [stdout] test funding::tests::every_line_of_a_real_ledger_is_reproduced_to_the_last_place ... ok
[INFO] [stdout] test funding::tests::known_pending_settlement_rows_are_not_stolen_by_unknown_interval_recovery ... ok
[INFO] [stdout] test clock::tests::the_system_clock_reads_the_epoch_and_moves_forward ... ok
[INFO] [stdout] test book::window::both_sides_of_a_match_survive_pruning ... ok
[INFO] [stdout] test funding::tests::schedule_rediscovery_resumes_future_booking_without_certifying_the_unknown_interval ... ok
[INFO] [stdout] test funding::tests::losing_the_next_schedule_keeps_the_known_settlement_and_records_a_new_gap ... ok
[INFO] [stdout] test funding::tests::overlapping_settlement_windows_cannot_book_the_same_identity_twice ... ok
[INFO] [stdout] test funding::tests::unknown_interval_cash_recovers_once_without_creating_model_evidence ... ok
[INFO] [stdout] test interlock::tests::a_second_claim_on_the_same_triple_is_refused ... ok
[INFO] [stdout] test interlock::held_by_the_kernel::the_lock_lives_in_the_state_directory ... ok
[INFO] [stdout] test interlock::held_by_the_kernel::a_file_left_by_a_crashed_process_does_not_block_a_restart ... ok
[INFO] [stdout] test interlock::tests::releasing_lets_the_next_run_start ... ok
[INFO] [stdout] test latency::tests::a_recorded_value_never_reads_back_higher_than_itself ... ok
[INFO] [stdout] test latency::tests::a_single_value_is_every_percentile ... ok
[INFO] [stdout] test interlock::tests::symbols_that_differ_only_in_punctuation_do_not_collide ... ok
[INFO] [stdout] test latency::tests::nothing_recorded_reports_nothing_rather_than_zero ... ok
[INFO] [stdout] test interlock::held_by_the_kernel::releasing_leaves_the_file_and_frees_the_lock ... ok
[INFO] [stdout] test latency::tests::percentiles_land_where_the_distribution_puts_them ... ok
[INFO] [stdout] test latency::tests::a_value_past_the_range_lands_in_the_last_bucket_and_is_not_dropped ... ok
[INFO] [stdout] test latency::tests::the_resolution_is_relative_and_within_one_percent ... ok
[INFO] [stdout] test metrics::tests::a_healthy_run_raises_nothing ... ok
[INFO] [stdout] test control::tests::the_socket_answers_an_allowed_peer_and_refuses_another ... ok
[INFO] [stdout] test latency::tests::the_mean_is_reported_beside_percentiles_and_not_instead_of_them ... ok
[INFO] [stdout] test metrics::tests::duplicates_are_counted_but_do_not_wake_anyone ... ok
[INFO] [stdout] test latency::tests::buckets_are_monotonic_so_a_percentile_cannot_go_backwards ... ok
[INFO] [stdout] test metrics::tests::every_metric_says_what_it_means ... ok
[INFO] [stdout] test metrics::tests::incomplete_reads_are_reported_without_waking_anyone ... ok
[INFO] [stdout] test metrics::tests::the_latency_metric_names_the_boundary_it_measured ... ok
[INFO] [stdout] test metrics::unbookable::an_unreadable_report_is_urgent_and_says_what_it_costs ... ok
[INFO] [stdout] test metrics::unbookable::none_is_silent ... ok
[INFO] [stdout] test metrics::tests::a_single_foreign_order_is_worth_waking_someone_for ... ok
[INFO] [stdout] test metrics::tests::an_unbookable_fill_is_urgent ... ok
[INFO] [stdout] test metrics::unbookable::it_is_not_the_same_alert_as_a_missing_trade_id ... ok
[INFO] [stdout] test record::tests::a_market_order_is_a_zero_limit_price_and_reads_back_as_one ... ok
[INFO] [stdout] test record::tests::a_record_with_trailing_bytes_is_not_misread_as_an_older_shape ... ok
[INFO] [stdout] test record::tests::a_submission_from_before_the_leg_reads_with_the_leg_unknown ... ok
[INFO] [stdout] test interlock::tests::the_triple_is_the_key ... ok
[INFO] [stdout] test record::tests::a_truncated_record_decodes_to_nothing_rather_than_to_garbage ... ok
[INFO] [stdout] test record::tests::an_unknown_kind_is_skipped_rather_than_misread ... ok
[INFO] [stdout] test record::tests::every_record_survives_a_round_trip ... ok
[INFO] [stdout] test record::tests::the_kinds_are_distinct_and_stable ... ok
[INFO] [stdout] test record::tests::an_unknown_outcome_tag_is_refused ... ok
[INFO] [stdout] test recovery::tests::an_absent_journal_recovers_as_an_empty_one ... ok
[INFO] [stdout] test recovery::tests::a_torn_tail_is_counted_rather_than_treated_as_corruption ... ok
[INFO] [stdout] test recovery::tests::a_settled_order_is_not_in_flight ... ok
[INFO] [stdout] test recovery::tests::an_order_whose_outcome_was_unknown_is_in_flight_too ... ok
[INFO] [stdout] test recovery::tests::an_unknown_that_was_later_resolved_is_settled ... ok
[INFO] [stdout] test recovery::tests::an_order_written_with_no_outcome_is_in_flight ... ok
[INFO] [stdout] test run::accepted_fill_observation::both_sides_of_one_trade_are_real_executions ... ok
[INFO] [stdout] test run::accepted_fill_observation::partial_fills_with_distinct_identities_are_preserved ... ok
[INFO] [stdout] test run::accepted_fill_observation::recovered_then_stream_execution_is_observed_only_once ... ok
[INFO] [stdout] test run::accepted_fill_observation::stale_and_unidentifiable_reports_cannot_pollute_the_export ... ok
[INFO] [stdout] test run::adoption::a_flat_leg_is_not_adopted ... ok
[INFO] [stdout] test run::adoption::a_hedged_pair_that_nets_to_zero_is_still_two_legs ... ok
[INFO] [stdout] test run::adoption::a_malformed_position_is_not_reported_as_zero ... ok
[INFO] [stdout] test run::adoption::a_named_leg_with_an_invalid_sign_is_refused_before_adoption ... ok
[INFO] [stdout] test run::adoption::a_netting_account_still_reads_the_sign ... ok
[INFO] [stdout] test run::adoption::each_field_uses_its_own_scale ... ok
[INFO] [stdout] test order_ids::tests::interrupted_publication_refuses_startup ... ok
[INFO] [stdout] test recovery::tests::in_flight_orders_come_back_in_the_order_they_were_sent ... ok
[INFO] [stdout] test run::adoption::the_recorded_lots_carry_their_sign ... ok
[INFO] [stdout] test run::adoption::the_side_follows_the_sign ... ok
[INFO] [stdout] test order_ids::tests::corrupted_high_water_mark_does_not_reset_to_zero ... ok
[INFO] [stdout] test run::adoption::reconciliation_preserves_an_invalid_legs_sign ... ok
[INFO] [stdout] test run::adoption_rounding::a_size_a_float_cannot_hold_exactly_is_adopted_whole ... ok
[INFO] [stdout] test run::adoption_rounding::an_entry_price_is_rounded_and_not_truncated ... ok
[INFO] [stdout] test run::deadline_tests::a_count_of_minutes_lands_that_many_minutes_ahead ... ok
[INFO] [stdout] test run::deadline_tests::a_count_past_the_clock_is_refused_and_does_not_panic ... ok
[INFO] [stdout] test run::deadline_tests::a_negative_count_is_refused ... ok
[INFO] [stdout] test run::deadline_tests::zero_is_no_deadline_rather_than_one_already_past ... ok
[INFO] [stdout] test run::endings::a_partial_fill_does_not_end_an_order ... ok
[INFO] [stdout] test run::endings::a_refusal_is_not_an_ending ... ok
[INFO] [stdout] test run::endings::an_acknowledgement_does_not_end_an_order ... ok
[INFO] [stdout] test recovery::tests::the_prefix_is_recovered_because_a_new_one_would_disown_old_orders ... ok
[INFO] [stdout] test run::endings::the_size_arrived_or_it_never_will ... ok
[INFO] [stdout] test run::fee_sign::fees_charged_are_costs_to_the_attribution ... ok
[INFO] [stdout] test run::adoption_rounding::every_size_at_this_precision_converts_exactly ... ok
[INFO] [stdout] test run::manifest_fee_policy::rates_and_warmup_invalidate_run_identity ... ok
[INFO] [stdout] test run::position_cut_tests::resume_needs_a_fresh_positive_cut_of_the_same_execution_revision ... ok
[INFO] [stdout] test run::reconnect_spacing::failures_space_attempts_out_to_a_minute_and_success_resets ... ok
[INFO] [stdout] test run::recovery::a_cancellation_nobody_heard_is_recovered ... ok
[INFO] [stdout] test run::recovery::a_fill_the_stream_never_delivered_is_recovered ... ok
[INFO] [stdout] test run::recovery::an_unanswerable_venue_recovers_nothing ... ok
[INFO] [stdout] test run::symbol_filter::a_report_about_another_symbol_is_not_this_ones ... ok
[INFO] [stdout] test run::symbol_filter::a_report_about_this_symbol_is_whatever_its_case ... ok
[INFO] [stdout] test run::tests::a_cancel_and_an_unknown_id_produce_nothing ... ok
[INFO] [stdout] test run::tests::a_limit_order_is_matched_by_id_and_carries_its_price ... ok
[INFO] [stdout] test run::recovery::a_fill_already_booked_is_not_recovered ... ok
[INFO] [stdout] test run::tests::an_outcome_is_matched_back_to_what_was_asked_for ... ok
[INFO] [stdout] test run::unreadable_reports::a_negative_price_is_refused ... ok
[INFO] [stdout] test run::unreadable_reports::a_readable_report_is_booked ... ok
[INFO] [stdout] test run::unreadable_reports::a_negative_quantity_is_refused_by_name ... ok
[INFO] [stdout] test run::unreadable_reports::a_quantity_finer_than_the_instrument_is_refused_not_truncated ... ok
[INFO] [stdout] test run::unreadable_reports::a_zero_price_is_refused_by_name ... ok
[INFO] [stdout] test run::unreadable_reports::an_unparseable_price_is_refused ... ok
[INFO] [stdout] test run::venue_closes::a_venue_order_closes_the_leg_opposite_its_side ... ok
[INFO] [stdout] test run::venue_closes::an_account_order_is_not_a_venue_close ... ok
[INFO] [stdout] test run::venue_history::a_leg_never_flat_in_the_history_is_reported ... ok
[INFO] [stdout] test run::venue_history::only_the_trades_since_the_leg_was_last_flat_are_replayed ... ok
[INFO] [stdout] test run::warm_up::no_bars_is_no_ticks ... ok
[INFO] [stdout] test run::warm_up::the_stamp_is_the_venues_on_both_clocks ... ok
[INFO] [stdout] test run::warm_up::there_is_no_book_in_a_bar ... ok
[INFO] [stdout] test run::warm_up::volume_accumulates_across_the_bars ... ok
[INFO] [stdout] test run::which_leg::a_buy_opens_the_long_and_closes_the_short ... ok
[INFO] [stdout] test run::which_leg::a_netting_account_is_read_as_opening ... ok
[INFO] [stdout] test run::which_leg::a_sell_closes_the_long_and_opens_the_short ... ok
[INFO] [stdout] test run::which_leg::the_venues_spelling_does_not_matter ... ok
[INFO] [stdout] test shadow::tests::a_confirmation_that_never_comes_becomes_a_divergence ... ok
[INFO] [stdout] test shadow::tests::a_different_price_is_reported_with_the_difference ... ok
[INFO] [stdout] test shadow::tests::a_different_quantity_is_its_own_finding ... ok
[INFO] [stdout] test run::unreadable_reports::an_acknowledgement_is_not_a_dropped_fill ... ok
[INFO] [stdout] test shadow::tests::a_fill_the_model_never_made_is_reported_and_is_not_flattering ... ok
[INFO] [stdout] test shadow::tests::a_fill_the_venue_never_made_is_reported_and_flagged_as_flattering ... ok
[INFO] [stdout] test order_ids::tests::restart_and_backwards_clock_never_reuse_reserved_ids ... ok
[INFO] [stdout] test shadow::tests::a_late_confirmation_within_the_grace_period_is_not_a_divergence ... ok
[INFO] [stdout] test shadow::tests::a_position_disagreement_is_reported ... ok
[INFO] [stdout] test shadow::tests::a_run_says_how_much_it_compared ... ok
[INFO] [stdout] test shadow::tests::adopted_hedge_legs_keep_their_bases_without_synthetic_fill_evidence ... ok
[INFO] [stdout] test shadow::tests::agreement_produces_no_divergence ... ok
[INFO] [stdout] test shadow::tests::invalid_initial_inventory_is_refused_without_simulated_liquidation ... ok
[INFO] [stdout] test shadow::tests::adopted_one_way_short_and_flat_have_correct_opening_inventory ... ok
[INFO] [stdout] test shadow::tests::fee_evidence_requires_a_stated_policy_and_current_model_total ... ok
[INFO] [stdout] test shadow::tests::mismatched_sides_or_quantities_cannot_certify_complete_pairing ... ok
[INFO] [stdout] test shadow::tests::the_shadow_accounts_the_way_the_backtest_does ... ok
[INFO] [stdout] test shadow::tests::the_tail_is_flushed_rather_than_dropped ... ok
[INFO] [stdout] test shadow::tests::venue_before_model_keeps_the_matched_price_evidence ... ok
[INFO] [stdout] test supervisor::tests::a_disagreement_that_outlives_its_replacements_stops_the_process ... ok
[INFO] [stdout] test supervisor::tests::a_disconnect_reconciles_as_well_as_reconnects ... ok
[INFO] [stdout] test supervisor::tests::a_read_that_succeeds_clears_the_failures ... ok
[INFO] [stdout] test supervisor::tests::a_replacement_that_restores_agreement_spends_the_count ... ok
[INFO] [stdout] test supervisor::tests::a_requested_read_uses_the_checked_path_once_after_reconnect ... ok
[INFO] [stdout] test supervisor::tests::agreement_after_a_blip_clears_it ... ok
[INFO] [stdout] test supervisor::tests::an_expired_key_is_treated_as_a_gap_not_as_a_quiet_period ... ok
[INFO] [stdout] test supervisor::tests::a_persistently_disagreeing_stream_is_replaced_but_a_blip_is_not ... ok
[INFO] [stdout] test supervisor::tests::a_stale_apparently_matching_frame_does_not_clear_a_disagreement ... ok
[INFO] [stdout] test supervisor::tests::an_ordinary_fill_asks_for_nothing ... ok
[INFO] [stdout] test supervisor::tests::equal_net_with_different_hedge_legs_is_a_disagreement ... ok
[INFO] [stdout] test supervisor::tests::both_kinds_of_upkeep_are_due_immediately_at_startup ... ok
[INFO] [stdout] test supervisor::tests::one_unknown_placement_reconciles_and_three_stop_the_process ... ok
[INFO] [stdout] test supervisor::tests::reads_that_keep_failing_replace_the_link_rather_than_passing ... ok
[INFO] [stdout] test supervisor::tests::resolving_an_outcome_clears_the_count ... ok
[INFO] [stdout] test supervisor::tests::upkeep_is_not_repeated_before_its_period ... ok
[INFO] [stdout] test book::window::the_set_is_bounded_over_a_long_run ... ok
[INFO] [stdout] test dedup::tests::the_set_stays_bounded_over_a_long_run ... ok
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-belief.rs (/opt/rustwide/target/release/build/oq-live/cd14d5feb85a9945/out/oq_belief-cd14d5feb85a9945)
[INFO] [stdout] test result: ok. 209 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.99s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-replay.rs (/opt/rustwide/target/release/build/oq-live/367fa06579624d17/out/oq_replay-367fa06579624d17)
[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 8 tests
[INFO] [stdout] test readout::a_wait_shows_every_condition_it_names ... ok
[INFO] [stdout] test readout::an_adoption_shows_every_leg_and_its_basis ... ok
[INFO] [stdout] test readout::an_outcome_shows_all_of_itself ... ok
[INFO] [stdout] test readout::a_refusal_shows_all_of_itself ... ok
[INFO] [stdout] test readout::a_tick_shows_all_of_itself ... ok
[INFO] [stdout] test readout::a_fill_shows_all_of_itself ... ok
[INFO] [stdout] test readout::a_submission_shows_all_of_itself ... ok
[INFO] [stdout] test readout::a_session_start_shows_all_of_itself ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-trade.rs (/opt/rustwide/target/release/build/oq-live/3d643c1cf55e7424/out/oq_trade-3d643c1cf55e7424)
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test tests::account_scope_requires_a_single_opaque_hash ... ok
[INFO] [stdout] test tests::model_fee_policy_distinguishes_unknown_zero_and_rebate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/attribution_end_to_end.rs (/opt/rustwide/target/release/build/oq-live/3422c8e1fc769636/out/attribution_end_to_end-3422c8e1fc769636)
[INFO] [stdout] running 6 tests
[INFO] [stdout] test a_fill_the_venue_never_made_becomes_a_queue_component ... ok
[INFO] [stdout] test a_session_without_a_model_fee_policy_cannot_claim_a_residual ... ok
[INFO] [stdout] test evidence_taken_before_finishing_is_incomplete_and_finishing_completes_it ... ok
[INFO] [stdout] test a_session_where_the_venue_filled_worse_becomes_a_report_naming_slippage ... ok
[INFO] [stderr]      Running tests/belief.rs (/opt/rustwide/target/release/build/oq-live/77f85289723cad60/out/belief-77f85289723cad60)
[INFO] [stdout] test a_session_with_no_fee_statement_produces_no_residual ... ok
[INFO] [stdout] test a_fill_the_venue_and_the_model_agreed_on_is_still_carried ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test a_correct_belief_agrees_with_the_record_the_venue_produced ... ok
[INFO] [stdout] test a_journal_without_an_adoption_record_does_not_claim_flat ... ok
[INFO] [stdout] test an_adopted_position_is_reconstructed ... ok
[INFO] [stdout] test an_unresolved_order_is_still_resting ... ok
[INFO] [stdout] test an_order_the_venue_withdrew_is_not_resting ... ok
[INFO] [stdout] test a_hedged_account_is_reconstructed_leg_by_leg ... ok
[INFO] [stdout] test a_hedged_fill_without_its_leg_is_a_hole_not_a_guess ... ok
[INFO] [stdout] test fills_are_applied_in_the_direction_of_their_submission ... ok
[INFO] [stdout] test a_restart_replaces_the_position_rather_than_adding_to_it ... ok
[INFO] [stdout] test only_accepted_and_unfilled_orders_are_resting ... ok
[INFO] [stderr]      Running tests/coverage_capture.rs (/opt/rustwide/target/release/build/oq-live/8b0e332821cbb290/out/coverage_capture-8b0e332821cbb290)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test capture_queries_the_native_boundary_and_refuses_unsupported_surplus_or_stale_sources ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/covered_attribution.rs (/opt/rustwide/target/release/build/oq-live/4a32f5efc77a4b23/out/covered_attribution-4a32f5efc77a4b23)
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test residual_requires_native_coverage_seed_fills_and_independent_totals ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stderr]      Running tests/dst.rs (/opt/rustwide/target/release/build/oq-live/56748f551d684767/out/dst-56748f551d684767)
[INFO] [stdout] test a_journal_that_fills_up_stops_the_orders_and_halts_the_run ... ok
[INFO] [stdout] test a_malformed_request_is_refused_and_changes_nothing ... ok
[INFO] [stdout] test a_bid_far_under_the_market_fills_neither_at_the_venue_nor_in_the_model ... ok
[INFO] [stdout] test a_run_leaves_run_files_a_tick_file_and_answers_for_its_attribution ... ok
[INFO] [stdout] test an_operator_halt_stops_the_orders_and_is_on_the_record ... ok
[INFO] [stdout] test an_operator_shutdown_ends_the_run_and_says_so_in_its_exit_status ... ok
[INFO] [stdout] test a_different_seed_writes_a_different_journal ... ok
[INFO] [stdout] test a_ledger_the_live_legs_cannot_reproduce_makes_funding_unavailable_with_the_reason ... ok
[INFO] [stdout] test a_seed_names_one_run_with_many_orders_resting ... ok
[INFO] [stdout] test resume_needs_permission_and_agreeing_books ... ok
[INFO] [stdout] test a_clean_run_trades_and_ends_with_nothing_resting ... ok
[INFO] [stdout] test every_settlement_is_booked_from_the_ledger_checked_and_attributed ... ok
[INFO] [stdout] test the_journal_rebuilds_the_position_the_venue_holds ... ok
[INFO] [stdout] test an_account_that_moves_unexplained_stops_the_trading ... ok
[INFO] [stdout] test the_same_seed_writes_the_same_journal ... ok
[INFO] [stdout] test a_hedged_account_stays_true_through_the_faults ... ok
[INFO] [stdout] test a_misbehaving_venue_leaves_the_journal_true ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.91s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]      Running tests/gateway_fuzz.rs (/opt/rustwide/target/release/build/oq-live/fcd98396778d9e23/out/gateway_fuzz-fcd98396778d9e23)
[INFO] [stdout] running 7 tests
[INFO] [stdout] test a_report_with_no_trade_id_is_refused_however_many_times_it_arrives ... ok
[INFO] [stdout] test no_scenario_in_the_catalogue_makes_the_books_invent_a_trade ... ok
[INFO] [stdout] test partial_fills_of_one_order_all_count ... ok
[INFO] [stdout] test reordering_reports_does_not_change_where_the_account_ends_up ... ok
[INFO] [stdout] test the_catalogue_is_deterministic ... ok
[INFO] [stdout] test duplication_moves_the_account_once_per_trade ... ok
[INFO] [stdout] test a_dropped_report_leaves_a_disagreement_the_reconciler_names ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 7 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/hedge_mode.rs (/opt/rustwide/target/release/build/oq-live/36e218cb6841b89a/out/hedge_mode-36e218cb6841b89a)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test a_hedged_accounts_net_is_its_two_legs_summed ... ok
[INFO] [stdout] test a_hedged_accounts_two_legs_do_not_cancel ... ok
[INFO] [stdout] test an_excess_close_is_detected_on_either_leg_before_the_kernel_clamps_it ... ok
[INFO] [stdout] test the_contract_is_derived_and_not_assumed ... ok
[INFO] [stdout] test a_netting_accounts_two_legs_cancel ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/journalling.rs (/opt/rustwide/target/release/build/oq-live/0d94a5a5b0d48229/out/journalling-0d94a5a5b0d48229)
[INFO] [stdout] 
[INFO] [stdout] running 12 tests
[INFO] [stdout] test a_session_without_a_journal_still_trades ... ok
[INFO] [stdout] test a_refusal_is_recorded_and_no_order_is ... ok
[INFO] [stdout] test a_strategy_that_names_nothing_writes_nothing ... ok
[INFO] [stdout] test accounting_writer_records_context_and_explicit_fee_uncertainty ... ok
[INFO] [stdout] test a_position_taken_over_at_startup_is_recorded_with_its_basis ... ok
[INFO] [stdout] test a_fill_is_recorded_with_the_id_the_strategy_knew_it_by ... ok
[INFO] [stdout] test what_the_strategy_waits_for_is_recorded ... ok
[INFO] [stdout] test a_run_writes_its_identity_the_order_and_the_outcome_in_that_order ... ok
[INFO] [stdout] test the_order_is_on_disk_before_the_venue_is_called ... ok
[INFO] [stdout] test taking_over_nothing_is_not_recorded_as_an_event ... ok
[INFO] [stdout] test an_order_the_journal_cannot_record_is_not_sent ... ok
[INFO] [stdout] test a_session_that_syncs_decisions_still_records_before_sending ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/ledger.rs (/opt/rustwide/target/release/build/oq-live/8626315f703c3054/out/ledger-8626315f703c3054)
[INFO] [stdout] 
[INFO] [stdout] running 24 tests
[INFO] [stdout] test duplicate_funding_ids_wrong_totals_and_wrong_windows_are_refused ... ok
[INFO] [stdout] test durable_schedule_gaps_and_uncertainty_cannot_be_erased_or_rewritten ... ok
[INFO] [stdout] test durable_pending_can_only_disappear_after_its_settlement_is_on_the_tape ... ok
[INFO] [stdout] test ledger_context_round_trips_and_rejects_bad_scales_or_cash_multiplier ... ok
[INFO] [stdout] test live_books_never_synthesize_a_venue_liquidation_or_insurance_transfer ... ok
[INFO] [stdout] test missing_adoption_context_and_duplicate_economics_are_refused ... ok
[INFO] [stdout] test fee_evidence_refuses_altered_fill_known_commission_and_bad_receipt ... ok
[INFO] [stdout] test identified_funding_payload_rejects_torn_trailing_and_invalid_count ... ok
[INFO] [stdout] test obligation_payload_bounds_flags_and_timestamps_are_validated ... ok
[INFO] [stdout] test original_funding_identities_replay_without_claiming_history_coverage ... ok
[INFO] [stdout] test ledger_cli_reaches_the_native_path_and_reports_uncertainty ... ok
[INFO] [stdout] test recovered_cash_is_replayable_but_has_no_invented_model_amount_or_coverage ... ok
[INFO] [stdout] test manifest_snapshot_is_the_immutable_bytes_that_are_decoded ... ok
[INFO] [stdout] test recovery_ranges_and_receipt_boundaries_are_checked ... ok
[INFO] [stdout] test original_unknown_fee_is_enriched_without_a_second_fill_or_inventory_change ... ok
[INFO] [stdout] test same_instant_schedule_loss_and_rediscovery_have_a_valid_durable_boundary ... ok
[INFO] [stdout] test typed_execution_round_trips_all_evidence_without_reusing_legacy_kind ... ok
[INFO] [stdout] test unknown_fees_are_not_promoted_to_known_zero_and_rebates_survive ... ok
[INFO] [stdout] test native_manifest_refuses_ambiguous_partial_and_foreign_scope_fields ... ok
[INFO] [stdout] test typed_belief_uses_explicit_mode_offset_and_non_unit_grids ... ok
[INFO] [stdout] test latest_session_resets_economics_but_unknown_records_are_not_skipped ... ok
[INFO] [stdout] test bound_identity_names_code_changes_and_rejects_different_input_or_context ... ok
[INFO] [stdout] test native_replay_matches_independent_cash_flow_in_both_modes ... ok
[INFO] [stderr]      Running tests/ledger_coverage.rs (/opt/rustwide/target/release/build/oq-live/733ec0e5539341f6/out/ledger_coverage-733ec0e5539341f6)
[INFO] [stdout] test ledger_cli_creates_but_never_overwrites_identity_and_keeps_coverage_separate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test bounded_account_response_retains_its_declared_window_and_source_boundary ... ok
[INFO] [stdout] test unknown_and_legacy_economics_cannot_be_zero_filled ... ok
[INFO] [stdout] test empty_history_requires_an_explicit_complete_window_and_native_flat_seed ... ok
[INFO] [stdout] test exact_identity_sets_accept_rebates_and_stable_overlapping_pages ... ok
[INFO] [stdout] test incomplete_stale_foreign_future_and_truncated_sources_are_refused ... ok
[INFO] [stdout] test missing_surplus_and_same_sum_different_identity_are_not_coverage ... ok
[INFO] [stdout] test evidence_wire_is_strict_and_never_overwrites_an_attachment ... ok
[INFO] [stdout] test replay_cli_requires_valid_evidence_for_closed_window_coverage ... ok
[INFO] [stdout] test file_replay_binds_coverage_to_the_actual_immutable_snapshot ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.03s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test duplicates_are_counted_wherever_the_corpus_puts_them ... ok
[INFO] [stderr]      Running tests/scenarios.rs (/opt/rustwide/target/release/build/oq-live/48a8de2a21e16038/out/scenarios-48a8de2a21e16038)
[INFO] [stdout] test a_gap_loses_events_and_the_book_does_not_invent_them ... ok
[INFO] [stderr]      Running tests/startup.rs (/opt/rustwide/target/release/build/oq-live/27f2dbdea04c11ab/out/startup-27f2dbdea04c11ab)
[INFO] [stdout] test another_systems_events_are_refused_under_every_scenario ... ok
[INFO] [stdout] test a_scenario_that_truncates_everything_is_still_survivable ... ok
[INFO] [stdout] test no_scenario_makes_the_book_count_a_fill_twice ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 25 tests
[INFO] [stdout] test a_closed_leg_reading_as_zero_does_not_block_a_restart ... ok
[INFO] [stdout] test a_declared_position_is_adopted_and_the_session_starts ... ok
[INFO] [stdout] test a_reconciliation_that_finds_an_impossible_leg_leaves_the_halt_to_the_caller ... ok
[INFO] [stdout] test a_resting_order_nobody_placed_stops_the_process ... ok
[INFO] [stdout] test an_unknown_placement_the_venue_does_know_about_counts_as_sent ... ok
[INFO] [stdout] test an_unknown_placement_the_venue_does_not_have_yet_stays_unresolved ... ok
[INFO] [stdout] test another_systems_fill_moves_the_position_the_cap_sees ... ok
[INFO] [stdout] test a_flat_account_still_reports_zero_lots ... ok
[INFO] [stdout] test a_redelivered_fill_moves_the_position_once ... ok
[INFO] [stdout] test client_ids_do_not_repeat_within_a_run ... ok
[INFO] [stdout] test durable_range_is_used_without_changing_the_ownership_prefix ... ok
[INFO] [stdout] test client_ids_follow_the_venues_alphabet ... ok
[INFO] [stdout] test a_hedged_opening_order_is_capped_against_its_leg_not_the_net ... ok
[INFO] [stdout] test declaring_an_invalid_hedge_leg_does_not_make_it_safe_to_adopt ... ok
[INFO] [stdout] test hedged_legs::an_open_names_the_leg_it_opens ... ok
[INFO] [stdout] test a_position_nobody_declared_stops_the_process ... ok
[INFO] [stdout] test timed_out_entry_does_not_query_an_old_process_order ... ok
[INFO] [stdout] test what_the_gate_approved_is_what_gets_sent ... ok
[INFO] [stdout] test hedged_legs::the_configured_leg_does_not_decide_anything_beyond_hedged_or_not ... ok
[INFO] [stdout] test the_gate_is_shown_the_position_the_venue_confirmed ... ok
[INFO] [stdout] test every_order_goes_through_the_gate ... ok
[INFO] [stdout] test hedged_legs::a_close_names_the_leg_being_closed_not_the_direction_of_the_order ... ok
[INFO] [stdout] test hedged_legs::a_one_way_account_names_no_leg_whatever_the_order_is ... ok
[INFO] [stdout] test the_position_cap_tightens_as_fills_arrive ... ok
[INFO] [stderr]      Running tests/trader.rs (/opt/rustwide/target/release/build/oq-live/c303aa07b7bbc24f/out/trader-c303aa07b7bbc24f)
[INFO] [stdout] test the_refusal_says_why_it_matters_and_not_only_what_happened ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 21 tests
[INFO] [stdout] test a_burst_of_orders_is_bounded_by_the_working_limit ... ok
[INFO] [stdout] test a_cancel_reaches_the_venue_under_the_id_the_venue_knows ... ok
[INFO] [stdout] test a_close_intent_becomes_a_reduce_only_order ... ok
[INFO] [stdout] test a_fill_reaches_the_strategy_and_its_answer_reaches_the_venue ... ok
[INFO] [stdout] test a_refused_cancel_is_not_reported_as_a_cancel ... ok
[INFO] [stdout] test a_repeated_halt_does_not_withdraw_the_same_order_twice ... ok
[INFO] [stdout] test a_sweep_reports_every_order_it_touched ... ok
[INFO] [stdout] test a_venues_client_id_translates_back_to_the_strategys_own ... ok
[INFO] [stdout] test a_withdrawal_that_failed_is_tried_again ... ok
[INFO] [stdout] test an_id_this_process_never_sent_translates_to_nothing ... ok
[INFO] [stdout] test an_order_is_sent_and_its_two_ids_are_remembered_together ... ok
[INFO] [stdout] test an_order_that_never_landed_is_reported_as_not_resting ... ok
[INFO] [stdout] test cancel_all_reaches_every_resting_order ... ok
[INFO] [stdout] test an_unanswered_submission_is_not_a_refusal ... ok
[INFO] [stdout] test cancelling_an_order_this_process_never_sent_is_reported_not_swallowed ... ok
[INFO] [stdout] test forgetting_an_ended_order_removes_it_from_the_map ... ok
[INFO] [stdout] test the_strategy_is_not_told_an_unanswered_order_was_refused ... ok
[INFO] [stdout] test a_submission_the_venue_never_answered_is_asked_about_again ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-margin/fd117ecb485f105a/out/oq_margin-fd117ecb485f105a)
[INFO] [stdout] test an_order_found_resting_later_is_registered_like_any_other ... ok
[INFO] [stdout] test a_halt_withdraws_opening_orders_and_keeps_closing_ones ... ok
[INFO] [stdout] test a_refused_order_is_not_remembered_as_resting ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 21 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 37 tests
[INFO] [stdout] test funding::tests::an_empty_schedule_accrues_nothing ... ok
[INFO] [stdout] test funding::backwards::an_interval_that_runs_backwards_holds_nothing ... ok
[INFO] [stdout] test funding::tests::the_window_is_half_open_so_nothing_settles_twice ... ok
[INFO] [stdout] test funding::tests::unsorted_input_is_sorted_rather_than_refused ... ok
[INFO] [stdout] test funding::tests::a_spike_multiplies_only_inside_its_window ... ok
[INFO] [stdout] test position::tests::a_flat_position_has_no_liquidation_price ... ok
[INFO] [stdout] test position::tests::a_long_liquidates_below_entry_and_a_short_above ... ok
[INFO] [stdout] test position::tests::an_overcollateralized_long_has_no_liquidation_price ... ok
[INFO] [stdout] test position::tests::assess_reports_distance_in_ticks ... ok
[INFO] [stdout] test position::tests::equity_at_the_liquidation_price_has_reached_the_requirement ... ok
[INFO] [stdout] test position::tests::funding_that_drains_margin_pulls_liquidation_closer ... ok
[INFO] [stdout] test position::tests::liquidation_price_is_monotonic_in_margin ... ok
[INFO] [stdout] test position::tests::more_margin_moves_liquidation_further_away ... ok
[INFO] [stdout] test position::tests::one_tick_the_safe_side_is_not_liquidatable ... ok
[INFO] [stdout] test position::tests::the_bracket_is_resolved_at_the_mark_not_frozen_at_entry ... ok
[INFO] [stdout] test position::tests::the_liquidation_price_matches_the_derivation ... ok
[INFO] [stdout] test schedule::tests::a_constant_schedule_answers_for_any_time ... ok
[INFO] [stdout] test schedule::tests::before_the_first_table_there_is_no_answer_rather_than_a_guess ... ok
[INFO] [stdout] test schedule::tests::duplicate_effective_instants_are_refused ... ok
[INFO] [stdout] test funding::tests::a_spike_can_dominate_the_holding_cost ... ok
[INFO] [stdout] test funding::tests::a_negative_rate_reverses_who_pays ... ok
[INFO] [stdout] test schedule::tests::the_same_query_is_stable_across_runs ... ok
[INFO] [stdout] test schedule::tests::the_table_in_force_is_the_latest_one_at_or_before_the_event ... ok
[INFO] [stdout] test schedule::tests::unsorted_input_is_ordered ... ok
[INFO] [stdout] test tier::derived::a_contract_built_from_a_definition_equals_the_hand_written_one ... ok
[INFO] [stdout] test tier::derived::a_venue_that_quotes_contracts_gets_a_different_contract ... ok
[INFO] [stdout] test tier::tests::maintenance_grows_with_position_size ... ok
[INFO] [stdout] test tier::tests::maintenance_never_goes_negative ... ok
[INFO] [stdout] test tier::tests::notional_matches_the_arithmetic_by_hand ... ok
[INFO] [stdout] test tier::tests::out_of_order_tables_are_refused ... ok
[INFO] [stdout] test tier::tests::the_bracket_steps_up_with_notional ... ok
[INFO] [stdout] test tier::tests::the_requirement_is_continuous_across_a_boundary ... ok
[INFO] [stdout] test tier::tests::unrealized_follows_the_sign_of_the_position ... ok
[INFO] [stdout] test funding::tests::a_flat_position_settles_nothing ... ok
[INFO] [stdout] test tier::tests::notional_is_absolute_for_shorts ... ok
[INFO] [stdout] test funding::tests::accrual_across_a_day_compounds_the_cost ... ok
[INFO] [stdout] test funding::tests::a_long_pays_a_positive_rate_and_a_short_receives_it ... ok
[INFO] [stderr]      Running tests/invariants.rs (/opt/rustwide/target/release/build/oq-margin/4419e537d891ccdc/out/invariants-4419e537d891ccdc)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 8 tests
[INFO] [stdout] test maintenance_is_the_same_for_both_directions ... ok
[INFO] [stdout] test a_flat_position_requires_no_margin ... ok
[INFO] [stdout] test a_position_that_cannot_pay_its_maintenance_is_liquidatable_at_once ... ok
[INFO] [stdout] test every_notional_lands_on_a_tier ... ok
[INFO] [stdout] test adding_margin_never_moves_liquidation_closer ... ok
[INFO] [stdout] test maintenance_is_never_negative ... ok
[INFO] [stdout] test a_liquidation_price_sits_on_the_losing_side_of_the_entry ... ok
[INFO] [stdout] test maintenance_never_falls_as_the_position_grows ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-parity/feb42d00bfeedcc7/out/oq_parity-feb42d00bfeedcc7)
[INFO] [stdout] 
[INFO] [stdout] running 35 tests
[INFO] [stdout] test attribution::tests::an_error_in_a_component_lands_in_the_residual ... ok
[INFO] [stdout] test attribution::tests::an_instrument_that_cannot_price_a_tick_measures_nothing_derived_from_prices ... ok
[INFO] [stdout] test attribution::tests::a_fully_explained_gap_leaves_nothing ... ok
[INFO] [stdout] test attribution::tests::a_missing_measurement_produces_no_residual_rather_than_a_zero ... ok
[INFO] [stdout] test attribution::tests::the_report_names_the_run_it_describes ... ok
[INFO] [stdout] test attribution::tests::the_sign_follows_the_side ... ok
[INFO] [stdout] test attribution::tests::the_modelled_component_is_marked_as_one ... ok
[INFO] [stdout] test attribution::tests::slippage_and_latency_sum_to_the_price_difference_and_do_not_overlap ... ok
[INFO] [stdout] test attribution::tests::a_missing_reference_price_disables_both_terms_not_one ... ok
[INFO] [stdout] test attribution::tests::a_residual_against_zero_pnl_has_no_share ... ok
[INFO] [stdout] test manifest::tests::corrected_input_data_invalidates_the_baseline ... ok
[INFO] [stdout] test markout::tests::a_horizon_past_the_data_is_left_out ... ok
[INFO] [stdout] test markout::tests::a_live_run_filled_worse_shows_as_a_negative_contrast ... ok
[INFO] [stdout] test markout::tests::a_markout_is_signed_by_the_side ... ok
[INFO] [stdout] test attribution::tests::the_two_directions_of_a_queue_difference_have_opposite_signs ... ok
[INFO] [stdout] test tests::abbreviation_counts_characters_and_never_splits_one ... ok
[INFO] [stdout] test manifest::tests::every_changed_element_is_named ... ok
[INFO] [stdout] test manifest::tests::identical_inputs_are_comparable ... ok
[INFO] [stdout] test markout::tests::the_price_at_a_horizon_is_the_last_known_by_then ... ok
[INFO] [stdout] test wire::tests::a_fill_count_that_disagrees_with_the_rows_is_caught ... ok
[INFO] [stdout] test wire::tests::a_run_survives_the_round_trip ... ok
[INFO] [stdout] test markout::tests::too_few_fills_is_not_a_number ... ok
[INFO] [stdout] test wire::tests::a_truncated_file_is_refused_rather_than_compared ... ok
[INFO] [stdout] test wire::tests::a_declared_hash_of_any_characters_is_reported_not_crashed_on ... ok
[INFO] [stdout] test wire::tests::an_absent_tag_and_an_empty_one_stay_different ... ok
[INFO] [stdout] test manifest::tests::a_code_change_still_permits_conclusions ... ok
[INFO] [stdout] test manifest::tests::a_configuration_change_invalidates_the_baseline ... ok
[INFO] [stdout] test manifest::tests::the_label_is_not_part_of_identity ... ok
[INFO] [stdout] test wire::tests::a_baseline_read_from_a_file_still_invalidates_when_the_data_moved ... ok
[INFO] [stdout] test wire::tests::an_edited_body_is_refused ... ok
[INFO] [stdout] test wire::tests::a_run_with_no_fills_round_trips_as_a_run_with_no_fills ... ok
[INFO] [stdout] test wire::tests::a_run_without_its_identity_is_refused_by_element ... ok
[INFO] [stdout] test wire::tests::an_unknown_version_is_refused_rather_than_partially_read ... ok
[INFO] [stdout] test wire::tests::rendering_is_deterministic ... ok
[INFO] [stdout] test wire::tests::the_fill_section_is_readable_without_this_program ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/bin/oq-parity.rs (/opt/rustwide/target/release/build/oq-parity/853b58dae979cea1/out/oq_parity-853b58dae979cea1)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stderr]      Running tests/markout_cli.rs (/opt/rustwide/target/release/build/oq-parity/b71b558f76d5ca6e/out/markout_cli-b71b558f76d5ca6e)
[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 1 test
[INFO] [stdout] test markout_prints_each_horizon_and_the_contrast ... ok
[INFO] [stderr]      Running tests/parity.rs (/opt/rustwide/target/release/build/oq-parity/867591ec5634d5ab/out/parity-867591ec5634d5ab)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test a_dropped_fill_is_reported_as_missing ... ok
[INFO] [stdout] test a_zero_baseline_passes_only_an_exact_match ... ok
[INFO] [stdout] test corrected_input_data_invalidates_the_baseline_instead_of_reporting_a_regression ... ok
[INFO] [stdout] test the_report_leads_with_the_first_divergence ... ok
[INFO] [stdout] test a_port_with_identical_behavior_passes_despite_a_new_commit ... ok
[INFO] [stderr]      Running tests/research.rs (/opt/rustwide/target/release/build/oq-parity/adb081877af2bb89/out/research-adb081877af2bb89)
[INFO] [stdout] test an_inserted_fill_is_reported_as_extra_and_the_streams_resynchronize ... ok
[INFO] [stdout] test an_identical_run_passes ... ok
[INFO] [stdout] test pnl_tolerance_is_relative_and_enforced ... ok
[INFO] [stdout] test a_one_tick_price_difference_is_located_and_quantified ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test identity_binds_only_consumed_inputs_and_effective_configuration ... ok
[INFO] [stdout] test attachment_round_trip_verifies_its_exact_ledger_and_rejects_corruption ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-risk/411e3cf0a369fb29/out/oq_risk-411e3cf0a369fb29)
[INFO] [stdout] test failed_started_paths_remain_unscored_and_unattempted_paths_do_not_count ... ok
[INFO] [stdout] test foreign_question_or_basis_does_not_erase_or_append_trials ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 26 tests
[INFO] [stdout] test closing::a_close_larger_than_the_per_order_cap_is_allowed ... ok
[INFO] [stdout] test closing::a_close_beyond_the_largest_allowed_position_is_refused ... ok
[INFO] [stdout] test tests::a_missing_digit_is_caught_by_the_band_not_by_the_notional ... ok
[INFO] [stdout] test tests::a_negative_quantity_is_refused_rather_than_read_as_a_sell ... ok
[INFO] [stdout] test tests::a_market_order_is_priced_at_the_mark_for_the_notional_check ... ok
[INFO] [stdout] test tests::a_tripped_switch_stops_everything_and_stays_stopped ... ok
[INFO] [stdout] test tests::a_zero_quantity_is_malformed_rather_than_merely_small ... ok
[INFO] [stdout] test closing::an_open_of_the_same_size_is_still_refused ... ok
[INFO] [stdout] test tests::a_position_that_would_exceed_the_cap_is_refused_before_it_exists ... ok
[INFO] [stdout] test tests::a_reduce_only_order_is_measured_against_the_position_it_reduces ... ok
[INFO] [stdout] test tests::a_runaway_loop_is_stopped_by_the_rate_limit ... ok
[INFO] [stdout] test tests::a_short_is_capped_by_the_same_number_as_a_long ... ok
[INFO] [stdout] test tests::a_close_can_reduce_exposure_after_price_or_position_exceeds_opening_limits ... ok
[INFO] [stdout] test closing::a_close_is_allowed_when_the_legs_net_to_nothing ... ok
[INFO] [stdout] test tests::the_same_inputs_reach_the_same_decision_twice ... ok
[INFO] [stdout] test tests::the_default_limits_refuse_everything ... ok
[INFO] [stdout] test tests::closes_still_obey_the_kill_switch_price_band_and_quantity_bound ... ok
[INFO] [stdout] test tests::the_rate_window_slides_rather_than_resetting ... ok
[INFO] [stdout] test versioning::a_change_records_what_moved_and_from_what ... ok
[INFO] [stdout] test versioning::limits_start_at_version_one ... ok
[INFO] [stdout] test tests::an_ordinary_order_passes_and_the_permit_carries_it ... ok
[INFO] [stdout] test tests::resting_orders_are_capped_too ... ok
[INFO] [stdout] test versioning::setting_the_same_limits_changes_nothing ... ok
[INFO] [stdout] test versioning::several_fields_moving_at_once_are_recorded_separately ... ok
[INFO] [stdout] test tests::notional_is_capped_even_when_the_quantity_is_not ... ok
[INFO] [stdout] test versioning::the_history_accumulates ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 26 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-sim/4990e5a6e9218ddb/out/oq_sim-4990e5a6e9218ddb)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test tests::every_scenario_says_what_it_is_trying_to_break ... ok
[INFO] [stdout] test tests::the_corpus_covers_the_written_catalogue ... ok
[INFO] [stdout] test tests::a_duplicate_lengthens_and_a_drop_shortens ... ok
[INFO] [stdout] test tests::two_scenarios_do_not_produce_the_same_distortion ... ok
[INFO] [stdout] test tests::a_duplicate_is_adjacent_to_its_original ... ok
[INFO] [stdout] test tests::a_reorder_keeps_every_event_and_only_moves_one ... ok
[INFO] [stdout] test tests::a_gap_removes_a_run_rather_than_scattered_events ... ok
[INFO] [stdout] test tests::a_seed_reproduces_a_run_exactly ... ok
[INFO] [stdout] test tests::an_empty_sequence_survives_every_scenario ... ok
[INFO] [stdout] test tests::the_generator_is_the_one_written_here ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-stats/f4bfe11967afdd7f/out/oq_stats-f4bfe11967afdd7f)
[INFO] [stdout] 
[INFO] [stdout] running 46 tests
[INFO] [stdout] test dsr::tests::deflation_punishes_a_wide_search ... ok
[INFO] [stdout] test dsr::tests::psr_matches_hand_computed_normal_case ... ok
[INFO] [stdout] test dsr::tests::minimum_track_record_length_is_consistent_with_psr ... ok
[INFO] [stdout] test dsr::tests::expected_max_sharpe_grows_with_trials ... ok
[INFO] [stdout] test dsr::tests::negative_skew_and_fat_tails_lower_confidence ... ok
[INFO] [stdout] test dsr::tests::psr_is_one_half_when_sharpe_equals_benchmark ... ok
[INFO] [stdout] test dsr::tests::psr_rises_with_track_record_length ... ok
[INFO] [stdout] test flow::tests::collapsing_changes_the_verdict_on_a_split_order ... ok
[INFO] [stdout] test flow::tests::flow_in_runs_is_positively_autocorrelated_and_decays ... ok
[INFO] [stdout] test flow::tests::too_few_trades_for_the_lags_asked_for_is_refused ... ok
[INFO] [stdout] test moments::tests::moments_of_a_known_series ... ok
[INFO] [stdout] test moments::tests::rejects_degenerate_input ... ok
[INFO] [stdout] test flow::tests::same_side_trades_in_one_millisecond_collapse_to_one_order ... ok
[INFO] [stdout] test dsr::tests::rejects_bad_input ... ok
[INFO] [stdout] test flow::tests::a_one_sided_window_has_no_coefficient ... ok
[INFO] [stdout] test flow::tests::a_side_change_or_a_new_timestamp_starts_a_new_order ... ok
[INFO] [stdout] test flow::tests::alternating_flow_is_negatively_autocorrelated ... ok
[INFO] [stdout] test moments::tests::sharpe_ratio_is_mean_over_sample_std_dev ... ok
[INFO] [stdout] test flow::tests::a_short_cycle_is_not_persistence ... ok
[INFO] [stdout] test flow::tests::a_short_stamps_slice_truncates_rather_than_misaligns ... ok
[INFO] [stdout] test normal::tests::cdf_saturates_in_the_extreme_tails ... ok
[INFO] [stdout] test moments::tests::skewness_sign_follows_the_tail ... ok
[INFO] [stdout] test normal::tests::inverse_cdf_round_trips ... ok
[INFO] [stdout] test pbo::tests::combination_enumeration_is_complete_and_ordered ... ok
[INFO] [stdout] test normal::tests::inverse_cdf_handles_boundaries ... ok
[INFO] [stdout] test normal::tests::inverse_cdf_matches_reference_values ... ok
[INFO] [stdout] test pbo::tests::matrix_construction_validates_input ... ok
[INFO] [stdout] test stylized::tests::a_flat_series_is_unmeasurable_rather_than_uncorrelated ... ok
[INFO] [stdout] test stylized::tests::autocorrelation_of_a_repeated_pattern_is_one_at_its_period ... ok
[INFO] [stdout] test stylized::tests::independent_uniform_noise_is_uncorrelated_and_thin_tailed ... ok
[INFO] [stdout] test normal::tests::pdf_matches_known_values ... ok
[INFO] [stdout] test pbo::tests::rejects_bad_split_counts_and_thin_data ... ok
[INFO] [stdout] test pbo::tests::relative_rank_handles_ties_and_extremes ... ok
[INFO] [stdout] test pbo::tests::a_genuinely_dominant_configuration_gives_pbo_near_zero ... ok
[INFO] [stdout] test stylized::tests::rare_volatile_bursts_cluster_and_produce_heavy_tails ... ok
[INFO] [stdout] test trials::tests::an_unscored_trial_counts_in_n_but_not_in_the_dispersion ... ok
[INFO] [stdout] test stylized::tests::too_few_observations_is_refused_rather_than_guessed ... ok
[INFO] [stdout] test trials::tests::a_ledger_reads_back_exactly ... ok
[INFO] [stdout] test trials::tests::a_ledger_is_refused_whole_rather_than_read_in_part ... ok
[INFO] [stdout] test trials::tests::only_unscored_trials_give_no_deflated_ratio ... ok
[INFO] [stdout] test trials::tests::deflation_uses_the_whole_search_not_just_the_winner ... ok
[INFO] [stdout] test trials::tests::empty_registry_reports_an_error_rather_than_a_number ... ok
[INFO] [stdout] test trials::tests::tracks_count_and_dispersion ... ok
[INFO] [stdout] test normal::tests::cdf_is_symmetric_and_monotone ... ok
[INFO] [stdout] test normal::tests::cdf_matches_reference_values ... ok
[INFO] [stdout] test pbo::tests::pure_noise_gives_pbo_near_one_half ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-strategy/ee44168fa34bbf27/out/oq_strategy-ee44168fa34bbf27)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 46 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 17 tests
[INFO] [stdout] test indicator::tests::a_rising_series_takes_the_rsi_to_a_hundred_and_it_stays_bounded ... ok
[INFO] [stdout] test indicator::tests::a_window_displaces_in_order_and_reports_when_full ... ok
[INFO] [stdout] test indicator::tests::a_simple_average_reports_nothing_until_it_has_its_period ... ok
[INFO] [stdout] test indicator::tests::an_average_of_a_constant_is_that_constant ... ok
[INFO] [stdout] test indicator::tests::the_macd_signal_smooths_the_macd_line_and_not_the_price ... ok
[INFO] [stdout] test indicator::tests::the_macd_reports_nothing_until_all_three_averages_are_warm ... ok
[INFO] [stdout] test indicator::tests::the_running_sum_matches_a_recomputed_one ... ok
[INFO] [stdout] test indicator::tests::wilders_smoothing_is_slower_than_the_other_alpha ... ok
[INFO] [stdout] test indicator::tests::a_falling_series_takes_the_rsi_to_zero ... ok
[INFO] [stdout] test indicator::tests::a_window_of_zero_is_refused_rather_than_silently_useless - should panic ... ok
[INFO] [stdout] test indicator::tests::an_unchanging_price_is_neither_overbought_nor_oversold ... ok
[INFO] [stdout] test indicator::window_stats::extremes_follow_the_window_rather_than_everything_seen ... ok
[INFO] [stdout] test indicator::window_stats::one_sample_has_no_standard_deviation ... ok
[INFO] [stdout] test indicator::window_stats::the_standard_deviation_is_the_population_one ... ok
[INFO] [stdout] test tests::a_strategy_is_testable_without_a_host ... ok
[INFO] [stdout] test indicator::tests::the_two_warm_ups_disagree_and_keep_disagreeing ... ok
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/oq-types/811028c106e2c84a/out/oq_types-811028c106e2c84a)
[INFO] [stdout] test indicator::window_stats::an_empty_window_has_no_extremes ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 17 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 48 tests
[INFO] [stdout] test currency::tests::a_missing_pair_is_missing_even_when_a_path_exists ... ok
[INFO] [stdout] test currency::tests::a_prefix_is_not_the_same_currency ... ok
[INFO] [stdout] test currency::tests::a_quote_does_not_imply_its_inverse ... ok
[INFO] [stdout] test currency::tests::a_rate_table_states_when_it_was_read ... ok
[INFO] [stdout] test currency::tests::a_ticker_survives_the_round_trip ... ok
[INFO] [stdout] test currency::tests::a_total_missing_a_rate_is_no_total ... ok
[INFO] [stdout] test currency::tests::a_zero_balance_needs_no_rate ... ok
[INFO] [stdout] test currency::tests::an_untouched_currency_holds_zero ... ok
[INFO] [stdout] test currency::tests::equality_does_not_depend_on_the_order_amounts_arrived_in ... ok
[INFO] [stdout] test currency::tests::only_upper_case_alphanumerics_are_accepted ... ok
[INFO] [stdout] test currency::tests::currencies_do_not_leak_into_each_other ... ok
[INFO] [stdout] test currency::tests::a_conversion_that_would_overflow_returns_nothing ... ok
[INFO] [stdout] test fixed::tests::cash_saturates_rather_than_wraps ... ok
[INFO] [stdout] test currency::tests::a_code_past_eight_bytes_is_refused ... ok
[INFO] [stdout] test currency::tests::a_currency_converts_to_itself_without_a_quote ... ok
[INFO] [stdout] test fixed::scaled_saturates::a_scaled_amount_too_large_to_hold_saturates_with_its_sign ... ok
[INFO] [stdout] test currency::tests::an_account_holds_several_currencies_at_once ... ok
[INFO] [stdout] test currency::tests::a_currency_that_fell_to_zero_is_still_held ... ok
[INFO] [stdout] test fixed::tests::cash_scaling_truncates_toward_zero ... ok
[INFO] [stdout] test fixed::tests::zero_price_is_the_market_sentinel ... ok
[INFO] [stdout] test ids::tests::allocation_is_monotonic_and_starts_at_one ... ok
[INFO] [stdout] test instrument::floors::the_smallest_allowed_clears_the_floor_with_room ... ok
[INFO] [stdout] test ids::tests::restore_continues_rather_than_repeats ... ok
[INFO] [stdout] test instrument::floors::a_size_below_the_floor_is_not_the_smallest_allowed ... ok
[INFO] [stdout] test instrument::grid::a_negative_price_snaps_the_same_way_it_reads ... ok
[INFO] [stdout] test fixed::tests::qty_side_is_none_when_flat ... ok
[INFO] [stdout] test instrument::grid::a_contract_with_no_stated_grid_allows_every_representable_value ... ok
[INFO] [stdout] test instrument::grid::a_nonsense_grid_is_ignored_rather_than_dividing_by_zero ... ok
[INFO] [stdout] test instrument::grid::a_price_with_valid_precision_can_still_be_off_the_grid ... ok
[INFO] [stdout] test instrument::grid::quantities_snap_upward_because_the_floor_is_a_minimum ... ok
[INFO] [stdout] test instrument::tests::a_contract_that_is_not_the_underlying_prices_differently ... ok
[INFO] [stdout] test fixed::tests::ratio_constructors_agree ... ok
[INFO] [stdout] test instrument::grid::snapping_never_makes_an_order_more_aggressive ... ok
[INFO] [stdout] test instrument::tests::a_tick_worth_less_than_a_cash_unit_is_none_rather_than_zero ... ok
[INFO] [stdout] test instrument::tests::notional_is_absolute_and_agrees_with_arithmetic_by_hand ... ok
[INFO] [stdout] test instrument::tests::the_derived_tick_cash_matches_the_constant_that_was_hand_checked ... ok
[INFO] [stdout] test order::tests::cancelling_preserves_the_filled_quantity ... ok
[INFO] [stdout] test order::tests::completed_orders_leave_the_book ... ok
[INFO] [stdout] test order::tests::overfill_is_refused_not_clamped ... ok
[INFO] [stdout] test instrument::floors::no_declared_floor_means_the_step ... ok
[INFO] [stdout] test tests::side_opposite_is_an_involution ... ok
[INFO] [stdout] test order::tests::partial_then_complete ... ok
[INFO] [stdout] test tests::position_delta_follows_side ... ok
[INFO] [stdout] test time::tests::ordering_is_by_exchange_time_first ... ok
[INFO] [stdout] test time::tests::utc_day_floors_across_the_epoch ... ok
[INFO] [stdout] test instrument::grid::snapping_a_price_already_on_the_grid_leaves_it_alone ... ok
[INFO] [stdout] test order::tests::non_positive_quantity_is_refused_at_construction ... ok
[INFO] [stdout] test time::tests::feed_latency_can_be_negative ... ok
[INFO] [stderr]    Doc-tests oq_backtest
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[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] [stderr]    Doc-tests oq_book
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stderr]    Doc-tests oq_cli
[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 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] [stderr]    Doc-tests oq_core
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oq_data
[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] [stderr]    Doc-tests oq_engine
[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] [stderr]    Doc-tests oq_env
[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 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] [stderr]    Doc-tests oq_examples
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oq_features
[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] [stderr]    Doc-tests oq_gateway
[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] [stderr]    Doc-tests oq_hash
[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 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] [stderr]    Doc-tests oq_ingest
[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] [stderr]    Doc-tests oq_journal
[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] [stderr]    Doc-tests oq_l2feed
[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] [stderr]    Doc-tests oq_live
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests oq_margin
[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 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] [stderr]    Doc-tests oq_parity
[INFO] [stderr]    Doc-tests oq_risk
[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] [stderr]    Doc-tests oq_sim
[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 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] [stderr]    Doc-tests oq_stats
[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] [stderr]    Doc-tests oq_strategy
[INFO] [stderr]    Doc-tests oq_types
[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 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1", kill_on_drop: false }`
[INFO] [stdout] 477329c577b8d4b5d3a156650bc3024d35b18f0c669346b7448d41de2cd2b2d1
