[INFO] fetching crate varforge 0.2.0...
[INFO] testing varforge-0.2.0 against 1.99.0-beta.8 for beta-1.100-2
[INFO] extracting crate varforge 0.2.0 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate varforge 0.2.0
[INFO] finished tweaking crates.io crate varforge 0.2.0
[INFO] tweaked toml for crates.io crate varforge 0.2.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate varforge 0.2.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate varforge 0.2.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded noodles-csi v0.55.0
[INFO] [stderr]   Downloaded noodles-bgzf v0.46.0
[INFO] [stderr]   Downloaded noodles-core v0.19.0
[INFO] [stderr]   Downloaded unit-prefix v0.5.2
[INFO] [stderr]   Downloaded noodles-tabix v0.61.0
[INFO] [stderr]   Downloaded lexical-core v1.0.6
[INFO] [stderr]   Downloaded noodles-fasta v0.60.0
[INFO] [stderr]   Downloaded lexical-parse-integer v1.0.6
[INFO] [stderr]   Downloaded lexical-write-integer v1.0.6
[INFO] [stderr]   Downloaded indicatif v0.18.4
[INFO] [stderr]   Downloaded noodles-bam v0.87.0
[INFO] [stderr]   Downloaded noodles-sam v0.83.0
[INFO] [stderr]   Downloaded lexical-util v1.0.7
[INFO] [stderr]   Downloaded lexical-write-float v1.0.6
[INFO] [stderr]   Downloaded zlib-rs v0.6.3
[INFO] [stderr]   Downloaded lexical-parse-float v1.0.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa
[INFO] running `Command { std: "docker" "start" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa", 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" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa", 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" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling lexical-util v1.0.7
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling bit-vec v0.9.1
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling portable-atomic v1.13.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling clap_lex v1.1.0
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling tracing-log v0.2.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling nu-ansi-term v0.50.3
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling noodles-core v0.19.0
[INFO] [stderr]    Compiling lexical-write-integer v1.0.6
[INFO] [stderr]    Compiling lexical-parse-integer v1.0.6
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling lexical-parse-float v1.0.6
[INFO] [stderr]    Compiling lexical-write-float v1.0.6
[INFO] [stderr]    Compiling lexical-core v1.0.6
[INFO] [stderr]    Compiling console v0.16.3
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling indicatif v0.18.4
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling noodles-bgzf v0.46.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling noodles-csi v0.55.0
[INFO] [stderr]    Compiling noodles-fasta v0.60.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling noodles-sam v0.83.0
[INFO] [stderr]    Compiling noodles-tabix v0.61.0
[INFO] [stderr]    Compiling rand_distr v0.5.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling noodles-bam v0.87.0
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling varforge v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 45.79s
[INFO] running `Command { std: "docker" "inspect" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa", 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" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.42
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling zerocopy-derive v0.8.42
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling cc v1.2.57
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling noodles-sam v0.83.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling noodles-bam v0.87.0
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tracing-subscriber v0.3.23
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_distr v0.5.1
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling varforge v0.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 32.72s
[INFO] running `Command { std: "docker" "inspect" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa", 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" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/varforge-ec46d1d888fb936e)
[INFO] [stdout] 
[INFO] [stdout] running 416 tests
[INFO] [stdout] test artifacts::duplicates::tests::test_zero_duplicate_rate ... ok
[INFO] [stdout] test artifacts::duplicates::tests::test_duplicate_read_pair ... ok
[INFO] [stdout] test artifacts::duplicates::tests::test_select_duplicates_in_range ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_no_underflow ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_interior_is_minimum ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_length_one ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_driver_mutations_included ... ok
[INFO] [stdout] test artifacts::duplicates::tests::test_select_duplicates_count ... ok
[INFO] [stdout] test cli::edit::tests::test_load_variants_from_vcf_indel ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_preset_override ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_no_damage_at_zero_rate ... ok
[INFO] [stdout] test cli::edit::tests::test_load_variants_from_vcf_snv ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_only_affects_c_forward ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_melanoma_high_tmb ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_all_cancer_presets_valid ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_aml_low_tmb ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_lung_adeno_signatures ... ok
[INFO] [stdout] test cli::edit::tests::test_parse_vaf_from_info_expected_vaf ... ok
[INFO] [stdout] test cli::edit::tests::test_parse_vaf_from_info_missing ... ok
[INFO] [stdout] test cli::presets::tests::test_all_presets_valid ... ok
[INFO] [stdout] test cli::presets::tests::test_preset_cfdna ... ok
[INFO] [stdout] test cli::presets::tests::test_preset_precedence_yaml_wins ... ok
[INFO] [stdout] test cli::presets::tests::test_preset_small ... ok
[INFO] [stdout] test cli::presets::tests::test_unknown_preset_errors ... ok
[INFO] [stdout] test cli::edit::tests::test_load_variants_from_vcf_symbolic_skipped ... ok
[INFO] [stdout] test cli::simulate::tests::test_coverage_override ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment ... ok
[INFO] [stdout] test cli::edit::tests::test_purity_cli_wins_over_config ... ok
[INFO] [stdout] test cli::simulate::tests::test_no_overrides ... ok
[INFO] [stdout] test cli::simulate::tests::test_output_order_stable ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_bed_file ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_vaf_range_default ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_vaf_range_explicit ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_vaf_range_invalid ... ok
[INFO] [stdout] test cli::simulate::tests::test_precedence ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_end_symmetric_to_start ... ok
[INFO] [stdout] test cli::simulate::tests::test_preset_cfdna ... ok
[INFO] [stdout] test cli::simulate::tests::test_preset_small ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_start_is_maximum ... ok
[INFO] [stdout] test cli::edit::tests::test_parse_vaf_from_info_af ... ok
[INFO] [stdout] test cli::edit::tests::test_purity_config_used_when_cli_absent ... ok
[INFO] [stdout] test cli::simulate::tests::test_all_presets_valid ... ok
[INFO] [stdout] test cli::simulate::tests::test_capture_cv_half_uniformity_exceeds_threshold ... ok
[INFO] [stdout] test cli::simulate::tests::test_capture_cv_zero_uniformity_gives_zero_cv ... ok
[INFO] [stdout] test cli::validate::tests::test_parse_bed_count_basic ... ok
[INFO] [stdout] test cli::validate::tests::test_run_missing_config_errors ... ok
[INFO] [stdout] test cli::simulate::tests::test_region_seeds_unique ... ok
[INFO] [stdout] test cli::validate::tests::test_parse_bed_count_missing_file_errors ... ok
[INFO] [stdout] test cli::simulate::tests::test_seed_override ... ok
[INFO] [stdout] test core::capture::tests::test_no_capture ... ok
[INFO] [stdout] test cli::validate::tests::test_run_invalid_yaml_errors ... ok
[INFO] [stdout] test cli::validate::tests::test_parse_bed_count_skips_comments ... ok
[INFO] [stdout] test core::capture::tests::test_off_target_reads ... ok
[INFO] [stdout] test core::capture::tests::test_edge_dropoff ... ok
[INFO] [stdout] test cli::simulate::tests::test_variant_alleles_indel ... ok
[INFO] [stdout] test cli::simulate::tests::test_variant_key_snv ... ok
[INFO] [stdout] test core::capture::tests::test_uniform_targets ... ok
[INFO] [stdout] test cli::simulate::tests::test_variant_alleles_snv ... ok
[INFO] [stdout] test core::coverage::tests::test_intersect_no_overlap ... ok
[INFO] [stdout] test core::end_motifs::tests::test_known_motif_frequency ... ok
[INFO] [stdout] test core::coverage::tests::test_read_pairs_low_coverage ... ok
[INFO] [stdout] test core::coverage::tests::test_read_pairs_rounds_up ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_forward_strand_c_to_t ... ok
[INFO] [stdout] test cli::validate::tests::test_run_valid_config_returns_ok ... ok
[INFO] [stdout] test core::end_motifs::tests::test_none_motif_always_accepts ... ok
[INFO] [stdout] test core::end_motifs::tests::test_unknown_motif_baseline ... ok
[INFO] [stdout] test core::coverage::tests::test_intersect_with_targets ... ok
[INFO] [stdout] test core::coverage::tests::test_partition_regions ... ok
[INFO] [stdout] test core::end_motifs::tests::test_high_freq_motif_accepts_often ... ok
[INFO] [stdout] test cli::simulate::tests::test_thread_count_respected ... ok
[INFO] [stdout] test core::end_motifs::tests::test_low_freq_motif_rejects_often ... ok
[INFO] [stdout] test core::capture::tests::test_variable_targets ... ok
[INFO] [stdout] test core::coverage::tests::test_read_pairs_for_coverage ... ok
[INFO] [stdout] test core::engine::tests::test_inline_umi_prefix_set ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_reverse_strand_g_to_a ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_oxog_g_to_t ... ok
[INFO] [stdout] test core::engine::tests::test_sv_deletion_near_chrom_end_no_panic ... ok
[INFO] [stdout] test core::engine::tests::test_cfdna_fragments ... ok
[INFO] [stdout] test core::engine::tests::test_pcr_families ... ok
[INFO] [stdout] test core::engine::tests::test_no_variants ... ok
[INFO] [stdout] test core::engine::tests::test_read_lengths_correct ... ok
[INFO] [stdout] test core::engine::tests::test_umi_attached ... ok
[INFO] [stdout] test core::engine::tests::test_variant_spiked ... ok
[INFO] [stdout] test core::engine::tests::test_duplex_produces_ab_and_ba_reads ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_backward_compat ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_no_config_noop ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_r2_quality_lowered ... ok
[INFO] [stdout] test core::error_profile::tests::test_context_effects ... ok
[INFO] [stdout] test core::engine::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test core::error_profile::tests::test_empirical_quality_distribution ... ok
[INFO] [stdout] test core::error_profile::tests::test_invalid_profile ... ok
[INFO] [stdout] test cli::simulate::tests::test_deterministic_parallel ... ok
[INFO] [stdout] test core::error_profile::tests::test_fallback_to_parametric ... ok
[INFO] [stdout] test core::engine::tests::test_applied_variants_tracking ... ok
[INFO] [stdout] test core::error_profile::tests::test_load_profile ... ok
[INFO] [stdout] test core::error_profile::tests::test_trait_compatibility ... ok
[INFO] [stdout] test core::error_profile::tests::test_profile_json_backward_compat ... ok
[INFO] [stdout] test core::error_profile::tests::test_sequencing_error_config_from_profile ... ok
[INFO] [stdout] test core::engine::tests::test_generate_region_basic ... ok
[INFO] [stdout] test core::engine::tests::test_duplex_conversion_rate_statistical ... ok
[INFO] [stdout] test core::fragment::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test core::fragment::tests::test_long_read_length_range ... ok
[INFO] [stdout] test core::fragment::tests::test_normal_fragment_sampler ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_fragment_sampler ... ok
[INFO] [stdout] test core::fragment::tests::test_pcr_family_size_sampler ... ok
[INFO] [stdout] test core::gc_bias::tests::test_flat_model ... ok
[INFO] [stdout] test core::gc_bias::tests::test_gc_fraction ... ok
[INFO] [stdout] test core::gc_bias::tests::test_gc_fraction_n_bases ... ok
[INFO] [stdout] test core::gc_bias::tests::test_multiplier_at_50_percent ... ok
[INFO] [stdout] test core::gc_bias::tests::test_multiplier_at_extremes ... ok
[INFO] [stdout] test core::gc_bias::tests::test_severity_scaling ... ok
[INFO] [stdout] test core::multi_sample::tests::test_clonal_shift ... ok
[INFO] [stdout] test core::multi_sample::tests::test_combined_manifest ... ok
[INFO] [stdout] test core::multi_sample::tests::test_different_tumor_fractions ... ok
[INFO] [stdout] test core::multi_sample::tests::test_multi_sample_config_parsing ... ok
[INFO] [stdout] test core::multi_sample::tests::test_per_sample_output ... ok
[INFO] [stdout] test core::multi_sample::tests::test_shared_mutations ... ok
[INFO] [stdout] test core::profile_learner::tests::test_build_profile_indel_rates ... ok
[INFO] [stdout] test core::profile_learner::tests::test_fragment_size_extraction ... ok
[INFO] [stdout] test core::profile_learner::tests::test_gc_bias_extraction ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_full_ctdna_fraction_all_short ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_ctdna_shorter ... ok
[INFO] [stdout] test core::profile_learner::tests::test_indel_rate_extraction_accuracy ... ok
[INFO] [stdout] test core::profile_learner::tests::test_output_format ... ok
[INFO] [stdout] test core::engine::tests::test_cnv_homdel_reduces_coverage ... ok
[INFO] [stdout] test core::profile_learner::tests::test_sampling ... ok
[INFO] [stdout] test core::quality::tests::test_error_probability ... ok
[INFO] [stdout] test core::gc_bias::tests::test_coverage_distribution ... ok
[INFO] [stdout] test core::quality::tests::test_inject_errors_different_base ... ok
[INFO] [stdout] test core::profile_learner::tests::test_quality_extraction ... ok
[INFO] [stdout] test core::quality::tests::test_is_homopolymer_run ... ok
[INFO] [stdout] test core::quality::tests::test_nanopore_r10_quality_range ... ok
[INFO] [stdout] test core::profile_learner::tests::test_learner_stats_cigar_counts ... ok
[INFO] [stdout] test core::engine::tests::test_gc_bias_reduces_reads ... ok
[INFO] [stdout] test core::quality::tests::test_pacbio_hifi_quality_length ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_low_ctdna_fraction_mostly_normal_lengths ... ok
[INFO] [stdout] test core::quality::tests::test_parametric_quality_length ... ok
[INFO] [stdout] test core::engine::tests::test_sv_reads_appear_in_both_ab_and_ba_families ... ok
[INFO] [stdout] test core::seq_errors::tests::test_burst_base_consistent ... ok
[INFO] [stdout] test core::quality::tests::test_quality_bounds ... ok
[INFO] [stdout] test core::engine::tests::test_duplex_alt_count_is_nonzero_at_moderate_vaf ... ok
[INFO] [stdout] test core::seq_errors::tests::test_elevated_context_increases_errors ... ok
[INFO] [stdout] test core::seq_errors::tests::test_exponential_curve_len ... ok
[INFO] [stdout] test core::seq_errors::tests::test_exponential_tail_rises ... ok
[INFO] [stdout] test core::quality::tests::test_pacbio_hifi_quality_bounds ... ok
[INFO] [stdout] test core::engine::tests::test_variant_stochastic ... ok
[INFO] [stdout] test core::profile_learner::tests::test_round_trip ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_oxog_strand_asymmetry ... ok
[INFO] [stdout] test core::seq_errors::tests::test_indel_rate_zero_leaves_read_unchanged ... ok
[INFO] [stdout] test core::seq_errors::tests::test_high_indel_rate_modifies_reads ... ok
[INFO] [stdout] test core::seq_errors::tests::test_kmer_size_1_to_4 ... ok
[INFO] [stdout] test core::seq_errors::tests::test_burst_rate_zero_noop ... ok
[INFO] [stdout] test core::seq_errors::tests::test_only_insertions_when_fraction_one ... ok
[INFO] [stdout] test core::seq_errors::tests::test_insertion_fraction_statistical ... ok
[INFO] [stdout] test core::seq_errors::tests::test_set_rule_lookup ... ok
[INFO] [stdout] test core::seq_errors::tests::test_strand_bias_lowers_quality ... ok
[INFO] [stdout] test core::seq_errors::tests::test_rolling_hash_matches_naive ... ok
[INFO] [stdout] test core::seq_errors::tests::test_strand_bias_zero_offset_noop ... ok
[INFO] [stdout] test core::seq_errors::tests::test_strand_bias_negative_offset_raises_quality ... ok
[INFO] [stdout] test core::seq_errors::tests::test_uniform_model_all_ones ... ok
[INFO] [stdout] test core::types::tests::test_read_construction ... ok
[INFO] [stdout] test core::seq_errors::tests::test_indel_rate_statistical ... ok
[INFO] [stdout] test core::error_profile::tests::test_substitution_matrix ... ok
[INFO] [stdout] test core::types::tests::test_region_len ... ok
[INFO] [stdout] test core::engine::tests::test_artifacts_applied ... ok
[INFO] [stdout] test core::types::tests::test_region_empty ... ok
[INFO] [stdout] test core::seq_errors::tests::test_substitution_not_identity ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_multiple_variants_same_chrom ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_nm_tag_updated ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_quality_preserved ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_snv_spike_in_bam ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_indel_deletion_bam ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_strand_balance ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_unmodified_reads_unchanged ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_deletion_basic ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_streaming_record_count_preserved ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_deletion_updates_cigar ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_insertion_basic ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_indel_insertion_bam ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_nm_increments_from_existing ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_basic ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_out_of_range ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_preserves_quality ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_updates_nm_tag ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_wrong_ref_base_unchanged ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_before_start ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_deletion_returns_none ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_simple_match ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_with_soft_clip ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_insertion_updates_cigar ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_to_string ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_at_position_zero ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_at_last_base ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_in_middle_of_all_match ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_into_read_with_deletion_before_offset ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_into_read_with_existing_mismatch ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_insertion_quality_avg_no_overflow ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_merge_cigar_ops ... ok
[INFO] [stdout] test io::bam::tests::test_cigar_preserved ... ok
[INFO] [stdout] test io::bam::tests::test_bai_index_created ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_into_read_with_deletion ... ok
[INFO] [stdout] test io::bam::tests::test_mate_flags ... ok
[INFO] [stdout] test io::bam::tests::test_md_mismatch_at_end ... ok
[INFO] [stdout] test io::bam::tests::test_md_mismatch_at_start ... ok
[INFO] [stdout] test io::bam::tests::test_md_multiple_mismatches ... ok
[INFO] [stdout] test io::bam::tests::test_md_single_snv ... ok
[INFO] [stdout] test io::bam::tests::test_nm_all_match ... ok
[INFO] [stdout] test io::bam::tests::test_nm_deletion ... ok
[INFO] [stdout] test io::bam::tests::test_nm_empty_ref ... ok
[INFO] [stdout] test core::seq_errors::tests::test_length_distribution ... ok
[INFO] [stdout] test io::bam::tests::test_nm_insertion ... ok
[INFO] [stdout] test io::bam::tests::test_nm_single_snv ... ok
[INFO] [stdout] test io::bam::tests::test_md_all_match ... ok
[INFO] [stdout] test io::bam::tests::test_md_empty_ref ... ok
[INFO] [stdout] test io::bam::tests::test_nm_snv_and_indel ... ok
[INFO] [stdout] test io::bam::tests::test_nm_written_to_bam ... ok
[INFO] [stdout] test io::bam::tests::test_nm_soft_clip_ignored ... ok
[INFO] [stdout] test io::bam::tests::test_platform_normalised_to_uppercase ... ok
[INFO] [stdout] test io::bam::tests::test_pg_record_in_header ... ok
[INFO] [stdout] test io::bam::tests::test_read_group ... ok
[INFO] [stdout] test io::bam::tests::test_write_single_pair ... ok
[INFO] [stdout] test io::bam::tests::test_umi_tags ... ok
[INFO] [stdout] test io::config::tests::test_cfda_fragment_model ... ok
[INFO] [stdout] test io::bam::tests::test_write_header ... ok
[INFO] [stdout] test io::config::tests::test_ctdna_fraction_field_parses ... ok
[INFO] [stdout] test core::engine::tests::test_umi_error_injection_rate ... ok
[INFO] [stdout] test io::config::tests::test_explicit_umi_length_beats_preset ... ok
[INFO] [stdout] test core::quality::tests::test_quality_decay_toward_end ... ok
[INFO] [stdout] test core::types::tests::test_read_length_mismatch - should panic ... ok
[INFO] [stdout] test io::config::tests::test_burst_length_mean_validation ... ok
[INFO] [stdout] test io::config::tests::test_context_rules_kmer_length_mismatch_fails ... ok
[INFO] [stdout] test io::config::tests::test_context_rules_non_acgt_fails ... ok
[INFO] [stdout] test io::config::tests::test_inline_umi_accepted ... ok
[INFO] [stdout] test io::config::tests::test_full_config_parse ... ok
[INFO] [stdout] test io::config::tests::test_minimal_config_parse ... ok
[INFO] [stdout] test io::config::tests::test_max_indel_length_validation ... ok
[INFO] [stdout] test io::config::tests::test_ctdna_fraction_out_of_range_fails ... ok
[INFO] [stdout] test io::config::tests::test_preset_twist_umi_duplex_fills_defaults ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_adjacent_placeholders ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_empty_value ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_no_placeholders ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_unknown_key_errors ... ok
[INFO] [stdout] test io::config::tests::test_sequencing_errors_validation ... ok
[INFO] [stdout] test io::config::tests::test_validate_bad_purity ... ok
[INFO] [stdout] test io::config::tests::test_fragment_sd_zero_fails_validation ... ok
[INFO] [stdout] test io::config::tests::test_validate_bad_vaf_range ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_unterminated_passes_through ... ok
[INFO] [stdout] test io::config::tests::test_validate_bad_type_fractions ... ok
[INFO] [stdout] test io::fastq::tests::test_empty_writes ... ok
[INFO] [stdout] test io::config::tests::test_mono_di_sd_fields_parse ... ok
[INFO] [stdout] test io::config::tests::test_preset_illumina_wgs_no_umi ... ok
[INFO] [stdout] test io::fastq::tests::test_gzip_compressed ... ok
[INFO] [stdout] test io::fastq::tests::test_quality_encoding ... ok
[INFO] [stdout] test io::fastq::tests::test_write_single_pair ... ok
[INFO] [stdout] test io::manifest::tests::test_config_included ... ok
[INFO] [stdout] test io::fastq::tests::test_paired_consistency ... ok
[INFO] [stdout] test io::manifest::tests::test_manifest_creation ... ok
[INFO] [stdout] test io::manifest::tests::test_statistics_populated ... ok
[INFO] [stdout] test io::manifest::tests::test_file_paths_relative ... ok
[INFO] [stdout] test io::manifest::tests::test_manifest_json_valid ... ok
[INFO] [stdout] test io::config::tests::test_fragment_di_sd_zero_fails_validation ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_snv_stochastic_vaf ... ok
[INFO] [stdout] test io::reference::tests::test_chromosome_lengths ... ok
[INFO] [stdout] test io::reference::tests::test_contains_chromosome ... ok
[INFO] [stdout] test io::config::tests::test_fragment_mono_sd_zero_fails_validation ... ok
[INFO] [stdout] test io::reference::tests::test_open_missing_file ... ok
[INFO] [stdout] test io::fastq::tests::test_write_multiple_pairs ... ok
[INFO] [stdout] test io::reference::tests::test_out_of_bounds ... ok
[INFO] [stdout] test io::reference::tests::test_open_missing_index ... ok
[INFO] [stdout] test io::reference::tests::test_sequence_extraction ... ok
[INFO] [stdout] test io::reference::tests::test_sequence_with_n_bases ... ok
[INFO] [stdout] test io::reference::tests::test_sequence_uppercase ... ok
[INFO] [stdout] test io::reference::tests::test_genome_size ... ok
[INFO] [stdout] test io::fastq::tests::test_output_paths ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_clone_assignment ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_contig_headers ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_homozygous_genotype ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_multiple_variants ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_expected_vaf_in_info ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_bgzip_output ... ok
[INFO] [stdout] test io::vcf_input::tests::test_bgzipped_vcf ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_mnv ... ok
[INFO] [stdout] test io::vcf_input::tests::test_clone_assignment ... ok
[INFO] [stdout] test io::vcf_input::tests::test_custom_vaf ... ok
[INFO] [stdout] test io::vcf_input::tests::test_missing_info_defaults ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_indel ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_multiple ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_mnv ... ok
[INFO] [stdout] test io::vcf_input::tests::test_ref_mismatch_warning ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_snv ... ok
[INFO] [stdout] test io::vcf_input::tests::test_skip_unknown_chrom ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_sv_record ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_sorted_output ... ok
[INFO] [stdout] test seq_utils::tests::test_complement_basic ... ok
[INFO] [stdout] test seq_utils::tests::test_complement_lowercase ... ok
[INFO] [stdout] test seq_utils::tests::test_complement_unknown ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_asymmetric ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_snv ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_header ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_empty ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_basic ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_roundtrip ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_ccf_out_of_range ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_children ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_child_ccf_exceeds_parent ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_empty ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_multiple_roots ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_ancestors ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_no_root ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_unknown_parent ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_root_ancestors ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_single_clone ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_valid_tree ... ok
[INFO] [stdout] test umi::barcode::tests::test_deterministic_umi ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_indel ... ok
[INFO] [stdout] test umi::barcode::tests::test_format_rx_duplex ... ok
[INFO] [stdout] test umi::barcode::tests::test_format_rx_simplex ... ok
[INFO] [stdout] test umi::barcode::tests::test_duplex_umi_pair ... ok
[INFO] [stdout] test umi::barcode::tests::test_umi_valid_bases ... ok
[INFO] [stdout] test umi::families::tests::test_generate_pcr_copies_count ... ok
[INFO] [stdout] test umi::families::tests::test_no_pcr_errors_when_rate_zero ... ok
[INFO] [stdout] test umi::families::tests::test_pcr_copies_same_position ... ok
[INFO] [stdout] test umi::barcode::tests::test_generate_umi_length ... ok
[INFO] [stdout] test variants::cnv::tests::test_amplification_coverage ... ok
[INFO] [stdout] test variants::cnv::tests::test_cn_config_parsing ... ok
[INFO] [stdout] test umi::families::tests::test_unique_copy_names ... ok
[INFO] [stdout] test variants::cnv::tests::test_homodel_coverage ... ok
[INFO] [stdout] test variants::cnv::tests::test_vaf_in_amplified_region ... ok
[INFO] [stdout] test umi::barcode::tests::test_inject_umi_errors ... ok
[INFO] [stdout] test variants::cnv::tests::test_deletion_coverage ... ok
[INFO] [stdout] test variants::germline::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test variants::cnv::tests::test_cn_with_purity ... ok
[INFO] [stdout] test variants::germline::tests::test_empty_regions_produces_no_variants ... ok
[INFO] [stdout] test variants::cnv::tests::test_loh_allele_frequency ... ok
[INFO] [stdout] test variants::germline::tests::test_germline_variant_counts ... ok
[INFO] [stdout] test variants::germline::tests::test_snv_alt_differs_from_ref ... ok
[INFO] [stdout] test variants::germline::tests::test_het_snps_have_vaf_half ... ok
[INFO] [stdout] test variants::random_gen::tests::test_empty_regions ... ok
[INFO] [stdout] test variants::germline::tests::test_hom_snps_have_vaf_one ... ok
[INFO] [stdout] test variants::random_gen::tests::test_generate_random_mutations_count ... ok
[INFO] [stdout] test variants::random_gen::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test variants::random_gen::tests::test_vaf_range ... ok
[INFO] [stdout] test variants::signatures::tests::test_builtin_signature_lookup ... ok
[INFO] [stdout] test variants::signatures::tests::test_builtin_signature_names_complete ... ok
[INFO] [stdout] test variants::signatures::tests::test_channel_index_ct_tca ... ok
[INFO] [stdout] test variants::signatures::tests::test_channel_index_ct_tcg ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs13_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_channel_index_tg_ctt ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs13_tca_tct_dominant ... ok
[INFO] [stdout] test variants::random_gen::tests::test_snv_different_from_ref ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs17a_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs1_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs2_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs2_tca_tct_dominant ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs17a_ctt_dominant ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs3_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs4_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs5_sums_to_one ... ok
[INFO] [stdout] test umi::families::tests::test_pcr_family_size_sampler ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs7a_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs96_index_invalid_substitution ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs96_index_pyrimidine_direct ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs96_index_purine_complement ... ok
[INFO] [stdout] test variants::signatures::tests::test_trinucleotide_context_boundary ... ok
[INFO] [stdout] test variants::signatures::tests::test_variant_sbs96_index_valid ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_tbi_index_created ... ok
[INFO] [stdout] test variants::spike_in::tests::test_indel_quality_avg_no_overflow ... ok
[INFO] [stdout] test variants::signatures::tests::test_trinucleotide_context_middle ... ok
[INFO] [stdout] test variants::spike_in::tests::test_read_length_preserved_after_indel ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_deletion ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_indel_no_overlap ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_mnv ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_snv_hit ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_snv_miss ... ok
[INFO] [stdout] test variants::signatures::tests::test_all_signatures_non_negative ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_insertion ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_mnv_partial_overlap_rejected ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs1_cpg_channels_dominant ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_snv_wrong_ref ... ok
[INFO] [stdout] test variants::structural::tests::test_insertion_quality_avg_no_overflow ... ok
[INFO] [stdout] test variants::structural::tests::test_insertion_reads ... ok
[INFO] [stdout] test variants::structural::tests::test_deletion_coverage_drop ... ok
[INFO] [stdout] test variants::structural::tests::test_deletion_split_reads ... ok
[INFO] [stdout] test variants::structural::tests::test_sv_truth_vcf ... ok
[INFO] [stdout] test variants::structural::tests::test_translocation_chimeric ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_chromothripsis_single_chrom ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_empty_inputs ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_hrd_deletions_count ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_hrd_deletions_size_range ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_clone_ids ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_tdp_duplications_size_range ... ok
[INFO] [stdout] test variants::structural::tests::test_duplication_coverage ... ok
[INFO] [stdout] test variants::vaf::tests::test_binomial_not_deterministic ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_amplified_allele ... ok
[INFO] [stdout] test variants::structural::tests::test_inversion_orientation ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_cnv_gain ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_low_tf ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_with_purity ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_simple ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_subclone ... ok
[INFO] [stdout] test variants::vaf::tests::test_vaf_1_all_alt ... ok
[INFO] [stdout] test variants::random_gen::tests::test_mutation_type_distribution ... ok
[INFO] [stdout] test umi::families::tests::test_pcr_errors_injected ... ok
[INFO] [stdout] test variants::structural::tests::test_sv_vaf_stochastic ... ok
[INFO] [stdout] test variants::vaf::tests::test_binomial_sampling_variance ... ok
[INFO] [stdout] test variants::vaf::tests::test_ultra_low_vaf_unbiased_2000x ... ok
[INFO] [stdout] test variants::vaf::tests::test_ultra_low_vaf_unbiased_5000x ... ok
[INFO] [stdout] test core::seq_errors::tests::test_burst_errors_correlated ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_indel_and_cycle_compose ... ok
[INFO] [stdout] test core::seq_errors::tests::test_flat_curve_rate ... ok
[INFO] [stdout] test variants::vaf::tests::test_binomial_sampling_mean ... ok
[INFO] [stdout] test core::seq_errors::tests::test_fixed_length_contract ... ok
[INFO] [stdout] test core::quality::tests::test_nanopore_r10_homopolymer_quality_degradation ... ok
[INFO] [stdout] test core::quality::tests::test_pacbio_hifi_position_dependent ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_novaseq_rates_end_to_end ... ok
[INFO] [stdout] test core::quality::tests::test_inject_errors_rate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 416 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.95s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/varforge-0fc53b43fc195861)
[INFO] [stdout] 
[INFO] [stdout] running 416 tests
[INFO] [stdout] test artifacts::duplicates::tests::test_select_duplicates_count ... ok
[INFO] [stdout] test artifacts::duplicates::tests::test_zero_duplicate_rate ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment ... ok
[INFO] [stdout] test artifacts::duplicates::tests::test_duplicate_read_pair ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_interior_is_minimum ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_start_is_maximum ... ok
[INFO] [stdout] test artifacts::duplicates::tests::test_select_duplicates_in_range ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_driver_mutations_included ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_lung_adeno_signatures ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_preset_override ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_melanoma_high_tmb ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_no_damage_at_zero_rate ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_no_underflow ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_only_affects_c_forward ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_length_one ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_end_enrichment_end_symmetric_to_start ... ok
[INFO] [stdout] test cli::edit::tests::test_parse_vaf_from_info_missing ... ok
[INFO] [stdout] test cli::edit::tests::test_parse_vaf_from_info_expected_vaf ... ok
[INFO] [stdout] test cli::edit::tests::test_load_variants_from_vcf_indel ... ok
[INFO] [stdout] test cli::edit::tests::test_purity_cli_wins_over_config ... ok
[INFO] [stdout] test cli::edit::tests::test_load_variants_from_vcf_snv ... ok
[INFO] [stdout] test cli::edit::tests::test_load_variants_from_vcf_symbolic_skipped ... ok
[INFO] [stdout] test cli::presets::tests::test_preset_cfdna ... ok
[INFO] [stdout] test cli::edit::tests::test_purity_config_used_when_cli_absent ... ok
[INFO] [stdout] test cli::edit::tests::test_parse_vaf_from_info_af ... ok
[INFO] [stdout] test cli::simulate::tests::test_capture_cv_half_uniformity_exceeds_threshold ... ok
[INFO] [stdout] test cli::simulate::tests::test_capture_cv_zero_uniformity_gives_zero_cv ... ok
[INFO] [stdout] test cli::simulate::tests::test_coverage_override ... ok
[INFO] [stdout] test cli::simulate::tests::test_all_presets_valid ... ok
[INFO] [stdout] test cli::presets::tests::test_preset_precedence_yaml_wins ... ok
[INFO] [stdout] test cli::presets::tests::test_preset_small ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_aml_low_tmb ... ok
[INFO] [stdout] test cli::presets::tests::test_all_presets_valid ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_vaf_range_explicit ... ok
[INFO] [stdout] test cli::simulate::tests::test_no_overrides ... ok
[INFO] [stdout] test cli::simulate::tests::test_output_order_stable ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_bed_file ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_vaf_range_default ... ok
[INFO] [stdout] test cli::simulate::tests::test_parse_vaf_range_invalid ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_forward_strand_c_to_t ... ok
[INFO] [stdout] test cli::simulate::tests::test_precedence ... ok
[INFO] [stdout] test cli::presets::tests::test_unknown_preset_errors ... ok
[INFO] [stdout] test cli::simulate::tests::test_preset_small ... ok
[INFO] [stdout] test cli::simulate::tests::test_variant_alleles_snv ... ok
[INFO] [stdout] test cli::simulate::tests::test_preset_cfdna ... ok
[INFO] [stdout] test cli::validate::tests::test_run_invalid_yaml_errors ... ok
[INFO] [stdout] test cli::validate::tests::test_run_missing_config_errors ... ok
[INFO] [stdout] test cli::simulate::tests::test_variant_key_snv ... ok
[INFO] [stdout] test cli::cancer_presets::tests::test_all_cancer_presets_valid ... ok
[INFO] [stdout] test cli::validate::tests::test_parse_bed_count_missing_file_errors ... ok
[INFO] [stdout] test cli::validate::tests::test_parse_bed_count_basic ... ok
[INFO] [stdout] test cli::validate::tests::test_run_valid_config_returns_ok ... ok
[INFO] [stdout] test core::capture::tests::test_edge_dropoff ... ok
[INFO] [stdout] test core::capture::tests::test_uniform_targets ... ok
[INFO] [stdout] test cli::validate::tests::test_parse_bed_count_skips_comments ... ok
[INFO] [stdout] test core::capture::tests::test_no_capture ... ok
[INFO] [stdout] test core::capture::tests::test_off_target_reads ... ok
[INFO] [stdout] test core::coverage::tests::test_intersect_no_overlap ... ok
[INFO] [stdout] test core::coverage::tests::test_read_pairs_low_coverage ... ok
[INFO] [stdout] test core::coverage::tests::test_intersect_with_targets ... ok
[INFO] [stdout] test core::coverage::tests::test_partition_regions ... ok
[INFO] [stdout] test core::coverage::tests::test_read_pairs_for_coverage ... ok
[INFO] [stdout] test core::capture::tests::test_variable_targets ... ok
[INFO] [stdout] test cli::simulate::tests::test_region_seeds_unique ... ok
[INFO] [stdout] test cli::simulate::tests::test_seed_override ... ok
[INFO] [stdout] test cli::simulate::tests::test_variant_alleles_indel ... ok
[INFO] [stdout] test core::coverage::tests::test_read_pairs_rounds_up ... ok
[INFO] [stdout] test core::end_motifs::tests::test_high_freq_motif_accepts_often ... ok
[INFO] [stdout] test core::end_motifs::tests::test_known_motif_frequency ... ok
[INFO] [stdout] test core::end_motifs::tests::test_none_motif_always_accepts ... ok
[INFO] [stdout] test cli::simulate::tests::test_thread_count_respected ... ok
[INFO] [stdout] test core::end_motifs::tests::test_low_freq_motif_rejects_often ... ok
[INFO] [stdout] test core::end_motifs::tests::test_unknown_motif_baseline ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_ffpe_reverse_strand_g_to_a ... ok
[INFO] [stdout] test core::engine::tests::test_inline_umi_prefix_set ... ok
[INFO] [stdout] test core::engine::tests::test_cfdna_fragments ... ok
[INFO] [stdout] test core::engine::tests::test_sv_deletion_near_chrom_end_no_panic ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_oxog_g_to_t ... ok
[INFO] [stdout] test core::engine::tests::test_read_lengths_correct ... ok
[INFO] [stdout] test core::engine::tests::test_umi_attached ... ok
[INFO] [stdout] test core::engine::tests::test_duplex_produces_ab_and_ba_reads ... ok
[INFO] [stdout] test core::engine::tests::test_pcr_families ... ok
[INFO] [stdout] test core::engine::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_backward_compat ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_no_config_noop ... ok
[INFO] [stdout] test core::engine::tests::test_generate_region_basic ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_r2_quality_lowered ... ok
[INFO] [stdout] test core::engine::tests::test_variant_spiked ... ok
[INFO] [stdout] test core::error_profile::tests::test_context_effects ... ok
[INFO] [stdout] test core::error_profile::tests::test_fallback_to_parametric ... ok
[INFO] [stdout] test core::error_profile::tests::test_invalid_profile ... ok
[INFO] [stdout] test core::engine::tests::test_no_variants ... ok
[INFO] [stdout] test core::error_profile::tests::test_profile_json_backward_compat ... ok
[INFO] [stdout] test core::error_profile::tests::test_sequencing_error_config_from_profile ... ok
[INFO] [stdout] test core::error_profile::tests::test_load_profile ... ok
[INFO] [stdout] test core::engine::tests::test_duplex_conversion_rate_statistical ... ok
[INFO] [stdout] test core::error_profile::tests::test_trait_compatibility ... ok
[INFO] [stdout] test core::error_profile::tests::test_empirical_quality_distribution ... ok
[INFO] [stdout] test cli::simulate::tests::test_deterministic_parallel ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_ctdna_shorter ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_full_ctdna_fraction_all_short ... ok
[INFO] [stdout] test core::fragment::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test core::fragment::tests::test_normal_fragment_sampler ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_fragment_sampler ... ok
[INFO] [stdout] test core::fragment::tests::test_pcr_family_size_sampler ... ok
[INFO] [stdout] test core::gc_bias::tests::test_flat_model ... ok
[INFO] [stdout] test core::engine::tests::test_gc_bias_reduces_reads ... ok
[INFO] [stdout] test core::fragment::tests::test_long_read_length_range ... ok
[INFO] [stdout] test core::gc_bias::tests::test_gc_fraction_n_bases ... ok
[INFO] [stdout] test core::engine::tests::test_applied_variants_tracking ... ok
[INFO] [stdout] test core::gc_bias::tests::test_gc_fraction ... ok
[INFO] [stdout] test core::multi_sample::tests::test_clonal_shift ... ok
[INFO] [stdout] test core::gc_bias::tests::test_severity_scaling ... ok
[INFO] [stdout] test core::multi_sample::tests::test_combined_manifest ... ok
[INFO] [stdout] test core::multi_sample::tests::test_different_tumor_fractions ... ok
[INFO] [stdout] test core::multi_sample::tests::test_per_sample_output ... ok
[INFO] [stdout] test core::gc_bias::tests::test_multiplier_at_50_percent ... ok
[INFO] [stdout] test core::gc_bias::tests::test_multiplier_at_extremes ... ok
[INFO] [stdout] test core::multi_sample::tests::test_multi_sample_config_parsing ... ok
[INFO] [stdout] test core::multi_sample::tests::test_shared_mutations ... ok
[INFO] [stdout] test core::profile_learner::tests::test_build_profile_indel_rates ... ok
[INFO] [stdout] test core::profile_learner::tests::test_fragment_size_extraction ... ok
[INFO] [stdout] test core::profile_learner::tests::test_gc_bias_extraction ... ok
[INFO] [stdout] test core::profile_learner::tests::test_learner_stats_cigar_counts ... ok
[INFO] [stdout] test core::profile_learner::tests::test_output_format ... ok
[INFO] [stdout] test core::profile_learner::tests::test_quality_extraction ... ok
[INFO] [stdout] test core::quality::tests::test_error_probability ... ok
[INFO] [stdout] test core::profile_learner::tests::test_indel_rate_extraction_accuracy ... ok
[INFO] [stdout] test core::quality::tests::test_inject_errors_different_base ... ok
[INFO] [stdout] test core::profile_learner::tests::test_sampling ... ok
[INFO] [stdout] test core::engine::tests::test_cnv_homdel_reduces_coverage ... ok
[INFO] [stdout] test core::quality::tests::test_is_homopolymer_run ... ok
[INFO] [stdout] test core::gc_bias::tests::test_coverage_distribution ... ok
[INFO] [stdout] test core::quality::tests::test_nanopore_r10_quality_range ... ok
[INFO] [stdout] test core::quality::tests::test_pacbio_hifi_quality_length ... ok
[INFO] [stdout] test core::quality::tests::test_parametric_quality_length ... ok
[INFO] [stdout] test core::quality::tests::test_pacbio_hifi_quality_bounds ... ok
[INFO] [stdout] test core::engine::tests::test_duplex_alt_count_is_nonzero_at_moderate_vaf ... ok
[INFO] [stdout] test core::seq_errors::tests::test_burst_base_consistent ... ok
[INFO] [stdout] test core::engine::tests::test_sv_reads_appear_in_both_ab_and_ba_families ... ok
[INFO] [stdout] test core::profile_learner::tests::test_round_trip ... ok
[INFO] [stdout] test core::seq_errors::tests::test_elevated_context_increases_errors ... ok
[INFO] [stdout] test core::seq_errors::tests::test_exponential_curve_len ... ok
[INFO] [stdout] test core::seq_errors::tests::test_exponential_tail_rises ... ok
[INFO] [stdout] test artifacts::ffpe::tests::test_oxog_strand_asymmetry ... ok
[INFO] [stdout] test core::quality::tests::test_quality_bounds ... ok
[INFO] [stdout] test core::fragment::tests::test_cfdna_low_ctdna_fraction_mostly_normal_lengths ... ok
[INFO] [stdout] test core::engine::tests::test_artifacts_applied ... ok
[INFO] [stdout] test core::seq_errors::tests::test_indel_rate_zero_leaves_read_unchanged ... ok
[INFO] [stdout] test core::engine::tests::test_variant_stochastic ... ok
[INFO] [stdout] test core::seq_errors::tests::test_kmer_size_1_to_4 ... ok
[INFO] [stdout] test core::seq_errors::tests::test_burst_rate_zero_noop ... ok
[INFO] [stdout] test core::seq_errors::tests::test_only_insertions_when_fraction_one ... ok
[INFO] [stdout] test core::seq_errors::tests::test_rolling_hash_matches_naive ... ok
[INFO] [stdout] test core::seq_errors::tests::test_set_rule_lookup ... ok
[INFO] [stdout] test core::seq_errors::tests::test_strand_bias_lowers_quality ... ok
[INFO] [stdout] test core::seq_errors::tests::test_strand_bias_negative_offset_raises_quality ... ok
[INFO] [stdout] test core::seq_errors::tests::test_strand_bias_zero_offset_noop ... ok
[INFO] [stdout] test core::seq_errors::tests::test_substitution_not_identity ... ok
[INFO] [stdout] test core::seq_errors::tests::test_uniform_model_all_ones ... ok
[INFO] [stdout] test core::types::tests::test_read_construction ... ok
[INFO] [stdout] test core::seq_errors::tests::test_high_indel_rate_modifies_reads ... ok
[INFO] [stdout] test core::types::tests::test_region_empty ... ok
[INFO] [stdout] test core::types::tests::test_region_len ... ok
[INFO] [stdout] test core::seq_errors::tests::test_length_distribution ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_indel_deletion_bam ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_indel_insertion_bam ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_multiple_variants_same_chrom ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_nm_tag_updated ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_snv_spike_in_bam ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_quality_preserved ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_strand_balance ... ok
[INFO] [stdout] test core::error_profile::tests::test_substitution_matrix ... ok
[INFO] [stdout] test core::types::tests::test_read_length_mismatch - should panic ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_deletion_basic ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_deletion_updates_cigar ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_insertion_basic ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_insertion_updates_cigar ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_basic ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_nm_increments_from_existing ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_out_of_range ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_preserves_quality ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_updates_nm_tag ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_apply_snv_wrong_ref_base_unchanged ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_before_start ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_deletion_returns_none ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_simple_match ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_ref_to_read_offset_with_soft_clip ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_cigar_to_string ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_at_last_base ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_at_position_zero ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_in_middle_of_all_match ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_into_read_with_deletion ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_into_read_with_deletion_before_offset ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_streaming_record_count_preserved ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_inject_snv_into_read_with_existing_mismatch ... ok
[INFO] [stdout] test core::engine::tests::test_umi_error_injection_rate ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_merge_cigar_ops ... ok
[INFO] [stdout] test editor::read_modifier::tests::test_insertion_quality_avg_no_overflow ... ok
[INFO] [stdout] test io::bam::tests::test_bai_index_created ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_unmodified_reads_unchanged ... ok
[INFO] [stdout] test io::bam::tests::test_md_all_match ... ok
[INFO] [stdout] test io::bam::tests::test_md_empty_ref ... ok
[INFO] [stdout] test io::bam::tests::test_cigar_preserved ... ok
[INFO] [stdout] test io::bam::tests::test_md_multiple_mismatches ... ok
[INFO] [stdout] test io::bam::tests::test_md_mismatch_at_end ... ok
[INFO] [stdout] test io::bam::tests::test_md_mismatch_at_start ... ok
[INFO] [stdout] test io::bam::tests::test_md_single_snv ... ok
[INFO] [stdout] test io::bam::tests::test_nm_all_match ... ok
[INFO] [stdout] test io::bam::tests::test_nm_empty_ref ... ok
[INFO] [stdout] test io::bam::tests::test_nm_deletion ... ok
[INFO] [stdout] test io::bam::tests::test_nm_single_snv ... ok
[INFO] [stdout] test io::bam::tests::test_nm_insertion ... ok
[INFO] [stdout] test io::bam::tests::test_nm_soft_clip_ignored ... ok
[INFO] [stdout] test io::bam::tests::test_nm_written_to_bam ... ok
[INFO] [stdout] test io::bam::tests::test_nm_snv_and_indel ... ok
[INFO] [stdout] test io::bam::tests::test_pg_record_in_header ... ok
[INFO] [stdout] test io::bam::tests::test_mate_flags ... ok
[INFO] [stdout] test io::bam::tests::test_read_group ... ok
[INFO] [stdout] test io::bam::tests::test_write_single_pair ... ok
[INFO] [stdout] test io::bam::tests::test_platform_normalised_to_uppercase ... ok
[INFO] [stdout] test io::config::tests::test_cfda_fragment_model ... ok
[INFO] [stdout] test io::config::tests::test_burst_length_mean_validation ... ok
[INFO] [stdout] test io::config::tests::test_context_rules_kmer_length_mismatch_fails ... ok
[INFO] [stdout] test io::config::tests::test_ctdna_fraction_field_parses ... ok
[INFO] [stdout] test io::config::tests::test_ctdna_fraction_out_of_range_fails ... ok
[INFO] [stdout] test io::bam::tests::test_write_header ... ok
[INFO] [stdout] test io::bam::tests::test_umi_tags ... ok
[INFO] [stdout] test editor::bam_editor::tests::test_snv_stochastic_vaf ... ok
[INFO] [stdout] test io::config::tests::test_fragment_di_sd_zero_fails_validation ... ok
[INFO] [stdout] test io::config::tests::test_fragment_mono_sd_zero_fails_validation ... ok
[INFO] [stdout] test io::config::tests::test_context_rules_non_acgt_fails ... ok
[INFO] [stdout] test io::config::tests::test_explicit_umi_length_beats_preset ... ok
[INFO] [stdout] test io::config::tests::test_fragment_sd_zero_fails_validation ... ok
[INFO] [stdout] test io::config::tests::test_full_config_parse ... ok
[INFO] [stdout] test io::config::tests::test_inline_umi_accepted ... ok
[INFO] [stdout] test io::config::tests::test_mono_di_sd_fields_parse ... ok
[INFO] [stdout] test io::config::tests::test_preset_twist_umi_duplex_fills_defaults ... ok
[INFO] [stdout] test io::config::tests::test_preset_illumina_wgs_no_umi ... ok
[INFO] [stdout] test io::config::tests::test_sequencing_errors_validation ... ok
[INFO] [stdout] test io::config::tests::test_minimal_config_parse ... ok
[INFO] [stdout] test io::config::tests::test_max_indel_length_validation ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_no_placeholders ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_unterminated_passes_through ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_adjacent_placeholders ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_unknown_key_errors ... ok
[INFO] [stdout] test io::config::tests::test_substitute_vars_empty_value ... ok
[INFO] [stdout] test io::config::tests::test_validate_bad_purity ... ok
[INFO] [stdout] test io::fastq::tests::test_gzip_compressed ... ok
[INFO] [stdout] test io::config::tests::test_validate_bad_vaf_range ... ok
[INFO] [stdout] test io::config::tests::test_validate_bad_type_fractions ... ok
[INFO] [stdout] test io::fastq::tests::test_empty_writes ... ok
[INFO] [stdout] test io::fastq::tests::test_output_paths ... ok
[INFO] [stdout] test io::fastq::tests::test_quality_encoding ... ok
[INFO] [stdout] test io::fastq::tests::test_paired_consistency ... ok
[INFO] [stdout] test io::fastq::tests::test_write_single_pair ... ok
[INFO] [stdout] test io::manifest::tests::test_manifest_creation ... ok
[INFO] [stdout] test io::manifest::tests::test_file_paths_relative ... ok
[INFO] [stdout] test io::fastq::tests::test_write_multiple_pairs ... ok
[INFO] [stdout] test io::manifest::tests::test_manifest_json_valid ... ok
[INFO] [stdout] test io::manifest::tests::test_statistics_populated ... ok
[INFO] [stdout] test io::manifest::tests::test_config_included ... ok
[INFO] [stdout] test io::reference::tests::test_chromosome_lengths ... ok
[INFO] [stdout] test io::reference::tests::test_contains_chromosome ... ok
[INFO] [stdout] test io::reference::tests::test_genome_size ... ok
[INFO] [stdout] test io::reference::tests::test_open_missing_file ... ok
[INFO] [stdout] test io::reference::tests::test_open_missing_index ... ok
[INFO] [stdout] test io::reference::tests::test_out_of_bounds ... ok
[INFO] [stdout] test io::reference::tests::test_sequence_extraction ... ok
[INFO] [stdout] test io::reference::tests::test_sequence_uppercase ... ok
[INFO] [stdout] test io::reference::tests::test_sequence_with_n_bases ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_contig_headers ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_clone_assignment ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_multiple_variants ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_bgzip_output ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_expected_vaf_in_info ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_sorted_output ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_sv_record ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_tbi_index_created ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_mnv ... ok
[INFO] [stdout] test io::vcf_input::tests::test_bgzipped_vcf ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_snv ... ok
[INFO] [stdout] test io::vcf_input::tests::test_clone_assignment ... ok
[INFO] [stdout] test io::vcf_input::tests::test_custom_vaf ... ok
[INFO] [stdout] test io::vcf_input::tests::test_missing_info_defaults ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_homozygous_genotype ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_indel ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_mnv ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_snv ... ok
[INFO] [stdout] test io::vcf_input::tests::test_skip_unknown_chrom ... ok
[INFO] [stdout] test seq_utils::tests::test_complement_basic ... ok
[INFO] [stdout] test seq_utils::tests::test_complement_lowercase ... ok
[INFO] [stdout] test seq_utils::tests::test_complement_unknown ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_asymmetric ... ok
[INFO] [stdout] test io::vcf_input::tests::test_ref_mismatch_warning ... ok
[INFO] [stdout] test io::vcf_input::tests::test_parse_multiple ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_empty ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_roundtrip ... ok
[INFO] [stdout] test seq_utils::tests::test_reverse_complement_basic ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_header ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_ccf_out_of_range ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_empty ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_child_ccf_exceeds_parent ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_multiple_roots ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_ancestors ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_no_root ... ok
[INFO] [stdout] test io::truth_vcf::tests::test_write_indel ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_children ... ok
[INFO] [stdout] test umi::barcode::tests::test_deterministic_umi ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_reject_unknown_parent ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_root_ancestors ... ok
[INFO] [stdout] test umi::barcode::tests::test_duplex_umi_pair ... ok
[INFO] [stdout] test umi::barcode::tests::test_format_rx_duplex ... ok
[INFO] [stdout] test umi::barcode::tests::test_generate_umi_length ... ok
[INFO] [stdout] test umi::barcode::tests::test_inject_umi_errors ... ok
[INFO] [stdout] test umi::barcode::tests::test_umi_valid_bases ... ok
[INFO] [stdout] test umi::families::tests::test_generate_pcr_copies_count ... ok
[INFO] [stdout] test umi::barcode::tests::test_format_rx_simplex ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_single_clone ... ok
[INFO] [stdout] test tumour::clonal_tree::tests::test_valid_tree ... ok
[INFO] [stdout] test umi::families::tests::test_no_pcr_errors_when_rate_zero ... ok
[INFO] [stdout] test umi::families::tests::test_pcr_copies_same_position ... ok
[INFO] [stdout] test variants::cnv::tests::test_cn_config_parsing ... ok
[INFO] [stdout] test umi::families::tests::test_unique_copy_names ... ok
[INFO] [stdout] test variants::cnv::tests::test_deletion_coverage ... ok
[INFO] [stdout] test variants::cnv::tests::test_homodel_coverage ... ok
[INFO] [stdout] test variants::cnv::tests::test_loh_allele_frequency ... ok
[INFO] [stdout] test variants::cnv::tests::test_vaf_in_amplified_region ... ok
[INFO] [stdout] test variants::germline::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test variants::cnv::tests::test_amplification_coverage ... ok
[INFO] [stdout] test variants::germline::tests::test_germline_variant_counts ... ok
[INFO] [stdout] test variants::germline::tests::test_het_snps_have_vaf_half ... ok
[INFO] [stdout] test variants::cnv::tests::test_cn_with_purity ... ok
[INFO] [stdout] test variants::germline::tests::test_empty_regions_produces_no_variants ... ok
[INFO] [stdout] test variants::germline::tests::test_hom_snps_have_vaf_one ... ok
[INFO] [stdout] test variants::random_gen::tests::test_empty_regions ... ok
[INFO] [stdout] test variants::germline::tests::test_snv_alt_differs_from_ref ... ok
[INFO] [stdout] test variants::random_gen::tests::test_deterministic_with_seed ... ok
[INFO] [stdout] test variants::random_gen::tests::test_generate_random_mutations_count ... ok
[INFO] [stdout] test variants::random_gen::tests::test_snv_different_from_ref ... ok
[INFO] [stdout] test variants::random_gen::tests::test_vaf_range ... ok
[INFO] [stdout] test variants::signatures::tests::test_builtin_signature_lookup ... ok
[INFO] [stdout] test variants::signatures::tests::test_builtin_signature_names_complete ... ok
[INFO] [stdout] test variants::signatures::tests::test_channel_index_ct_tca ... ok
[INFO] [stdout] test variants::signatures::tests::test_channel_index_ct_tcg ... ok
[INFO] [stdout] test variants::signatures::tests::test_channel_index_tg_ctt ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs13_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs13_tca_tct_dominant ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs17a_ctt_dominant ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs17a_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs1_cpg_channels_dominant ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs1_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs2_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs2_tca_tct_dominant ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs3_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs4_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs5_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs7a_sums_to_one ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs96_index_invalid_substitution ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs96_index_purine_complement ... ok
[INFO] [stdout] test variants::signatures::tests::test_sbs96_index_pyrimidine_direct ... ok
[INFO] [stdout] test variants::signatures::tests::test_trinucleotide_context_boundary ... ok
[INFO] [stdout] test variants::signatures::tests::test_trinucleotide_context_middle ... ok
[INFO] [stdout] test variants::signatures::tests::test_variant_sbs96_index_valid ... ok
[INFO] [stdout] test variants::spike_in::tests::test_indel_quality_avg_no_overflow ... ok
[INFO] [stdout] test variants::spike_in::tests::test_read_length_preserved_after_indel ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_deletion ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_indel_no_overlap ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_insertion ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_mnv ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_mnv_partial_overlap_rejected ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_snv_hit ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_snv_miss ... ok
[INFO] [stdout] test variants::spike_in::tests::test_spike_snv_wrong_ref ... ok
[INFO] [stdout] test variants::structural::tests::test_deletion_coverage_drop ... ok
[INFO] [stdout] test variants::structural::tests::test_deletion_split_reads ... ok
[INFO] [stdout] test variants::structural::tests::test_duplication_coverage ... ok
[INFO] [stdout] test variants::structural::tests::test_insertion_quality_avg_no_overflow ... ok
[INFO] [stdout] test variants::structural::tests::test_insertion_reads ... ok
[INFO] [stdout] test variants::structural::tests::test_inversion_orientation ... ok
[INFO] [stdout] test variants::structural::tests::test_sv_truth_vcf ... ok
[INFO] [stdout] test variants::signatures::tests::test_all_signatures_non_negative ... ok
[INFO] [stdout] test variants::structural::tests::test_translocation_chimeric ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_chromothripsis_single_chrom ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_clone_ids ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_empty_inputs ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_hrd_deletions_count ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_hrd_deletions_size_range ... ok
[INFO] [stdout] test variants::sv_signatures::tests::test_tdp_duplications_size_range ... ok
[INFO] [stdout] test umi::families::tests::test_pcr_family_size_sampler ... ok
[INFO] [stdout] test umi::families::tests::test_pcr_errors_injected ... ok
[INFO] [stdout] test variants::vaf::tests::test_binomial_not_deterministic ... ok
[INFO] [stdout] test core::seq_errors::tests::test_indel_rate_statistical ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_amplified_allele ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_cnv_gain ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_low_tf ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_simple ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_with_purity ... ok
[INFO] [stdout] test variants::vaf::tests::test_expected_vaf_subclone ... ok
[INFO] [stdout] test variants::random_gen::tests::test_mutation_type_distribution ... ok
[INFO] [stdout] test variants::vaf::tests::test_vaf_1_all_alt ... ok
[INFO] [stdout] test variants::structural::tests::test_sv_vaf_stochastic ... ok
[INFO] [stdout] test variants::vaf::tests::test_ultra_low_vaf_unbiased_5000x ... ok
[INFO] [stdout] test core::quality::tests::test_quality_decay_toward_end ... ok
[INFO] [stdout] test variants::vaf::tests::test_binomial_sampling_variance ... ok
[INFO] [stdout] test core::seq_errors::tests::test_insertion_fraction_statistical ... ok
[INFO] [stdout] test variants::vaf::tests::test_ultra_low_vaf_unbiased_2000x ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_indel_and_cycle_compose ... ok
[INFO] [stdout] test core::seq_errors::tests::test_flat_curve_rate ... ok
[INFO] [stdout] test core::seq_errors::tests::test_burst_errors_correlated ... ok
[INFO] [stdout] test variants::vaf::tests::test_binomial_sampling_mean ... ok
[INFO] [stdout] test core::seq_errors::tests::test_fixed_length_contract ... ok
[INFO] [stdout] test core::quality::tests::test_nanopore_r10_homopolymer_quality_degradation ... ok
[INFO] [stdout] test core::error_orchestrator::tests::test_novaseq_rates_end_to_end ... ok
[INFO] [stdout] test core::quality::tests::test_pacbio_hifi_position_dependent ... ok
[INFO] [stdout] test core::quality::tests::test_inject_errors_rate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 416 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.78s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests varforge
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test src/io/config.rs - io::config::ChemistryPreset::from_name (line 790) ... ok
[INFO] [stdout] test src/seq_utils.rs - seq_utils::reverse_complement (line 38) ... ok
[INFO] [stdout] test src/seq_utils.rs - seq_utils::complement (line 9) ... ok
[INFO] [stdout] test src/core/fragment.rs - core::fragment::NormalFragmentSampler::new (line 28) ... ok
[INFO] [stdout] test src/core/types.rs - core::types::Region::new (line 16) ... ok
[INFO] [stdout] test src/io/config.rs - io::config::parse_region (line 1024) ... ok
[INFO] [stdout] test src/core/coverage.rs - core::coverage::read_pairs_for_coverage (line 15) ... ok
[INFO] [stdout] test src/core/types.rs - core::types::Region::len (line 36) ... ok
[INFO] [stdout] test src/variants/vaf.rs - variants::vaf::sample_alt_count (line 34) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.79s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa", kill_on_drop: false }`
[INFO] [stdout] b15e8bbb94577e53dc41a2dd7d06d18d3b24f5aa2a3d85fb470fd276504ef4aa
