[INFO] fetching crate oxihuman-morph 0.1.1... [INFO] testing oxihuman-morph-0.1.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate oxihuman-morph 0.1.1 into /workspace/builds/worker-5-tc1/source [INFO] started tweaking crates.io crate oxihuman-morph 0.1.1 [INFO] removed 0 missing tests [INFO] finished tweaking crates.io crate oxihuman-morph 0.1.1 [INFO] tweaked toml for crates.io crate oxihuman-morph 0.1.1 written to /workspace/builds/worker-5-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate oxihuman-morph 0.1.1 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate oxihuman-morph 0.1.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded oxihuman-core v0.1.1 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 1a03542adfa6c10841be2277b9b71cb1b899aa7f364a0c6f6abe28fb49d8fcb2 [INFO] running `Command { std: "docker" "start" "-a" "1a03542adfa6c10841be2277b9b71cb1b899aa7f364a0c6f6abe28fb49d8fcb2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "1a03542adfa6c10841be2277b9b71cb1b899aa7f364a0c6f6abe28fb49d8fcb2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1a03542adfa6c10841be2277b9b71cb1b899aa7f364a0c6f6abe28fb49d8fcb2", kill_on_drop: false }` [INFO] [stdout] 1a03542adfa6c10841be2277b9b71cb1b899aa7f364a0c6f6abe28fb49d8fcb2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 9b630d00aab7c7e5c92a317252af0f0b0c21f8f7fa0a20850de009507a8db137 [INFO] running `Command { std: "docker" "start" "-a" "9b630d00aab7c7e5c92a317252af0f0b0c21f8f7fa0a20850de009507a8db137", kill_on_drop: false }` [INFO] [stderr] Compiling rayon-core v1.13.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling toml v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling oxihuman-core v0.1.1 [INFO] [stderr] Compiling oxihuman-morph v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s [INFO] running `Command { std: "docker" "inspect" "9b630d00aab7c7e5c92a317252af0f0b0c21f8f7fa0a20850de009507a8db137", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "9b630d00aab7c7e5c92a317252af0f0b0c21f8f7fa0a20850de009507a8db137", kill_on_drop: false }` [INFO] [stdout] 9b630d00aab7c7e5c92a317252af0f0b0c21f8f7fa0a20850de009507a8db137 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 821f649acca153c6ed88b3c748f15d6b36172ebca38efaf5a17f741af218efbd [INFO] running `Command { std: "docker" "start" "-a" "821f649acca153c6ed88b3c748f15d6b36172ebca38efaf5a17f741af218efbd", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling fastrand v2.3.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling once_cell v1.21.4 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Compiling quick-error v1.2.3 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling bit-set v0.8.0 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling alloca v0.4.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling rand_xorshift v0.4.0 [INFO] [stderr] Compiling rusty-fork v0.3.1 [INFO] [stderr] Compiling criterion-plot v0.8.2 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling unarray v0.1.4 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling zerocopy-derive v0.8.42 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling oxihuman-core v0.1.1 [INFO] [stderr] Compiling tinytemplate v1.2.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 rand_chacha v0.9.0 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling proptest v1.10.0 [INFO] [stderr] Compiling criterion v0.8.2 [INFO] [stderr] Compiling oxihuman-morph v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 24s [INFO] running `Command { std: "docker" "inspect" "821f649acca153c6ed88b3c748f15d6b36172ebca38efaf5a17f741af218efbd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "821f649acca153c6ed88b3c748f15d6b36172ebca38efaf5a17f741af218efbd", kill_on_drop: false }` [INFO] [stdout] 821f649acca153c6ed88b3c748f15d6b36172ebca38efaf5a17f741af218efbd [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 32efc8358ccd3f052bd185feba6f53021cb7bce035513b3d1a58e2148d77f5fd [INFO] running `Command { std: "docker" "start" "-a" "32efc8358ccd3f052bd185feba6f53021cb7bce035513b3d1a58e2148d77f5fd", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.24s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/oxihuman_morph-d03a25174595b247) [INFO] [stdout] [INFO] [stdout] running 5840 tests [INFO] [stdout] test _morph_part1::age_model::tests::age_profile_adult_full_height ... ok [INFO] [stdout] test _morph_part1::age_model::tests::age_progression_correct_length ... ok [INFO] [stdout] test _morph_part1::age_model::tests::age_profile_infant_short_height ... ok [INFO] [stdout] test _morph_part1::age_model::tests::age_profile_elderly_reduced_height ... ok [INFO] [stdout] test _morph_part1::age_model::tests::age_profile_muscle_peaks_young_adult ... ok [INFO] [stdout] test _morph_part1::age_model::tests::age_profile_lerp_midpoint ... ok [INFO] [stdout] test _morph_part1::age_model::tests::aging_delta_string_not_empty ... ok [INFO] [stdout] test _morph_part1::age_model::tests::estimate_bmi_normal_range ... ok [INFO] [stdout] test _morph_part1::age_model::tests::life_stage_all_has_seven ... ok [INFO] [stdout] test _morph_part1::age_model::tests::life_stage_child_from_age_8 ... ok [INFO] [stdout] test _morph_part1::age_model::tests::life_stage_infant_from_age_1 ... ok [INFO] [stdout] test _morph_part1::age_model::tests::life_stage_young_adult_from_age_25 ... ok [INFO] [stdout] test _morph_part1::age_model::tests::life_stage_senior_from_age_65 ... ok [INFO] [stdout] test _morph_part1::age_model::tests::param_age_to_years_zero_is_zero ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_body_aging_params_non_empty ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_bone_density_decreases_with_age ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_compute_age_stage_clamps_high ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_compute_age_stage_clamps_low ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_age_progression_deltas_count ... ok [INFO] [stdout] test _morph_part1::age_model::tests::param_age_to_years_half_is_midlife ... ok [INFO] [stdout] test _morph_part1::age_model::tests::years_to_param_age_roundtrip ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_interpolate_midpoint ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_male_vs_female_differ ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_reverse_aging_negates ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_default_curves_have_10_stages ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_skin_aging_params_non_empty ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_skin_aging_params_young_all_near_zero ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_skin_elasticity_decreases_with_age ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::anim_retarget_config_scale_weight ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::anim_retarget_config_identity_preserves_params ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::bvh_bridge_default_cmu_has_hips ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::bvh_bridge_joint_count_per_frame ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::bvh_bridge_parse_no_error ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::bvh_bridge_track_length_equals_frame_count ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::param_retarget_clamps_above_one ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::bvh_bridge_retarget_nonempty_tracks ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::concat_tracks_second_offset_correctly ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_face_aging_params_non_empty ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_interpolate_clamp_t ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::concat_tracks_total_length ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::param_retarget_clamps_below_zero ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::param_retarget_identity_unchanged ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::retarget_keyframe_applies_config ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::param_retarget_scaled_doubles ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::scale_track_time_doubles_durations ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::reverse_track_flips_order ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::trim_track_keeps_inside_keyframes ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::trim_track_removes_outside_keyframes ... ok [INFO] [stdout] test _morph_part1::anim_retarget::tests::retarget_track_preserves_length ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_bmi_from_params_normal ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_bmi_from_params_zero_height ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_check_extreme_params_have_violations ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_enforce_constraints_clamps_bmi ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_params_to_body_ratios_empty_params ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_check_valid_human_no_violations ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_realism_score_all_severe ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_realism_score_partial ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_violation_severity_above_max ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_standard_constraints_at_least_8 ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_params_to_body_ratios_returns_map ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_realism_score_no_violations ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_simulate_aging_backward_gives_negatives ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::athletic_has_high_muscle ... ok [INFO] [stdout] test _morph_part1::age_progression_adv::tests::test_simulate_aging_non_empty ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::different_seeds_different_results ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::generate_count_correct ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::lcg_deterministic ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::lcg_next_f32_in_range ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_violation_severity_at_min_boundary ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_violation_severity_in_bounds ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::sample_diverse_count_correct ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::standard_randomizer_works ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::older_adult_has_high_age ... ok [INFO] [stdout] test _morph_part1::anthropometry::tests::sample_clamps_to_unit ... ok [INFO] [stdout] test _morph_part1::apply::tests::soa_roundtrip ... ok [INFO] [stdout] test _morph_part1::apply::tests::zero_weight_is_noop ... ok [INFO] [stdout] test _morph_part1::apply::tests::apply_single_delta ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::add_and_get_weight ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::affected_targets_unique ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::clamp_weights_caps_at_one ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::lerp_at_one_equals_other ... ok [INFO] [stdout] test _morph_part1::apply::tests::parallel_apply_matches_sequential ... ok [INFO] [stdout] test _morph_part1::apply::tests::parallel_apply_multiple_targets ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::library_names ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::lerp_at_zero_equals_self ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::library_add_and_get ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::normalize_sums_to_one ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::remove_entry_returns_true ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::remove_nonexistent_returns_false ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::scale_multiplies_weights ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::set_weight_updates ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::to_weight_map_correct ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::with_description_and_params ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_blend_shape_stats_empty ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::merge_sums_weights ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_csv_header_columns ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_blend_shape_stats_nonempty ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::blend_entry_new_fields ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_csv_roundtrip ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::blend_profile_new_empty ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_empty_library_json_export ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_filter_zero_deltas_removes ... ok [INFO] [stdout] test _morph_part1::blend_profile::tests::library_profiles_for_target ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_json_contains_version ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_json_import_name_deltas ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_json_vertex_count_field ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_merge_mismatch_fails ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_obj_import_recovers_deltas ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_single_shape_json_roundtrip ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_merge_success ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_obj_export_has_v_lines ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_additive_blend ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_depth ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_blend_params_missing_key ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_leaf_evaluate ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_lerp_blend_one ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_clamp_node ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_lerp_blend_half ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_lerp_blend_zero ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_leaf_count ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_merge_params ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_multiply_blend ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_nested_blend ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_select_node ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_override_blend ... ok [INFO] [stdout] test _morph_part1::blend_tree::tests::test_scale_node ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_bmi_formula ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_bmi_zero_height ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_body_fat_clamped ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_classify_fat_male_essential ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_classify_fat_female_obese ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_body_fat_no_nan ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_composition_distance_positive_different ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_fat_mass_kg ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_composition_distance_zero_same ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_ffmi_range ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_ideal_weight_sex_difference ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_interpolate_t1 ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_ideal_weight_devine_known ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_lean_mass_kg ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_interpolate_t0 ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_validate_composition_negative ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_classify_fat_male_athletic ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_validate_composition_over_1 ... ok [INFO] [stdout] test _morph_part1::body_composition::tests::test_validate_composition_valid ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_blend_profiles ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_add_region ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_default_profile_names ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_default_profile_non_empty ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_blend_profiles_t1 ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_curl_tip ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_blend_profiles_t0 ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_generate_strands_disabled ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_hair_count_disabled ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_hair_count_formula ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_hair_profile_to_params ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_generate_strands_length ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_generate_strands_lod1 ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_lod_factor ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_region_lookup_missing ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_region_lookup ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::all_landmarks_count ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::arm_and_leg_length_positive ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::all_positions_count_matches ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::bilateral_landmarks_have_mirrors ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::detect_empty_mesh_returns_empty_set ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_violation_severity_at_max_boundary ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::body_height_plausible ... ok [INFO] [stdout] test _morph_part1::anthropometric_constraints::tests::test_violation_severity_below_min ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::detect_landmarks_non_empty ... ok [INFO] [stdout] test _morph_part1::blend_shape_io::tests::test_json_roundtrip ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_scale_density ... ok [INFO] [stdout] test _morph_part1::body_hair::tests::test_total_strand_count ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::mirror_is_symmetric ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::distance_correct ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::remap_landmarks_preserves_relative ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::landmark_set_insert_and_get ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::landmark_frame_orthonormal ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::landmark_names_are_unique ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::midline_landmarks_have_no_mirror ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::nearest_vertex_correct ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::remap_zero_size_source_bbox_no_panic ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::shoulder_and_hip_width_positive ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::symmetry_error_zero_for_symmetric_set ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::top_of_head_near_top ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::to_map_contains_all_inserted_landmarks ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_classify_neutral ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_apply_emotion_to_params_keys ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_blend_body_emotions_equal_weights ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::transfer_landmarks_maps_to_target ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_dominant_emotion_empty ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_generate_pose_full_intensity ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_classify_confident ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_dominant_emotion_picks_highest_confidence ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_generate_pose_zero_intensity ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_blend_body_emotions_single ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_mirror_pose_negates_tilt ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_pose_similarity_identical ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_pose_to_json ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_interpolate_pose_midpoint ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_library_add_and_get ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::nearest_vertex_empty_mesh ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_body_category_name ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_body_category_all_named ... ok [INFO] [stdout] test _morph_part1::body_language::tests::test_normalize_pose_features_clamps ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_preset_average ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_preset_child_age ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_library_nearest ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_library_blend ... ok [INFO] [stdout] test _morph_part1::body_landmark::tests::write_landmarks_to_tmp ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_library_with_tag ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_library_by_category ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_preset_athletic ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::analyze_missing_schema_returns_none ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_preset_get_param_missing ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_preset_new ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::analyze_returns_correct_schema_name ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_standard_preset_library ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::analyze_rms_deviation_nonnegative ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::closest_child_params_returns_child_schema ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::closest_empty_library_returns_none ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::fashion_schema_is_tallest ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::closest_tall_muscular_params_returns_heroic_or_fashion ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::analyze_deviations_has_all_keys ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::golden_ratio_params_close_to_vitruvian ... ok [INFO] [stdout] test _morph_part1::body_preset::tests::test_preset_with_param ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::golden_ratio_params_contains_phi_extra ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::library_add_and_find ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::library_find_is_case_sensitive ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::normalize_clamps_params_to_unit_interval ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::library_find_missing_returns_none ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::params_to_ratios_one_params ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::proportion_library_default_is_empty ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::params_to_ratios_zero_params ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::golden_ratio_params_in_unit_range ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::proportion_score_different_params_is_nonzero ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::heroic_schema_has_widest_shoulders ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::normalize_to_schema_then_score_is_low ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::params_to_ratios_contains_all_keys ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::standard_schemas_has_five_entries ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::vitruvian_schema_values ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::empty_cloud_bbox_returns_zeros ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::fit_config_default_values ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::estimate_measurements_sensible ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::measurements_to_params_in_range ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_cloud_bbox_correct ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::quick_fit_from_bbox_has_expected_keys ... ok [INFO] [stdout] test _morph_part1::body_proportions::tests::proportion_score_exact_match_is_zero ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::align_scan_to_mesh_centroid_matches ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_cloud_point_count ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_cloud_new_stores_points ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_cloud_with_normals_stores_both ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_cloud_normalize_unit_height ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_to_mesh_error_positive_for_different ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_asymmetry_noise_deterministic ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_to_mesh_error_identical_is_zero ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_cloud_centroid_correct ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::scan_cloud_height ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::fit_params_to_scan_improves_error ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_asymmetry_noise_different_seeds_differ ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::write_quick_fit_results_to_tmp ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_asymmetry_noise_in_range ... ok [INFO] [stdout] test _morph_part1::body_scan_fit::body_scan_fit_core::tests::fit_params_to_scan_empty_cloud ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_enforce_symmetry_makes_positions_symmetric ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_find_symmetry_pairs_x_asymmetric_mesh ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_find_symmetry_pairs_x_symmetric_mesh ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_inject_asymmetry_zero_strength_no_change ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_mirror_position_x_axis ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_inject_asymmetry_changes_positions ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_mirror_position_z_axis ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_symmetrize_morph_deltas_makes_deltas_mirror ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_symmetry_report_with_pairs ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_symmetry_report_no_pairs ... ok [INFO] [stdout] test _morph_part1::body_symmetry::tests::test_mirror_position_y_axis ... ok [INFO] [stdout] test _morph_part1::cache::tests::cache_valid_after_store ... ok [INFO] [stdout] test _morph_part1::cache::tests::different_params_invalidate ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_boundary_values_one ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_boundary_values_zero ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_crossover_dna_deterministic ... ok [INFO] [stdout] test _morph_part1::cache::tests::explicit_invalidate_clears_cache ... ok [INFO] [stdout] test _morph_part1::cache::tests::empty_cache_is_invalid ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_distance_identical ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_crossover_dna_bytes_come_from_parents ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_from_hex_invalid_char ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_from_base64_invalid_length ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_from_hex_odd_length ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_distance_different ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_to_base64_padding ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_to_base64_roundtrip ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_to_hex_roundtrip ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_to_params_map_core_keys_present ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_encode_decode_roundtrip_with_extra ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_hex_output_is_lowercase ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_dna_to_params_map_values_accurate ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_encode_decode_roundtrip_core ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_extended_dna_struct ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_lcg_produces_deterministic_sequence ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_extra_keys_sorted_deterministically ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_empty_extra_params ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_hex_length_matches_bytes ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_mutate_dna_preserves_version ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_add_joint ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_bindings_for_param ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_mutate_dna_zero_rate_unchanged ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_version_field_is_one ... ok [INFO] [stdout] test _morph_part1::character_dna::tests::test_mutate_dna_deterministic ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_evaluate_morphs ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_character_rig_new ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_joint_depth ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_children_of ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_minimal_human_rig ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_get_joint ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_root_joints ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_standard_human_rig ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_morph_binding_compute_weight ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_morph_binding_clamped ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_to_json ... ok [INFO] [stdout] test _morph_part1::colors::tests::from_hex_invalid ... ok [INFO] [stdout] test _morph_part1::colors::tests::apply_skin_fills_verts ... ok [INFO] [stdout] test _morph_part1::colors::tests::from_hex_with_alpha ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_rig_joint_new ... ok [INFO] [stdout] test _morph_part1::colors::tests::from_hex_valid ... ok [INFO] [stdout] test _morph_part1::character_rig::tests::test_rig_joint_with_parent ... ok [INFO] [stdout] test _morph_part1::colors::tests::get_theme_case_insensitive ... ok [INFO] [stdout] test _morph_part1::colors::tests::from_hex_without_hash ... ok [INFO] [stdout] test _morph_part1::colors::tests::lerp_midpoint ... ok [INFO] [stdout] test _morph_part1::colors::tests::to_srgb_u8_white ... ok [INFO] [stdout] test _morph_part1::compress::tests::aggressive_compresses_more ... ok [INFO] [stdout] test _morph_part1::colors::tests::standard_palette_has_four ... ok [INFO] [stdout] test _morph_part1::compress::tests::compression_ratio_less_than_one ... ok [INFO] [stdout] test _morph_part1::colors::tests::to_hex_roundtrip ... ok [INFO] [stdout] test _morph_part1::compress::tests::decompress_roundtrip_accuracy ... ok [INFO] [stdout] test _morph_part1::compress::tests::max_error_high_quality_small ... ok [INFO] [stdout] test _morph_part1::compress::tests::compress_filters_near_zero ... ok [INFO] [stdout] test _morph_part1::compress::tests::quantized_delta_size ... ok [INFO] [stdout] test _morph_part1::constraint::tests::clamp_out_of_range ... ok [INFO] [stdout] test _morph_part1::constraint::tests::smooth_step_endpoints ... ok [INFO] [stdout] test _morph_part1::compress::tests::write_read_cache_roundtrip ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_apply_corrective_zero_weight_no_change ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_combine_corrective_deltas_empty ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_apply_corrective_to_mesh_adds_deltas ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_corrective_distance_different_params ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_combine_corrective_deltas_single_weight ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_corrective_distance_same_params ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_corrective_weight_at_radius ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_corrective_weight_at_zero ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_evaluate_far_params_near_zero ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_evaluate_matching_params ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_corrective_weight_large_distance ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_evaluate_no_matching_params ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_combine_corrective_deltas_two_shapes ... ok [INFO] [stdout] test _morph_part1::corrective_shapes::tests::test_standard_corrective_shapes_has_4 ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_classify_heavy ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_classify_slim ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_classify_average ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_classify_stocky ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_by_class_and_distribution ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_classify_athletic ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_empty_crowd ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_enforce_diversity ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_classify_petite ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_classify_tall ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_generate_crowd_deterministic ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_halton_base2 ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_halton_base3 ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_extra_params ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_get_out_of_range ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_lcg_rand_range ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_generate_crowd_count ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_mean_std_params ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_diversity_score_monotone ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_halton_crowd_to_file ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_param_distance ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_sorted_by ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_generate_crowd_halton_range ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_generate_crowd_params_in_range ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_variation_class_name ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_to_param_list_and_get ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_variation_class_all ... ok [INFO] [stdout] test _morph_part1::crowd_generator::tests::test_summary_content ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_cluster_empty_crowd ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_crowd_zero_size ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_crowd_size_matches_spec ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_cluster_single_group ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_determinism ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_diversity_positive_for_varied_crowd ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_crowd_to_json_non_empty ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_diversity_zero_for_single_member ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_different_seeds_differ ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_gaussian_distribution_kind ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_histogram_bins_count ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_histogram_sum_equals_n ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_params_count_matches_axes ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_cluster_k_groups ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_lcg_sample_range ... ok [INFO] [stdout] test _morph_part1::curves::tests::age_preset_is_ease_in ... ok [INFO] [stdout] test _morph_part1::curves::tests::all_curves_zero_at_zero ... ok [INFO] [stdout] test _morph_part1::curves::tests::bezier_endpoints ... ok [INFO] [stdout] test _morph_part1::curves::tests::curve_kind_serialize ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_params_in_range ... ok [INFO] [stdout] test _morph_part1::crowd_variation::tests::test_standard_axes_count ... ok [INFO] [stdout] test _morph_part1::curves::tests::ease_in_at_half_less_than_half ... ok [INFO] [stdout] test _morph_part1::curves::tests::all_curves_one_at_one ... ok [INFO] [stdout] test _morph_part1::curves::tests::linear_at_half ... ok [INFO] [stdout] test _morph_part1::curves::tests::power_curve_exponent_2 ... ok [INFO] [stdout] test _morph_part1::curves::tests::ease_out_at_half_greater_than_half ... ok [INFO] [stdout] test _morph_part1::delta_cache::tests::empty_library_cache ... ok [INFO] [stdout] test _morph_part1::delta_cache::tests::delta_values_preserved ... ok [INFO] [stdout] test _morph_part1::delta_cache::tests::is_valid_cache_true_for_valid_file ... ok [INFO] [stdout] test _morph_part1::curves::tests::stepped_curve_midpoint ... ok [INFO] [stdout] test _morph_part1::diff::tests::diff_apply_roundtrip ... ok [INFO] [stdout] test _morph_part1::curves::tests::smooth_step_at_half ... ok [INFO] [stdout] test _morph_part1::diff::tests::diff_describe_nonempty ... ok [INFO] [stdout] test _morph_part1::delta_cache::tests::write_and_read_cache_roundtrip ... ok [INFO] [stdout] test _morph_part1::delta_cache::tests::cache_magic_correct ... ok [INFO] [stdout] test _morph_part1::delta_cache::tests::cache_version_correct ... ok [INFO] [stdout] test _morph_part1::diff::tests::diff_compute_height ... ok [INFO] [stdout] test _morph_part1::diff::tests::diff_magnitude_correct ... ok [INFO] [stdout] test _morph_part1::diff::tests::diff_scaled_halves ... ok [INFO] [stdout] test _morph_part1::diff::tests::top_displaced_sorted_desc ... ok [INFO] [stdout] test _morph_part1::diff::tests::mesh_diff_detects_change ... ok [INFO] [stdout] test _morph_part1::diff::tests::vertex_displacements_length ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_diversity_score ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_default_body_params ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_lcg_new ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_lcg_next_f32_range ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_lcg_next_gaussian ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_generate_population ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_lcg_next_range ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_param_spec_new ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_sample_near ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_sampler_latin_hypercube ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_sampler_low_discrepancy ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_sampler_uniform ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_sample_with_extremes ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_van_der_corput_base2 ... ok [INFO] [stdout] test _morph_part1::diversity::tests::test_sampler_gaussian ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_axis_blends ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_default_space_count ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_distance_same ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_evaluate_rbf_range ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_find_anchor ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_idw_weight_decreasing ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_lerp_midpoint ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_lerp_endpoints ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_mix_expressions_endpoints ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_mix_expressions_midpoint ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_named_emotions ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_distance_nonzero ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_nearest_anchor ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_evaluate_at_anchor ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_pad_neutral ... ok [INFO] [stdout] test _morph_part1::diff::tests::diff_is_zero_for_identical ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_blend_add ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_pad_to_description ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_transition_smooth ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_blend_is_neutral ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_clamp ... ok [INFO] [stdout] test _morph_part1::delta_cache::tests::is_valid_cache_false_for_random_data ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_blend_dominant ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_blend_normalize ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_blend_single ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_emotion_valence_arousal ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_expression_effective_weights ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_from_valence_arousal ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_default_emotion_system ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_emotion_all ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_lerp_emotion_blend ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_system_evaluate_blend ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_easing_ease_in_out_midpoint ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_system_evaluate_single ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_add_keyframe_sorted ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_easing_linear_identity ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_bake_frame_count ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_loop_wraps ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_easing_step_returns_prior ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_sample_between_keyframes ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_interpolate_emotions_merges_keys ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_ping_pong ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_sample_exact_keyframe ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_sample_past_end_clamps ... ok [INFO] [stdout] test _morph_part1::emotion_timeline::tests::test_step_easing_holds_prior_value ... ok [INFO] [stdout] test _morph_part1::engine::tests::build_mesh_no_targets ... ok [INFO] [stdout] test _morph_part1::engine::tests::build_mesh_returns_cached_result ... ok [INFO] [stdout] test _morph_part1::engine::tests::build_mesh_with_target ... ok [INFO] [stdout] test _morph_part1::engine::tests::cache_invalidated_after_new_target ... ok [INFO] [stdout] test _morph_part1::engine::tests::incremental_cache_invalidated_on_load_target ... ok [INFO] [stdout] test _morph_part1::engine::tests::incremental_matches_full_build ... ok [INFO] [stdout] test _morph_part1::engine::tests::incremental_multiple_param_changes ... ok [INFO] [stdout] test _morph_part1::engine::tests::incremental_updates_correctly ... ok [INFO] [stdout] test _morph_part1::engine::tests::incremental_with_no_targets ... ok [INFO] [stdout] test _morph_part1::diff::tests::mesh_diff_zero_for_same ... ok [INFO] [stdout] test _morph_part1::emotion_space::tests::test_transition_linear ... ok [INFO] [stdout] test _morph_part1::emotion_system::tests::test_emotion_names ... ok [INFO] [stdout] test _morph_part1::engine::tests::incremental_zero_weight_target_has_no_effect ... ok [INFO] [stdout] test _morph_part1::engine::tests::parallel_build_matches_sequential ... ok [INFO] [stdout] test _morph_part1::engine::integration_tests::target_count_reasonable ... ok [INFO] [stdout] test _morph_part1::engine::tests::load_targets_from_dir_loads_real_targets ... ok [INFO] [stdout] test _morph_part1::engine::integration_tests::all_targets_apply_no_nan ... ok [INFO] [stdout] test _morph_part1::engine::tests::load_targets_auto_weight ... ok [INFO] [stdout] test _morph_part1::engine::integration_tests::multi_target_blend_no_nan ... ok [INFO] [stdout] test _morph_part1::engine::integration_tests::all_targets_parse_without_error ... ok [INFO] [stdout] test _morph_part1::engine::tests::policy_blocks_explicit_target ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_age_to_param_bounds ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_anthroprofile_to_params_all_in_range ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_blend_profiles ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_anthroprofile_sample_deterministic ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_anthrosaample_to_params_keys ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_bmi_to_params_monotone_weight ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_bmi_to_params_range ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_diversity_score_positive ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_empty_library_sample_population ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_height_m_to_param_bounds ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_lcg_normal_deterministic ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_library_find ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_lcg_normal_different_seeds ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_library_names_sorted ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_sample_heights_count ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_add_custom_profile ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_diversity_score_identical_samples ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_diversity_score_single_sample ... ok [INFO] [stdout] test _morph_part1::engine::tests::params_always_clamped ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_normalized_height ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_sample_heights_deterministic ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_sample_heights_reasonable_range ... ok [INFO] [stdout] test _morph_part1::expression::tests::all_preset_names_resolve ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_who_reference_count ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_sample_population_count ... ok [INFO] [stdout] test _morph_part1::expression::tests::apply_expression_skips_missing_targets ... ok [INFO] [stdout] test _morph_part1::ethnic_variation::tests::test_sample_population_deterministic ... ok [INFO] [stdout] test _morph_part1::expression::tests::from_name_case_insensitive ... ok [INFO] [stdout] test _morph_part1::expression::tests::all_presets_have_names ... ok [INFO] [stdout] test _morph_part1::expression::tests::neutral_preset_has_no_components ... ok [INFO] [stdout] test _morph_part1::expression::tests::from_name_unknown_returns_none ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_face_height_positive ... ok [INFO] [stdout] test _morph_part1::expression::tests::preset_components_have_valid_weights ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_face_width_empty ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_build_default_au_basis_length ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_face_width_positive ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_calibrate_intensity_clamped ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_calibrate_no_nan ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_landmark_delta_correct ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_landmark_delta_identical_is_zero ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_normalize_landmark_set_mean_near_zero ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_project_deltas_no_nan ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_landmark_distance_known ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_add_preset_layer ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_landmark_distance_zero_same_point ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_standard_68_landmarks_count ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_add_layer_increases_count ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_blend_layers_empty ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_evaluate_expression_returns_weights ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_blend_layers_single_layer ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_default_config ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_get_layer_weight_none ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_expression_energy ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_layer_count_limit ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_expression_to_json_contains_keys ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_new_composed_expression_empty ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_remove_layer ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_normalize_expression ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_remove_layer_not_found ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_normalize_expression_zero_noop ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_reset_expression ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_two_layer_blend ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_set_layer_weight ... ok [INFO] [stdout] test _morph_part1::expression_composer::tests::test_set_layer_weight_not_found ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::add_remove_preset_round_trip ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::add_increases_count ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::apply_intensity_scales_correctly ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::blend_unknown_name_returns_none ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::blend_at_t0_equals_a ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::blend_at_t1_equals_b ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::blend_presets_at_midpoint ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::build_basic_library_has_seven_presets ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::combine_clamps_to_unit ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::default_library_config_defaults ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::expression_blender_evaluate_in_unit ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::expression_blender_normalize_sums_to_one ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::expression_distance_same_is_zero ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::expression_distance_triangle_inequality ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::find_nearest_empty_returns_neutral ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::default_library_has_eleven_presets ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::find_preset_by_name_substring ... ok [INFO] [stdout] test _morph_part1::engine::tests::random_params_no_nan ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::get_known_preset_returns_some ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::get_preset_correct ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::get_unknown_preset_returns_none ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::list_by_tag_returns_correct_presets ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::list_names_is_sorted ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::list_preset_names_sorted ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::preset_morph_weights_applies_intensity ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::random_blend_in_unit_range ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::write_expression_names_to_tmp ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_add_layer_increases_count ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_add_weight_maps ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::new_expression_library_is_empty ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_clamp_weight_map ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_clear ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_additive_layer ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_additive_layer_with_scale ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_empty_mixer_evaluates_to_empty_map ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_corrective_layer_factory ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_emotion_layer_factory ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_lip_sync_layer_factory ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_merge_weight_maps_midpoint ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_override_layer_full_blend ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_merge_weight_maps_t0_equals_a ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_micro_expression_layer_factory ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_scale_weight_map ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_override_layer_half_blend ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_remove_layer_found ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_remove_layer_not_found ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_top_n_weights ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_set_blend_found ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_set_blend_not_found ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_threshold_weight_map ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_top_n_weights_fewer_than_n ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_blend_retargeted_t0 ... ok [INFO] [stdout] test _morph_part1::expression_mixer::tests::test_weight_map_magnitude ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_add_forward_inverse ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_forward_unknown ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_blend_retargeted_t1 ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_blend_retargeted_union_keys ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_build_prefix_map ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_inverse_unknown ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_identity_map ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_reconstruction_error_nonnegative ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_identity_map_retarget_weights ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_inverse_retarget_weights ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::build_basic_library_emotion_names ... ok [INFO] [stdout] test _morph_part1::expression_library::tests::library_to_json_contains_names ... ok [INFO] [stdout] test _morph_part1::expression_calibration::tests::test_normalize_empty_no_panic ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_stats ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_makehuman_to_daz_map_count ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_stats_empty ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_makehuman_to_daz_map_entries ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_weights_passthrough ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_weights_drop ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_weights_scale ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_weights_map_to_prefix ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_scale_retarget_weights ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_blink_track_loops ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_blink_track_has_keyframes ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_breathing_track_has_keyframes ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_breathing_track_loops ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_breathing_track_period ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_ease_in_out_midpoint ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_ease_clamps_input ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_ease_in ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_ease_linear ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_ease_step ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_lerp_weights_midpoint ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_ease_out ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_lerp_weights_missing_key_in_b ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_lerp_weights_missing_key_in_a ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_lerp_weights_t0_equals_a ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_sequencer_evaluate_all_additive_clamp ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_weights_clamp ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_prefix_map_with_retarget_weights ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_sequencer_track_count ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_add_sorted ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_evaluate_at_end ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_evaluate_midpoint_linear ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_evaluate_at_start ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_pingpong_mode ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_barycentric_centroid ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_duration ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_remove_keyframe ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_barycentric_corner_a ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_barycentric_degenerate ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_barycentric_corner_b ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_delta_magnitude_value ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_interpolate_delta_at_centroid ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_interpolate_delta_at_corner ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_mesh_scale_ratio_identical ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_mesh_scale_ratio_double ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_transfer_batch_count_matches ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_hold_duration ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_add_bone_parent_child_link ... ok [INFO] [stdout] test _morph_part1::expression_sequence::tests::test_track_loop_mode ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_transfer_expression_full_coverage ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_transfer_expression_partial_coverage ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_add_bone_returns_index ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_transfer_expression_identity_topology ... ok [INFO] [stdout] test _morph_part1::expression_transfer::tests::test_delta_magnitude_empty ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_add_corrective ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_bone_count ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_default_facial_rig_non_empty ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_corrective_count_zero ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_evaluate_correctives_empty ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_apply_facial_pose_no_correctives ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_blend_facial_poses ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_facial_rig_to_json_contains_version ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_get_bone_found ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_quat_angle_between_identity ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_new_facial_rig_empty ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_set_bone_rotation_success ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_action_unit_all ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_action_unit_name ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_emotion_to_facs_angry ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_get_bone_not_found ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_set_bone_rotation_fail ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_emotion_to_facs_happy ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_action_unit_number ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_eye_units ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_facs_intensity_from_letter ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_facs_intensity_normalized ... ok [INFO] [stdout] test _morph_part1::facial_rig::tests::test_identity_pose ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_facs_mapper_add_and_evaluate ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_lower_face_units ... ok [INFO] [stdout] test _morph_part1::fitting::tests::fit_height_converges ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_parse_facs_string_multi ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_parse_facs_string_simple ... ok [INFO] [stdout] test _morph_part1::fitting::tests::fit_residual_decreases_from_initial ... ok [INFO] [stdout] test _morph_part1::fitting::tests::fit_result_params_in_range ... ok [INFO] [stdout] test _morph_part1::fitting::tests::quick_fit_completes ... ok [INFO] [stdout] test _morph_part1::fitting::tests::height_measurement_from_mesh ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_compute_gaze_angles ... ok [INFO] [stdout] test _morph_part1::fitting::tests::fit_with_no_targets_returns_initial ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_compute_gaze_forward ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_eye_angles_clamped ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_eye_angles_to_point_forward ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_compute_gaze_point ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_eye_angles_to_point_right ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_eye_angles_to_point_up ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_iris_deform_weight ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_eye_config_default ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_gaze_to_rotation_matrix ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_lid_follow_weight ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_saccade_sequence_evaluate ... ok [INFO] [stdout] test _morph_part1::gaze::tests::test_saccade_sequence_new ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_average_params ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_blend_params_full_a ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_blend_params_full_b ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_blend_params_midpoint ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_clamp_params ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_crossover_blend_all_a ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_crossover_blend_all_b ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_crossover_blend_mixed ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_diversity_score_identical ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_dominant_blend_with_seed ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_dominant_blend_no_seed ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_inherit_random_valid_range ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_params_distance ... ok [INFO] [stdout] test _morph_part1::history::tests::can_redo_true_after_undo ... ok [INFO] [stdout] test _morph_part1::history::tests::can_undo_false_when_empty ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_genetic_params_default ... ok [INFO] [stdout] test _morph_part1::history::tests::capacity_limit_respected ... ok [INFO] [stdout] test _morph_part1::history::tests::jump_to_valid_index ... ok [INFO] [stdout] test _morph_part1::history::tests::labels_all_entries ... ok [INFO] [stdout] test _morph_part1::history::tests::push_and_current ... ok [INFO] [stdout] test _morph_part1::history::tests::push_clears_redo ... ok [INFO] [stdout] test _morph_part1::history::tests::redo_after_undo ... ok [INFO] [stdout] test _morph_part1::history::tests::redo_at_end_returns_none ... ok [INFO] [stdout] test _morph_part1::history::tests::undo_at_start_returns_none ... ok [INFO] [stdout] test _morph_part1::history::tests::undo_returns_previous ... ok [INFO] [stdout] test _morph_part1::incremental::tests::clear_empties_cache ... ok [INFO] [stdout] test _morph_part1::incremental::tests::clear_resets ... ok [INFO] [stdout] test _morph_part1::incremental::tests::dirty_targets_returns_all_marked ... ok [INFO] [stdout] test _morph_part1::incremental::tests::duplicate_mark_is_idempotent ... ok [INFO] [stdout] test _morph_part1::incremental::tests::empty_cache_rebuild_equals_base ... ok [INFO] [stdout] test _morph_part1::incremental::tests::incremental_new_target_matches_full ... ok [INFO] [stdout] test _morph_part1::incremental::tests::incremental_no_dirty_is_noop ... ok [INFO] [stdout] test _morph_part1::incremental::tests::incremental_rebuild_matches_full ... ok [INFO] [stdout] test _morph_part1::incremental::tests::incremental_remove_target_matches_full ... ok [INFO] [stdout] test _morph_part1::incremental::tests::mark_all_dirty ... ok [INFO] [stdout] test _morph_part1::incremental::tests::mark_and_query ... ok [INFO] [stdout] test _morph_part1::incremental::tests::multi_frame_incremental_consistency ... ok [INFO] [stdout] test _morph_part1::incremental::tests::multiple_targets_sum ... ok [INFO] [stdout] test _morph_part1::incremental::tests::out_of_bounds_vertex_id_is_ignored ... ok [INFO] [stdout] test _morph_part1::incremental::tests::remove_target_excludes_contribution ... ok [INFO] [stdout] test _morph_part1::incremental::tests::snapshot_contribution_round_trip ... ok [INFO] [stdout] test _morph_part1::incremental::tests::tracker_starts_clean ... ok [INFO] [stdout] test _morph_part1::incremental::tests::update_target_and_rebuild ... ok [INFO] [stdout] test _morph_part1::incremental::tests::update_target_with_weight ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::affected_vertex_count_correct ... ok [INFO] [stdout] test _morph_part1::genetic::tests::test_genetic_population ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_upper_face_units ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::build_empty_no_vertices ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::build_multiple_targets_same_vertex ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::build_single_target_single_vertex ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::dominant_target_none_for_empty ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::influence_map_stats_empty ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::influences_sorted_by_magnitude ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::isolated_vertices_single_target ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::iter_visits_all_vertices ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::shared_vertices_min_two ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::target_stats_vertex_count_correct ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::target_vertex_coverage_empty_returns_zero ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::target_vertex_coverage_fraction ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::targets_for_unknown_vertex_empty ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::top_influences_for_unknown_vertex_empty ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::targets_for_vertex_returns_all ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::top_influences_for_vertex_returns_n ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::top_vertices_clamps_to_available ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::top_vertices_sorted_desc ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::vertex_influence_dominant_target ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::vertex_influence_total_magnitude ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::vertex_target_overlap_disjoint_sets ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::vertex_target_overlap_identical_sets ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::vertex_target_overlap_partial ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::vertices_for_target_correct ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::vertices_for_unknown_target_empty ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::bake_linear_count ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::catmull_rom_endpoints ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::catmull_rom_sample_returns_some ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::lerp_at_one_is_b ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::lerp_at_zero_is_a ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::track_duration_correct ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::track_sample_after_end ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::track_sample_before_start ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::track_sample_midpoint ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_anthropometric_set_to_measurements ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_area_profile ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_body_volume_cube ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_bsa_dubois ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_bsa_mosteller ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_circumference_at_height_cube ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_circumference_profile ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_compute_all_on_box ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_cross_section_area_cube ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_depth_at_height_cube ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_empty_mesh ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_estimate_weight ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_measure_by_name ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_measure_by_name_unknown ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_order_polygon_points ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_polygon_area_2d ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_polygon_perimeter ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_ponderal_index ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_map_new_empty ... ok [INFO] [stdout] test _morph_part1::expression_retarget::tests::test_retarget_map_retarget_weights ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_scaled_volume ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_stature ... ok [INFO] [stdout] test _morph_part1::facs::tests::test_default_facs_mapper ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_supported_measurements_count ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_width_at_height_cube ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_surface_area_cube ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_layer_no_events_returns_base ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_inject_random_micros_adds_events ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_merge_weights_additive ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_merge_weights_clamp ... ok [INFO] [stdout] test _morph_part1::fitting::tests::target_measurements_all_none_zero_residual ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::build_influence_map_fn_equivalent ... ok [INFO] [stdout] test _morph_part1::influence_map::tests::influence_map_stats_basic ... ok [INFO] [stdout] test _morph_part1::interpolate::tests::lerp_midpoint ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_scaled_surface_area ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_weight_before_event ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_weight_after_event ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_weight_during_fade_in ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_weight_during_fade_out ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_channel_helpers ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_duration ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_fps ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_get_channels ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_interpolate_frame_midpoint ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_joint_names ... ok [INFO] [stdout] test _morph_part1::measurements::tests::test_waist_hip_ratio ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_map_bvh_to_oxihuman ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_parent_children ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_parse_minimal_bvh ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_retarget_scale ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_merge_weights_new_key_added ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_sample_at_peak_merges ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_standard_micro_expressions_count ... ok [INFO] [stdout] test _morph_part1::micro_expression::tests::test_weight_at_peak ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_channel_count ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_find_joint ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_joint_rotation_spine_frame1 ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_root_translation_frame0 ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_root_translation_frame1 ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_sample_at_beyond_end ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_blend_poses_t0 ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_blend_poses_t1 ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_blend_poses_root_lerp ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_write_to_tmp ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_multiply_identity_left ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_inverse_composed_is_identity ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_sample_at_beginning ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_inverse_conjugate ... ok [INFO] [stdout] test _morph_part1::mocap_bvh::tests::test_write_bvh_round_trip ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_compute_skeleton_height_positive ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_multiply_identity_right ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_normalize_length_one ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_slerp_t1 ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_slerp_t_half_normalized ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_retarget_joint_rotation_identity_pass_through ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_retarget_pose_no_nan ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_scale_root_translation_proportional ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_swing_twist_pure_twist ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_normalize_zero_returns_identity ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_swing_twist_roundtrip ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_blend_additive ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_quat_slerp_t0 ... ok [INFO] [stdout] test _morph_part1::mocap_retarget_adv::tests::test_standard_biped_retarget_map_14_joints ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_blend_multiply ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_blend_normal ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_blend_opacity_zero ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_blend_screen ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_blend_override ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_layer_new ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_stack_all_morphs ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_layer_is_active ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_stack_evaluate_empty ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_stack_move_up_down ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_layer_set_get_weight ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_stack_push_pop ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_stack_evaluate_two_layers ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_blend_morphs_midpoint ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_auto_idle_to_walk ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_blend_morphs_t0 ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_blend_morphs_t1 ... ok [INFO] [stdout] test _morph_part1::morph_layer::tests::test_stack_evaluate_single_layer ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_blend_finalises ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_condition_after_seconds ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_condition_parameter_equal_tolerance ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_blend_transition ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_blend_weight_no_blend ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_controller_entry_state ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_condition_always ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_entry_state ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_default_graph_alias ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_condition_at_end ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_expression_graph_morph_weights ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_locomotion_transition_count ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_evaluate_morphs_blending ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_get_state_clip_name ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_expression_graph_entry ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_missing_parameter_default ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_transitions_from_priority_order ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_blend_identical_clips ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_total_time_accumulates ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_clip_duration ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_clip_duration_empty ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_identity_warp ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_concat_clips ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_loop_zero ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_pose_lerp ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_parameter_round_trip ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_linear_warp_curve ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_reverse_clip_inverts ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_loop_doubles_duration ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_sample_at_end_gives_last_frame ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_sample_at_t0_gives_first_frame ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_speed_scale_doubles_duration ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_speed_scale_halves_duration ... ok [INFO] [stdout] test _morph_part1::motion_warp::tests::test_trim_clip_shrinks ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_blend_rig_states_midpoint ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_blend_rig_states_missing_key_treated_as_default ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_blend_rig_states_t0_equals_a ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_evaluate_relaxed_rig_all_zero ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_definition_builder ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_group_all_count ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_instant_transition ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_state_default_is_relaxed ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_group_all_unique_names ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_state_flexed ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_names_list ... ok [INFO] [stdout] test _morph_part1::motion_graph::tests::test_locomotion_state_count ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_group_names ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_state_effective_flex_with_fatigue ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_muscle_state_relaxed ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_params_activation_monotone ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_evaluate_multiple_morphs ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_params_to_activation_range ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_evaluate_flex ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_add_and_count ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_relax_all ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_set_and_get_state ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_apply_fatigue ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_muscles_in_group ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_to_morphs_convenience ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_flex_group ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_side_equality ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_bulge_weight_clamped ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_apply_fatigue_below_threshold ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_bulge_weight_half ... ok [INFO] [stdout] test _morph_part1::muscle_control::tests::test_rig_default_count ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_bulge_weight_zero_angle ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_bulge_weight_max_angle ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_preset_muscles ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_simulator_add_muscle ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_simulator_apply ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_compute_displacements_fixed ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_blend_crossover_t0_is_a ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_compute_displacements_radial ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_compute_displacements_vertex_normal ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_blend_crossover_t1_is_b ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_muscle_from_region ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_crossover_deterministic ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_default_human_specs_count_and_range ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_crossover_values_from_parents ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_simulator_muscles_for_joint ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_blend_crossover_clamps ... ok [INFO] [stdout] test _morph_part1::muscle_sim::tests::test_muscle_new ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_fitness_rank_perfect_match_first ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_generate_random_all_keys_present ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_blend_crossover_midpoint ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_lcg_normal_distribution ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_mutate_deterministic ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_mutate_different_seeds ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_mutate_rate_one_mutates_all_mutable ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_generate_random_in_range ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_mutate_rate_zero_no_mutations ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_lcg_f32_range ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_new_stores_specs_and_config ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_tournament_select_returns_population_member ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_tournament_select_prefers_best_fitness ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_mutate_step_quantization ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_mutate_deltas_correct ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::blend_clip_name_contains_expressions ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::bake_writes_to_tmp ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::blend_clip_two_tracks ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::breathing_clip_has_three_tracks ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::bezier_interpolate_boundaries ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::breathing_clip_loops ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::interpolate_step_holds_a ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::keyframe_new_is_linear ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::keyframe_smooth_constructor ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::keyframe_step_constructor ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_clip_duration_max ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::cubic_hermite_endpoints ... ok [INFO] [stdout] test _morph_part1::mutation_engine::tests::test_mutate_clamp_to_range ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_clip_evaluate_all ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::interpolate_sine_boundaries ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::interpolate_smooth_midpoint ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_clip_bake_all_frames ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::interpolate_linear_midpoint ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_clip_track_count ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_track_bake_count ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_track_clamp_pre_post ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_track_duration_and_frame_count ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_track_loop_mode ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_clip_find_track ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_clip_scale_shift_time ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_track_evaluate_linear ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_track_evaluate_step ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::smoothstep_boundaries ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::param_track_pingpong_mode ... ok [INFO] [stdout] test _morph_part1::param_animation::tests::smoothstep_midpoint ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_conditional_constraint ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_min_relative_constraint ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_max_sum_constraint ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_solve_result_fields ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_bmi_constraints ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_driven_constraint ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_clamp_constraint ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_constraint_is_satisfied ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_max_relative_constraint ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_solver_solve_converges ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_correlation_perfect_positive ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_analyze_removes_zero_variance ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_correlation_matrix_diagonal ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_solver_add_and_count ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_solver_new ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_solver_check_violations ... ok [INFO] [stdout] test _morph_part1::param_constraint::tests::test_sum_equals_constraint ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_correlation_perfect_negative ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_find_redundant_removes_correlated ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_normalize_returns_range_map ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_kept_plus_removed_eq_original ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_param_variance_formula ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_correlation_uncorrelated ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_original_count ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_reduce_param_set_n_keep ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_normalize_param_samples_range ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_param_importance_score_max ... ok [INFO] [stdout] test _morph_part1::param_space_optimizer::tests::test_find_redundant_keeps_uncorrelated ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_action_unit_bilateral_flag ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_bilateral_param_symmetric_flag ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_blend_t1_is_b ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_face_model_new_empty ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_compose_expression_contains_params ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_blend_t0_is_a ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_expression_presets_count ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_apply_action_unit_scales ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_get_param_absent ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_apply_expression_preset_applies ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_neutral_preset_all_zero ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_standard_face_action_units_count ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_standard_face_params_count ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_angle_to_weight_linear ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_angle_to_weight_smoothstep ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_joint_rotation_projected_angle ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_library_apply_corrections ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_reset_zeros_all ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_library_add_and_count ... ok [INFO] [stdout] test _morph_part1::params::tests::default_params_are_midpoint ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_library_shapes_for_joint ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_make_elbow_corrective ... ok [INFO] [stdout] test _morph_part1::params::tests::get_by_name ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_make_shoulder_corrective ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_library_compute_weights ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_weight_at_max_angle ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_pose_corrective_shape_new ... ok [INFO] [stdout] test _morph_part1::parametric_face::tests::test_set_get_param ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_weight_at_min_angle ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_weight_midpoint ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_inverse_distance_falloff ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_evaluate_empty_samples ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_multiple_samples_interpolation ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_normalize_weights_zero_sum ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_normalize_weights_sum_one ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_pose_distance_basic ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_pose_distance_identical ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_weight_clamped_above ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_rbf_gaussian_decay ... ok [INFO] [stdout] test _morph_part1::pose_blend::tests::test_weight_clamped_below ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_rbf_inverse_distance ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_rbf_thin_plate_positive ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_rbf_thin_plate_zero ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_thin_plate_falloff_evaluate ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_rbf_gaussian_large_radius ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_rbf_gaussian_zero_distance ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_add_node ... ok [INFO] [stdout] test _morph_part1::pose_driver::tests::test_single_sample_evaluate_returns_deltas ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_add_transition ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_ease_ease_out ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_check_triggers ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_ease_ease_in ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_ease_linear ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_ease_ease_in_out ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_evaluate_no_transition ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_go_to_valid ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_go_to_invalid ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_pose_graph_new ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_evaluate_mid_transition ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_ease_spring ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_reachable_states ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_detect_symmetry_pairs ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_apply_pose_offset ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_find_joint_missing ... ok [INFO] [stdout] test _morph_part1::pose_graph::tests::test_update_completes_transition ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_detect_symmetry_pairs_no_match ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_apply_pose_offset_missing_joint ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_enforce_symmetry_reduces_error ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_interpolate_poses_midpoint ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_find_joint_by_name ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_quat_slerp_t0 ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_mirror_identity_quat ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_mirror_pose_swaps_joints ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_pose_distance_sym_identity ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_standard_biped_symmetry_pairs_not_empty ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::library_first_preset_fields_match ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_pose_symmetry_error_symmetric_skeleton ... ok [INFO] [stdout] test _morph_part1::pose_symmetry::tests::test_quat_slerp_t1 ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::load_json_from_nonexistent_file_errors ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::preset_extra_params_preserved ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::load_string_invalid_json_errors ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::save_and_load_roundtrip ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::library_preserves_count ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::load_library_wrong_schema_errors ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::save_creates_file ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::save_and_load_all_variants ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::preset_from_json_string_roundtrip ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::save_library_and_load_library_roundtrip ... ok [INFO] [stdout] test _morph_part1::preset_io::tests::preset_to_json_string_is_valid_json ... ok [INFO] [stdout] test _morph_part1::presets::tests::average_preset_is_midpoint ... ok [INFO] [stdout] test _morph_part1::presets::tests::child_has_low_age ... ok [INFO] [stdout] test _morph_part1::regions::tests::blend_toward_global_at_t1_equals_global ... ok [INFO] [stdout] test _morph_part1::regions::tests::all_regions_has_nine ... ok [INFO] [stdout] test _morph_part1::regions::tests::effective_params_uses_override ... ok [INFO] [stdout] test _morph_part1::regions::tests::clear_region_reverts_to_global ... ok [INFO] [stdout] test _morph_part1::presets::tests::all_params_in_range ... ok [INFO] [stdout] test _morph_part1::regions::tests::has_overrides_false_when_empty ... ok [INFO] [stdout] test _morph_part1::regions::tests::effective_params_falls_back_to_global ... ok [INFO] [stdout] test _morph_part1::presets::tests::athletic_has_high_muscle ... ok [INFO] [stdout] test _morph_part1::presets::tests::from_name_case_insensitive ... ok [INFO] [stdout] test _morph_part1::regions::tests::infer_from_name_default_torso ... ok [INFO] [stdout] test _morph_part1::regions::tests::region_params_serialization ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_avg_error_computed ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_closest_vertex_exact ... ok [INFO] [stdout] test _morph_part1::regions::tests::infer_from_name_head ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_closest_vertex_none_beyond_radius ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_closest_vertex_finds_nearest ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_retarget_applies_delta ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_retarget_error_stats_zero_total ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_retarget_failed_count ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_transfer_deltas_count_matches_source ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_retarget_blend_one_full ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_transfer_deltas_value ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_retarget_blend_zero_no_change ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_retarget_error_stats_format ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_retarget_identity_zero_delta ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_smooth_failed_vertex_moves ... ok [INFO] [stdout] test _morph_part1::retarget_mesh::tests::test_smooth_no_failures_noop ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_current_version ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_current_version_empty ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_add_parameter_idempotent ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_add_parameter_op ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_bfs_finds_shortest_path ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_empty_migration_path ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_full_migration_v010_to_v100 ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_merge_parameters_op ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_add_dependency_op ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_remove_parameter_op ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_rename_parameter_op ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_schema_version_ordering ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_schema_version_parse ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_multi_step_migration_path ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_schema_version_parse_invalid ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_single_step_migration_path ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_no_path_found ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_rescale_degenerate_range ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_rescale_parameter_op ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_schema_version_display ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_transform_parameter_op ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_versioned_params_helpers ... ok [INFO] [stdout] test _morph_part1::search::tests::by_category_head ... ok [INFO] [stdout] test _morph_part1::search::tests::categories_count ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_validate_chain_gap ... ok [INFO] [stdout] test _morph_part1::search::tests::entry_from_name_parses_category ... ok [INFO] [stdout] test _morph_part1::search::tests::fuzzy_search_returns_results ... ok [INFO] [stdout] test _morph_part1::search::tests::index_len ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_split_missing_source ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_split_parameter_op ... ok [INFO] [stdout] test _morph_part1::search::tests::search_case_insensitive ... ok [INFO] [stdout] test _morph_part1::search::tests::search_no_match ... ok [INFO] [stdout] test _morph_part1::schema_migration::tests::test_validate_chain_defaults ... ok [INFO] [stdout] test _morph_part1::search::tests::sorted_by_name_is_alphabetical ... ok [INFO] [stdout] test _morph_part1::search::tests::search_substring ... ok [INFO] [stdout] test _morph_part1::session::tests::add_target_name_deduplicates ... ok [INFO] [stdout] test _morph_part1::search::tests::is_subsequence_true ... ok [INFO] [stdout] test _morph_part1::search::tests::is_subsequence_false ... ok [INFO] [stdout] test _morph_part1::session::tests::from_param_state_conversion ... ok [INFO] [stdout] test _morph_part1::session::tests::session_to_param_state ... ok [INFO] [stdout] test _morph_part1::session::tests::session_round_trip_json ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::cluster_shapes_k1_all_same_group ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::compare_different_heights_detects_height ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::cluster_shapes_returns_correct_count ... ok [INFO] [stdout] test _morph_part1::session::tests::session_with_extra_params ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::compare_identical_shapes_similarity_one ... ok [INFO] [stdout] test _morph_part1::session::tests::session_save_load_file ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::average_shape_of_two ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::cosine_similarity_orthogonal_is_zero ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::euclidean_distance_zero_for_same ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::interpolate_shapes_midpoint ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::significant_differences_above_threshold ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::step_toward_moves_closer ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::summary_not_empty ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::cosine_similarity_identical_is_one ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::fitzpatrick_melanin_levels_ordered ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::fitzpatrick_all_has_six_types ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::linear_to_srgb_and_back_roundtrip ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::is_similar_true_for_close_shapes ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::manhattan_distance_zero_for_same ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::fitzpatrick_base_rgb_type6_is_dark ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_lerp_at_zero_equals_self ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::fitzpatrick_base_rgb_type1_is_light ... ok [INFO] [stdout] test _morph_part1::shape_compare::tests::ranked_differences_sorted_desc ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_apply_blush_increases_hemoglobin ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_apply_tan_increases_melanin ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_from_fitzpatrick_type1 ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_lerp_at_one_equals_other ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_to_rgb_type6_is_dark ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_to_rgba_alpha_is_255 ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::add_pattern_increments_count ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_to_rgb_type1_is_light ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::srgb_to_linear_0_is_0 ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::srgb_to_linear_1_is_1 ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_map_from_fitzpatrick ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::blend_skin_maps_at_zero_returns_a ... ok [INFO] [stdout] test _morph_part1::skin_color::tests::skin_color_map_uniform_all_same ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::blend_skin_maps_at_one_returns_b ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::bulge_weights_full_activation_clamps_to_one ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::bulge_weights_zero_activation ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::default_skin_system_evaluate_all_no_panic ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::clamp_skin_map_clamps_above_hi ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::clamp_skin_map_clamps_below_lo ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::blend_skin_maps_b_only_key_scales_by_t ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_all_full_muscle_gives_max_bicep ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::default_skin_system_contains_belly_sag ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_at_half_is_midpoint ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_at_one_returns_max ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_includes_base_only_keys ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_clamps_t_above_one ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_clamps_t_below_zero ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::find_pattern_returns_correct_region ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::default_skin_system_has_eight_patterns ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::find_pattern_returns_none_for_missing ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_all_zero_drivers_yields_base_weights ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::evaluate_at_zero_returns_base ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::sag_weights_zero_params_minimal_sag ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::wrinkle_weights_max_angle_zero_returns_empty ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::wrinkle_weights_full_bend_inner_is_one ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::sag_weights_keys_contain_axis_tag ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::system_starts_empty ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_active_in_crossfade_both_present ... ok [INFO] [stdout] test _morph_part1::skin_deform::tests::wrinkle_weights_zero_bend_is_zero ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_active_after_last_event_empty ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_baked_fps_matches_config ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_active_in_middle_full_weight ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_baked_frame_has_morph_keys ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_baker_config_defaults ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_default_viseme_map_contains_sil ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_blend_viseme_weights_sum ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_bake_frame_count ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_blend_viseme_weights_two_contributions ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_blend_empty_returns_neutral ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_emphasis_scale_applies ... ok [INFO] [stdout] test _morph_part1::speech_baker::tests::test_active_before_first_event_empty ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_arousal_higher_for_angry ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_classify_happy ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_blend_single_emotion ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_classify_sad ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_interpolate_midpoint ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_generate_sad_pitch_decreases ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_estimate_arousal_valence_range ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_prosody_similarity_different ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_generate_happy_pitch_increases ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_classify_neutral ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_prosody_similarity_self ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_prosody_to_face_params_keys ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_dominant_prosody_emotion ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_speech_rate_category ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_lip_sync_from_string ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_prosody_to_face_params_range ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_lip_sync_track_new ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_prosody_to_json_contains_fields ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_all ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_lip_sync_track_evaluate ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_normalize_prosody_clamps ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_name ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_to_viseme_bilabial ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_to_viseme_silence ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_viseme_all ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_from_arpabet ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_to_viseme_vowel ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_is_consonant ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_phoneme_is_vowel ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_viseme_mapper_default ... ok [INFO] [stdout] test _morph_part1::speech_viseme::tests::test_viseme_mapper_evaluate_phoneme ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::is_left_side_true ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::mirror_target_name_none_for_center ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::is_right_side_true ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::mirror_target_deltas_negates_dx ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::mirror_target_name_left_word ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::mirror_target_name_l_prefix ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::symmetry_map_from_simple_pair ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_bounds_empty ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_invert_target_negates ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_bounds_min_le_max ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_bounds_values ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_delta_field_nonzero_count ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_authored_target_stats_non_empty ... ok [INFO] [stdout] test _morph_part1::symmetry::tests::symmetrize_positions_averages_pair ... ok [INFO] [stdout] test _morph_part1::speech_prosody::tests::test_interpolate_t0_equals_a ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_merge_blend0_is_a ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_invert_twice_identity ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_mirror_target_x_swaps ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_normalize_flag ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_smooth_reduces_magnitude ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_scale_target_doubles ... ok [INFO] [stdout] test _morph_part1::target_lib::tests::add_and_iterate ... ok [INFO] [stdout] test _morph_part1::target_lib::tests::deduplication_prevents_duplicate_targets ... ok [INFO] [stdout] test _morph_part1::target_lib::tests::stats_reports_correct_counts ... ok [INFO] [stdout] test _morph_part1::target_lib::tests::iter_yields_name_and_deltas ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_merge_blend1_is_b ... ok [INFO] [stdout] test _morph_part1::target_lib::tests::contains_returns_true_after_add ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_mesh_pair_delta_count ... ok [INFO] [stdout] test _morph_part1::target_authoring::tests::test_threshold_filters ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_timeline_add_track ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_timeline_new ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_timeline_set_key ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_duration ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_evaluate_single ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_evaluate_empty ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_timeline_bake ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_evaluate_linear ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_timeline_evaluate ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_timeline_time_scale ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_add_keyframe_sorted ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_new ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_remove_keyframe ... ok [INFO] [stdout] test _morph_part1::units::tests::age_roundtrip ... ok [INFO] [stdout] test _morph_part1::units::tests::height_roundtrip ... ok [INFO] [stdout] test _morph_part1::units::tests::normal_bmi_maps_to_midrange ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_evaluate_smoothstep ... ok [INFO] [stdout] test _morph_part1::timeline::tests::test_track_evaluate_step ... ok [INFO] [stdout] test _morph_part1::units::tests::bmi_calculation ... ok [INFO] [stdout] test _morph_part1::units::tests::age_30_maps_to_midrange ... ok [INFO] [stdout] test _morph_part1::units::tests::extreme_values_clamped ... ok [INFO] [stdout] test _morph_part1::units::tests::average_height_maps_to_midpoint ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_laplacian_smooth_empty ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_laplacian_smooth_reduces_magnitude ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_mesh_volume_ratio_same_mesh ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_uniform_scale_correction_identity ... ok [INFO] [stdout] test _morph_part1::units::tests::params_from_real_measurements ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_compute_mesh_volume_empty ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_compute_mesh_volume_tetrahedron ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_uniform_scale_correction ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_laplacian_smooth_zero_delta_noop ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_compute_mesh_volume_single_triangle ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_volume_preserving_delta_reduces_error ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_volume_preserving_delta_zero_deltas ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::infer_breast_from_target_name ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::infer_muscle_from_target_name ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::infer_weight_from_target_name ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_volume_error_percent_zero_original ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::muscle_category_maps_to_muscle ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::auto_weight_fn_for_target_works ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::height_category_maps_to_height ... ok [INFO] [stdout] test _morph_part1::volume_morph::tests::test_volume_error_percent_formula ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_apply_weights_single ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_clamp_weights ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_convergence_flag ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::weight_category_maps_to_weight ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_gradient_zero_at_perfect_fit ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_apply_weights_no_deltas ... ok [INFO] [stdout] test _morph_part1::weight_curves::tests::age_category_maps_to_age ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_gradient_direction ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_empty_deltas ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_reconstruction_error_zero ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_zero_target_weight_stays_zero ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_add_blend_node ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_single_target_perfect_fit ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_reconstruction_error_formula ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_reconstruction_error_nonzero ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_add_root ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_blend_graph_to_json ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_connect_nodes ... ok [INFO] [stdout] test _morph_part1::weight_optimizer::tests::test_multiple_morphs_add ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_add_leaf_node ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_get_node ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_leaf_nodes ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_new_blend_graph ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_prune_zero_weight ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_node_count ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_set_node_weight ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_blink_speed_for_emotion ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_blink_value_open ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_topological_sort ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_default_params ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_evaluate_single_leaf ... ok [INFO] [stdout] test _morph_part2::blend_shape_graph::tests::test_evaluate_tree_add ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_blink_value_closed ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_enable_disable ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_force_open_eyes ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_force_close_eyes ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_full_blink_cycle ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_new_state_defaults ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_lcg_next_range ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_is_blinking_closing ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_is_blinking_open ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_set_blink_synchronized ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_update_advances_phase ... ok [INFO] [stdout] test _morph_part2::blink_control::tests::test_trigger_manual_blink ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::new_state_is_neutral ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::sagittal_angle_forward ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::set_lateral ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::set_forward_clamps ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::to_json_contains_fields ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::reset_clears_all ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::clamps_min_scale ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::default_state_is_empty ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::default_config_sane ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::json_contains_torso ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::clamps_max_scale ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::set_backward_clears_forward ... ok [INFO] [stdout] test _morph_part2::body_lean_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::reset_segment_removes_entry ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::segment_name_all_variants ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::set_and_get_scale ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::unknown_segment_returns_neutral ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::body_segment_control::tests::rhythm_scale_at_zero_phase ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_set_waist ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_silhouette_area ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_taper_ratio ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_set_hip ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::default_config_pi ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::body_taper_control::tests::test_set_shoulder_clamps ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::set_lower ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::set_upper_clamps ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::to_json_contains_fields ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::to_weights_len ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::total_angle ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_set_belly ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::body_twist_control::tests::set_upper_negative_clamps ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_set_lower ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_distribution_curve ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_add_breath_region ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_advance_breath_changes_phase ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_apply_breathing_displaces_positions ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_set_overall_clamps ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_blend_breath_states ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_blend_breath_states_extremes ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_advance_breath_increases_time ... ok [INFO] [stdout] test _morph_part2::body_weight_control::tests::test_set_upper ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_breath_value_at_exhale ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_breath_value_at_inhale_midpoint ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_breath_value_at_inhale_start ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_inhale_exhale_values_sum_to_one ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_new_breathing_state ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_set_breath_amplitude ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_breath_region_count ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_set_breath_rate ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_current_phase_initial ... ok [INFO] [stdout] test _morph_part2::breathing_sim::tests::test_default_breath_cycle ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_brow_raise_left_accessor ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_brow_to_morph_weights_count ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_default_brow_config_non_zero ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_brow_to_morph_weights_keys_present ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_emotion_angry_sets_lower_and_furrow ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_emotion_surprised_raises_brows ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_new_brow_state_zeroed ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_reset_brows ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_set_brow_arch ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_blend_brow_states_midpoint ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_emotion_neutral_zeroed ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_brow_furrow_amount_accessor ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_set_brow_lower ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_set_brow_furrow ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_set_brow_raise_clamped ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_set_brow_raise_inner_left ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_update_brows_smoothing ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::intensity_average ... ok [INFO] [stdout] test _morph_part2::brow_control::tests::test_set_brow_raise_outer_both ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::set_outer ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::set_vertical_clamps_negative ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::to_json_contains_fields ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_effective_right_full_symmetry ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::brow_furrowing_control::tests::set_inner_clamps ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_set_both ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_set_left_clamps ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_symmetry ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_set_arch_offset ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part2::brow_height_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_set_spacing_clamps ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_arch_angle ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_set_symmetry ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_effective_sides ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::both_side_sets_both ... ok [INFO] [stdout] test _morph_part2::brow_spacing_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::json_output_not_empty ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::angle_clamp ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::reset_clears_state ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::set_raise_clamps_max ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::symmetry_one_when_equal ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::default_config_max ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::morph_weights_len ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::set_horizontal_clamps ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::intensity_max ... ok [INFO] [stdout] test _morph_part2::brow_tail_control::tests::set_raise_clamps_min ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::set_arch_both_sides ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::symmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_apply_smile_effect_puffs_cheeks ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_apply_smile_effect_zero_smile ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_cheek_hollow_accessors ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_blend_cheek_states_midpoint ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_cheek_to_morph_weights_keys ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::set_vertical_negative_clamped ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_cheek_puff_accessors ... ok [INFO] [stdout] test _morph_part2::brow_wrinkle_control::tests::to_json_contains_keys ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_blend_cheek_states_at_zero ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_default_cheek_config_values ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_new_cheek_state_zeroed ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_reset_cheeks ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_set_cheek_hollow_clamped ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_set_cheek_puff_both ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_set_cheek_puff_clamped_above ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_set_cheek_puff_left ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_set_cheek_puff_right ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_set_cheek_raise ... ok [INFO] [stdout] test _morph_part2::cheek_control::tests::test_update_cheeks_smoothing ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_effective_depth ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_set_both ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_set_hollow ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_set_left_clamps ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_effective_sides ... ok [INFO] [stdout] test _morph_part2::cheek_depth_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_set_fullness_clamps ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_set_projection ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_set_symmetry ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::cheek_fullness_control::tests::test_volume_estimate ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::blend_t0_is_a ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::json_contains_sag ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::set_both_sides ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::set_sag_clamps ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::symmetry_symmetric ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::total_volume_zero_by_default ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::volume_not_negative ... ok [INFO] [stdout] test _morph_part2::cheek_jowl_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::average_depth ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::default_config ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::set_bias_clamped ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::set_left_clamps ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::symmetry_difference ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::cheek_puff_depth::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::average_value ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::set_both_symmetric ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::set_rise_clamps ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::set_rise_left ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::to_json_contains_fields ... ok [INFO] [stdout] test _morph_part2::cheek_rise_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::area_zero_when_no_depth ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::blend_half ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::depth_clamp_max ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::depth_not_negative ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::effective_depth_positive ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::json_contains_depth ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::chin_dimple_control::tests::width_min_clamp ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::net_offset_positive ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::set_protrusion_clears_recess ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::set_recess_clears_protrusion ... ok [INFO] [stdout] test _morph_part2::chin_recess_control::tests::set_vertical_clamps ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::set_vertical ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::set_recession_clamps ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::set_recession_negative ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::set_tilt_clamps ... ok [INFO] [stdout] test _morph_part2::chin_recession_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_set_projection_clamps ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_profile_angle ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_set_cleft ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_set_vertical ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_set_width ... ok [INFO] [stdout] test _morph_part2::chin_shape_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_effective_width ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_set_cleft ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_set_taper ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_blend_cloth_layers_single ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::chin_width_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_apply_body_offset ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_blend_cloth_layers_average ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_blend_cloth_layers_empty ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_blend_cloth_layers_skips_low_weight ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_cloth_blend_energy_displaced ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_cloth_collision_push_outside ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_cloth_blend_energy_rest ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_cloth_collision_push ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_cloth_layer_count ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_cloth_to_rest ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_default_cloth_blend_config ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_get_layer_weight_missing ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_new_cloth_layer ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_normalize_cloth_weights ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_set_get_layer_weight ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_smooth_cloth_blend_empty ... ok [INFO] [stdout] test _morph_part2::cloth_blend::tests::test_smooth_cloth_blend_uniform ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_cavity_volume ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_effective_sides ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_set_symmetry ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_set_width ... ok [INFO] [stdout] test _morph_part2::ear_concha_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::average_cup_zero_default ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::both_sides_set ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::set_cup_clamps_max ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::set_cup_not_negative ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::symmetry_one_equal ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::ear_cup_control::tests::json_has_cup_left ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::default_config ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::set_both_symmetric ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::set_definition ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::set_fold_clamps ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::set_fold_left ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::ear_helix_fold::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::set_both_roll_equal ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::set_roll_clamps ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::set_roll_left ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::set_sharpness ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::symmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part2::ear_rim_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_set_both ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_set_left_clamps ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_set_protrusion ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_set_right ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::ear_tragus_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_add_spring_joint ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_apply_impulse_changes_velocity ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_default_facial_physics_count ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_displacement_formula ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_evaluate_deltas_at_rest_zero ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_evaluate_kinetic_energy_at_rest_zero ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_evaluate_returns_correct_count ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_joint_count_empty ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_kinetic_energy_formula ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_new_expression_physics ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_reset_zeroes_velocity ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_set_enabled_disables_stepping ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_set_rest_position ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_spring_returns_to_rest ... ok [INFO] [stdout] test _morph_part2::expression_physics::tests::test_step_changes_position_after_impulse ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_advance_playback ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_advance_playback_not_playing ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_new_recorder_state ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_new_recording ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_playback_at_before_start ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_playback_at_empty ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_playback_at_interpolates ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_record_snapshot ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_recorder_state_transitions ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_recording_duration ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_reverse_recording ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_scale_recording_time ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_snapshot_count ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_start_recording_stops_playback ... ok [INFO] [stdout] test _morph_part2::expression_recorder::tests::test_trim_recording ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_auto_blink_tick_closure ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_auto_blink_tick_starts_blink ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_blink_factor_initial ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_clamp_gaze ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_default_eye_config ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_eye_yaw_pitch_deg ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_gaze_blend_extremes ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_gaze_blend_midpoint ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_gaze_distance_nonzero ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_gaze_distance_zero ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_is_blinking_eye ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_look_at_target_forward ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_look_at_target_right ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_new_eye_state ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_saccade_towards_partial ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_saccade_towards_reaches ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_trigger_blink ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_update_eye_gaze_clamped ... ok [INFO] [stdout] test _morph_part2::eye_control::tests::test_update_eye_gaze_converges ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_set_both ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_set_crease ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_set_left_clamps ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_set_right ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::eye_fold_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::average_depth ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::default_config ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::set_both_depth_equal ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::set_depth_left_clamps ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::set_tilt_clamped ... ok [INFO] [stdout] test _morph_part2::eye_inner_corner::tests::symmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_crease_angle ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_set_fold ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::asymmetry_zero_symmetric ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_set_height ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::eye_lid_crease::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::rad_conversion ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::contour_intensity_max ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::json_not_empty ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::set_tilt_clamp_negative ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::set_tilt_clamp_positive ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::eye_tilt_control::tests::both_sides ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::set_zygomatic ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::set_mandible ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::set_temporal_clamps ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::face_contour_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_effective_scale ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_set_scale_clamps ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_set_upper_contrib ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_to_json_contains_fields ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_new_state_defaults ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_set_lower_contrib ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::face_length_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_overall_softness ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_set_jaw_softness ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_set_roundness_clamps ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::circular_noise_bounded ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_perimeter_positive ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::deviation_clamp ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::default_symmetric ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_set_forehead_curve ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::face_roundness_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::enforce_weight_clamped ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::json_contains_enforce ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_curl_angle ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_finger_index ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::set_deviation_stores ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::total_deviation_sum ... ok [INFO] [stdout] test _morph_part2::face_symmetry_control::tests::unknown_axis_zero ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_set_all_curl ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_set_curl ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_cross_section_area ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_set_nail_length ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_set_curl_clamps ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_set_spread ... ok [INFO] [stdout] test _morph_part2::finger_joint_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_set_taper ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::average_spread ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::set_curl ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::set_right_all ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::set_single_toe ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::default_config ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::set_left_all_clamps ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::finger_tip_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::foot_toe_spread::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::blend_half ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::clamp_max ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::clamp_min ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::json_has_arch ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::arch_clamp ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::both_sides_set ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::default_half_width ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::reset_default ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::symmetry_equal ... ok [INFO] [stdout] test _morph_part2::foot_width_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_set_bossing ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_set_protrusion_clamps ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_set_slope ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_slope_angle ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::set_center_clamps ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::forehead_protrusion_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::average_raise ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::set_all_equal ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::set_sides ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::symmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::central_clamp ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::json_has_central ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::set_temple_clamps ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::total_prominence_zero ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::forehead_raise_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_effective_width ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::symmetry_one_equal ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::forehead_vein_control::tests::not_neutral_after_set ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_set_bossing ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_set_temple ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_clamp ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_set_height_clamps ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::glabella_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_blend_strands_at_zero ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_generate_coily ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_bounding_box_non_empty ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_curl_amplitude_curly_positive ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_curl_frequency_straight_zero ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_bounding_box_empty ... ok [INFO] [stdout] test _morph_part2::forehead_width_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_generate_curly ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_new_strand_empty ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_strand_length_positive ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::average_prominence_zero ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_generate_straight ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_gravity_displaces_downward ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_set_profile ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_tangent_at_start ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::definition_clamped ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::json_has_prominence ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::out_of_range_finger_ignored ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::set_all_prominence ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::set_prominence_clamps ... ok [INFO] [stdout] test _morph_part2::hand_knuckle_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_cross_section ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_set_arch ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_strand_to_vertices ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_tangent_empty_strand ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::hair_strand::tests::test_strand_point_count ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::hand_palm_control::tests::test_set_thickness ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_set_right ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_set_left_clamps ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_set_palm_width ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::hand_thickness_control::tests::test_set_finger_girth ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::average_prominence ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::set_left_clamps ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::set_branching ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::hand_vein_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_effective_distance ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_set_distance_clamps ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_set_bridge_width ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_set_tilt ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::intercanthal_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_blend_jaw_states_half ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_blend_jaw_states_zero ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_jaw_open_amount ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_jaw_velocity ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_jaw_to_morph_weights_closed ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_jaw_open_for_phoneme_missing ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_blend_jaw_states_one ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_jaw_to_morph_weights_wide_open ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_jaw_open_for_phoneme_found ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_clamp_jaw_range ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_new_jaw_state ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_reset_jaw ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_set_jaw_lateral ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_set_jaw_open_clamps ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_set_jaw_lateral_clamps ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_update_jaw_toward_target ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_update_jaw_converges ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_effective_depth ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_phoneme_map_has_many_entries ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_set_angle ... ok [INFO] [stdout] test _morph_part2::jaw_control::tests::test_update_jaw_zero_dt ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_set_ramus ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_set_definition_clamps ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_sharpness ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_set_angle ... ok [INFO] [stdout] test _morph_part2::jaw_depth_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_gonial_angle ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::jaw_line_control::tests::test_set_width ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::blend_half ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::lateral_clamp ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::plane_clamp ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::protrusion_clamp_max ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::protrusion_clamp_min ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::horizontal_offset_finite ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::json_has_protrusion ... ok [INFO] [stdout] test _morph_part2::jaw_protrusion_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::net_ap_anterior ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::set_anterior_clears_posterior ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::set_posterior_clears_anterior ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::set_lateral_signed ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::bow_width_positive ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::arch_not_negative ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::blend_half ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::dip_clamped ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::default_flat ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::json_has_arch ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::reset_flat ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::spread_clamps_min ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::lip_bow_control::tests::set_arch_clamps_max ... ok [INFO] [stdout] test _morph_part2::jaw_shift_control::tests::displacement_magnitude_zero_at_neutral ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_set_length ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_prominence ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_default_coarticulation ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_evaluate_lip_sync_silence ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_evaluate_lip_sync_active ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_add_event ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_set_width ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_phoneme_to_mouth_shape_bilabial ... ok [INFO] [stdout] test _morph_part2::lip_philtrum_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_event_count ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_new_track ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_phoneme_to_mouth_shape_vowels ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_phonemes_at_time ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_scale_lip_sync_timing ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_sort_phoneme_events ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_merge_lip_sync_tracks ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_trim_lip_sync ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_viseme_weights_empty ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_viseme_weights_active ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_apply_empty ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_clone_eq ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_apply_partial ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_blend_one ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_blend_zero ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_apply_full ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_apply_stream ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_apply_stream_out_of_bounds ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_default_values ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_total_default_volume ... ok [INFO] [stdout] test _morph_part2::lip_thickness_control::tests::test_total_lip_volume ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_apply_chunk ... ok [INFO] [stdout] test _morph_part2::lip_sync_advanced::tests::test_phoneme_to_mouth_shape_silence ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_default_stream_config ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_split_deltas_into_chunks ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_filter_stream_threshold ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_split_empty_deltas ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_merge_chunks ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_push_chunk ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_stream_chunk_count ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_new_delta_stream ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_clear_stream ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_stream_memory_bytes ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_stream_delta_count ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_apply_quantized_morph ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_apply_quantized_morph_weight ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_dequantize_morph ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_dequantize_zero ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_filter_zero_deltas ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_merge_quantized_morphs ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_pack_unpack_roundtrip ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_quantize_morph_basic ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_quantize_morph_threshold ... ok [INFO] [stdout] test _morph_part2::morph_delta_stream::tests::test_stream_to_flat_deltas ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_quantize_zero ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_compression_ratio_geq_one ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_max_quantization_error ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_quantize_dequantize_roundtrip ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_quantized_delta_count ... ok [INFO] [stdout] test _morph_part2::morph_quantize::tests::test_unpack_empty_returns_none ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_active_aus ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_add_action_unit ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_au_to_emotion_neutral ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_apply_au_frame ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_evaluate_au_set ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_au_frame_from_set ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_get_au ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_au_to_emotion_happiness ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_au_count ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_blend_au_frames ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_new_au_set ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_get_au_not_found ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_reset_all_aus ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_set_au_intensity_clamps ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_set_au_intensity_not_found ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_standard_facs_set_has_15_aus ... ok [INFO] [stdout] test _morph_part2::muscle_action_unit::tests::test_set_au_intensity ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_contract_clamp ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_contract_relax ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_apply_muscle_deformation ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_default_arm_muscles_has_three ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_default_arm_muscles_names ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_direction_unit_length ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_direction_components ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_compute_muscle_deformation ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_group ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_point_to_line_distance_clamped ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_group_deformation ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_influence_weight_on_axis ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_length_zero ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_point_to_line_distance_perpendicular ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_length ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_point_to_line_distance_on_line ... ok [INFO] [stdout] test _morph_part2::muscle_line::tests::test_muscle_influence_weight_far ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_overall_width ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_set_flare ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::average_zero ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_set_thickness ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::nasal_alar_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::flare_clamps_min ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::both_sides ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::flare_clamps_max ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::symmetry_equal ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::json_contains_flare ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::bridge_prominence_zero_at_neutral ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::set_depth_clamps ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::nasal_flare_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::set_height_signed ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::set_squish_clamps ... ok [INFO] [stdout] test _morph_part2::nasal_root_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::angular_deviation_uses_frac_pi_4 ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::contains_check_range ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::deviation_clamped_negative ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::depth_clamped ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::deviation_clamped_positive ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::json_contains_deviation ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::width_clamped ... ok [INFO] [stdout] test _morph_part2::nasal_septum_control::tests::weights_deviate_right ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::depth_clamps_max ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::depth_not_negative ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::spread_clamp ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::average_depth_zero ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::sagittal_angle_forward_positive ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::set_backward_clears_forward ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::set_forward_clears_backward ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::json_has_spread ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::set_lateral ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::bottom_tier ... ok [INFO] [stdout] test _morph_part2::neck_crease_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::asymmetry_symmetric_is_zero ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::contains_range_check ... ok [INFO] [stdout] test _morph_part2::neck_flexion_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::json_contains_platysma ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::asymmetry_uses_frac1sqrt2 ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::set_scm_left_clamped ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::weights_correct ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_circumference ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_set_trapezius ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::set_scm_both ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::platysma_clamped ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_set_front_depth ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_mirror ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::neck_tendon_control::tests::reset_works ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part2::neck_width_control::tests::test_to_weights ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_to_weights_length ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_add_pose_entry ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_get_pose ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_all_tags ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_set_tilt_clamps ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_nearest_pose_empty ... ok [INFO] [stdout] test _morph_part2::orbital_rim_control::tests::test_weights_range_after_set ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_get_pose_not_found ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_import_poses ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_nearest_pose ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_new_pose_database ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_pose_count ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_pose_database_to_json ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_pose_similarity_identical ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_search_by_name ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_search_by_tag ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_sort_by_name ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_pose_similarity_different ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_cubic_hermite_at_t0 ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_remove_pose ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_add_pose_key_sorted ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_cubic_hermite_pose_length ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_cubic_hermite_at_t1 ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_compute_cubic_tangents ... ok [INFO] [stdout] test _morph_part2::pose_database::tests::test_search_by_name_case_insensitive ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_curve_duration ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_lerp_at_half ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_lerp_at_t0 ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_lerp_at_t1 ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_normalize_quat ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_quat_multiply_identity ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_quat_slerp_at_endpoints ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_sample_curve_linear ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_squad_returns_normalized ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_tcb_tangents_single_key ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::depth_clamped_negative ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::flare_angle_full ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::flare_clamped ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_quat_dot ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::reset_works ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::json_contains_barrel ... ok [INFO] [stdout] test _morph_part2::pose_interpolation::tests::test_sample_curve_before_start ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::slice_not_empty_check ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::weights_wide ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::average_wing ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::rib_cage_control::tests::width_clamped_positive ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::set_both_wing_equal ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::set_wing_clamps ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::set_wing_left ... ok [INFO] [stdout] test _morph_part2::scapula_control::tests::set_elevation_signed ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_add_secondary_bone ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_blend_secondary_to_target_full ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_chain_kinetic_energy_zero_velocity ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_blend_secondary_to_target_half ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_chain_kinetic_energy_nonzero ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_default_secondary_config ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_secondary_bone_count ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_secondary_bone_lag ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_secondary_chain_positions ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_secondary_bone_lag_zero ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_set_chain_wind ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_update_secondary_chain_targets ... ok [INFO] [stdout] test _morph_part2::secondary_motion::xpbd_tests::test_length_constraint_preserves_distance ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_update_secondary_bone_spring_force ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_reset_secondary_chain_zeros_velocity ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_new_secondary_bone_fields ... ok [INFO] [stdout] test _morph_part2::secondary_motion::xpbd_tests::test_pin_holds_fixed ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_update_secondary_bone_external_force ... ok [INFO] [stdout] test _morph_part2::secondary_motion::xpbd_tests::test_self_collision_detection ... ok [INFO] [stdout] test _morph_part2::secondary_motion::xpbd_tests::test_no_stretch_under_gravity ... ok [INFO] [stdout] test _morph_part2::secondary_motion::tests::test_new_secondary_chain_empty ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::set_both_girth ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::average_girth ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::default_config ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::set_curvature_signed ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::set_girth_clamps ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::set_girth_left ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::both_sides ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::json_has_slope ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::slope_clamps_max ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::slope_rad_zero ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::symmetry_equal ... ok [INFO] [stdout] test _morph_part2::shin_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::slope_clamps_min ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_new_skin_preset_has_all_zones ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_preset_count ... ok [INFO] [stdout] test _morph_part2::shoulder_slope_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_apply_age_effect ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_blend_skin_params_one ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_blend_skin_params_zero ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_default_skin_params ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_set_hemoglobin ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_set_melanin ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_skin_color_from_params_dark ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_set_roughness ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::average_girth_neutral ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_set_sss_strength ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_set_sss_strength_clamps ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_set_zone_tint ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_skin_color_from_params_light ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_skin_preset_to_json ... ok [INFO] [stdout] test _morph_part2::skin_shader::tests::test_zone_params_found ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::girth_clamps_max ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::reset_neutral ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::both_sides_girth ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::girth_clamps_min ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::inner_clamped ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::json_has_girth ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::symmetry_equal ... ok [INFO] [stdout] test _morph_part2::thigh_control::tests::weights_len ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_blend_tongue_states_at_one ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_blend_tongue_states_at_zero ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_new_state_is_neutral ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_reset_tongue ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_set_elevation_clamps ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_phoneme_map_not_empty ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_set_extension_clamps ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_tongue_shape_name ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_tongue_to_morph_weights ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_set_lateral_clamps ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_set_shape ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_tongue_for_phoneme_not_found ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_update_large_dt_reaches_target ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_update_moves_toward_target ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_audio_frames_to_jaw_curve_length ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_amplitude_to_jaw_in_range ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_blend_jaw_curves ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_amplitude_to_jaw_max ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_frames_to_viseme_weights_length ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_amplitude_to_jaw_zero ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_jaw_curve_max ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_sample_interpolation ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_smooth_does_not_change_length ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_frequency_to_viseme_index_valid ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_jaw_curve_duration ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_sample_at_t0 ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_silence_duration_all_silent ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_voice_anim_from_frames ... ok [INFO] [stdout] test _morph_part2::voice_driven_anim::tests::test_voiced_segments_count ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_tongue_extension_amount ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_add_procedural_wrinkles ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_apply_wrinkle_weight ... ok [INFO] [stdout] test _morph_part2::tongue_control::tests::test_tongue_for_phoneme_found ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_blend_wrinkle_maps ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_compute_wrinkle_from_deformation_no_deform ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_blend_wrinkle_maps_clamp ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_compute_wrinkle_from_deformation_with_deform ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_default_wrinkle_config ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_normalize_uniform ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_new_wrinkle_map ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_smooth_wrinkle_map_no_panic ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_normalize_flat ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_wrinkle_region_average ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_wrinkle_region_average_empty ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_wrinkle_to_normal_delta ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_blend_identity ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_is_valid_default ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_default ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_to_json_contains_fields ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_set_flare_clamped ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_achilles_groove_range ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_threshold_wrinkle_map ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_blend_endpoints ... ok [INFO] [stdout] test _morph_part2::wrinkle_map::tests::test_wrinkle_map_min_max ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_evaluate_clamps ... ok [INFO] [stdout] test _morph_part3::alar_base_control::tests::test_set_width_clamped ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_corrective_weight_equal_angles ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_corrective_weight_full ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_corrective_weight_zero ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_default_params ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_evaluate_empty ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_malleolus_bump_centre ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_malleolus_bump_zero_spread ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_evaluate_clamps ... ok [INFO] [stdout] test _morph_part3::ankle_control::tests::test_dorsiflexion_corrective ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_is_valid_default ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_set_convexity ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_volume_factor_default ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_belly_profile_centre ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_set_bloat_clamped ... ok [INFO] [stdout] test _morph_part3::belly_shape_control::tests::test_default_is_zero ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_blend_bicep_midpoint ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_evaluate_empty ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_mirror_bicep ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_vein_zero_vascularity ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_flexion_corrective_bounds ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_belly_profile_edges ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_peak_zero_flexion ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::angular_spread_is_nonneg ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::average_deviation_correct ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_head_separation_outside ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::out_of_range_region_ignored ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::reset_returns_to_neutral ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::set_offset_clamps ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::to_json_contains_region_key ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::to_weights_range ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::total_deviation_sums_abs ... ok [INFO] [stdout] test _morph_part3::body_asymmetry_v2::tests::default_state_is_neutral ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::displacement_positive_when_shifted ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::displacement_zero_at_neutral ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::json_contains_ap_key ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::lean_angle_sign ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::bicep_control::tests::test_default_params ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::weights_sign_matches_direction ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::exponent_changes_output ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::json_contains_volume_key ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::set_ap_clamps ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::set_volume_clamps_high ... ok [INFO] [stdout] test _morph_part3::body_center_control::tests::set_lateral_clamps ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::set_volume_clamps_low ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::estimated_volume_positive ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_evaluate_clamps ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_is_invalid ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_is_valid_default ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_set_ptosis_clamped ... ok [INFO] [stdout] test _morph_part3::body_volume_control::tests::weights_in_unit_range ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_default ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::breast_shape_control::tests::test_set_volume ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::reset_zeroes_values ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::set_both_applies_to_both_sides ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::set_clamps_to_max ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::to_weights_max_gives_one ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::arch_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::asymmetry_is_abs_diff ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::asymmetry_symmetric ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::average_midpoint ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::brow_arch_height::tests::to_json_contains_left ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::lift_angle_proportional ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::lift_clamps_high ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::weights_six_elements ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::asymmetry_positive_when_different ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::furrow_clamps ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::brow_asymmetry::tests::lift_clamps_low ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::asymmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::set_clamps_high ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::arch_at_peak_position_is_max ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::asymmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::reset_clears_values ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::set_clamps_low ... ok [INFO] [stdout] test _morph_part3::brow_lateral_control::tests::weights_scale_by_max_offset ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::clamp_high ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::json_contains_left_key ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::set_left_peak ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_blend_brow_ridge ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_default_brow_ridge ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_evaluate_brow_ridge ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_invalid_ridge ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_asymmetry_effect ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_set_ridge_width ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_clamp_morph ... ok [INFO] [stdout] test _morph_part3::brow_peak_control::tests::set_both_sets_both ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_ridge_intensity ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::brow_ridge_control::tests::test_is_valid_ridge ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_set_muscle_clamps ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_set_definition_clamps ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_asymmetry ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_mirror_averages ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_new_state_zeros ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_set_muscle_valid ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_blend_extremes ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_default ... ok [INFO] [stdout] test _morph_part3::calf_control::tests::test_to_json_has_keys ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_set_depth ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::average_mid ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_evaluate ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_intensity ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_invalid ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::cheek_hollow_control::tests::test_valid ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::asymmetry_abs_diff ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::set_both_applies ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::set_clamps ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::to_json_has_right ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::average_midpoint ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::to_weights_one_at_max ... ok [INFO] [stdout] test _morph_part3::cheek_nasal_fold::tests::fold_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::asymmetry_when_unequal ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::set_clamps_above_one ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::blend_at_one_is_b ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::json_contains_left_key ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::set_clamps_below_zero ... ok [INFO] [stdout] test _morph_part3::cheek_sag_control::tests::weights_proportional ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::asymmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::average_is_mean_of_sides ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::reset_clears_all ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::set_left_clamps ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::vertical_bias_clamped ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_default_params ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_is_invalid ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_set_arch_width ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::cheek_tighten_control::tests::weights_in_unit_range ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::angle_positive_when_flat ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_evaluate_clamping ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_is_valid_default ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::cheekbone_v2::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::flatten_clamps_high ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::weight_scales_with_config ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::v_bias_clamps ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::angle_zero_at_neutral ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::json_contains_flatten ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::groove_area_product ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::angle_nonneg ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::blend_at_one_is_b ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::set_depth_clamps ... ok [INFO] [stdout] test _morph_part3::chin_flat_control::tests::flatten_clamps_low ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::json_has_volume ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::pad_size_in_range ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::set_volume_clamps ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::set_width_clamps ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::to_json_has_depth ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::to_weights_range ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::reset_zeros_all ... ok [INFO] [stdout] test _morph_part3::chin_groove_control::tests::to_weights_at_max ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::spread_clamped_negative ... ok [INFO] [stdout] test _morph_part3::chin_pad_control::tests::weights_all_in_range ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_blend_identity ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_set_angle_clamp ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_set_length ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_compute_weights ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_evaluate_angle ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_offset ... ok [INFO] [stdout] test _morph_part3::clavicle_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_default ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_evaluate_clamps ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::blend_half ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_is_valid_default ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_set_angle_clamped ... ok [INFO] [stdout] test _morph_part3::columella_control::tests::test_set_width ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::average_is_mid ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::set_clamps_above_max ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::symmetry_abs_diff ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::ridge_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::json_has_left_fold ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::to_json_has_right ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::to_weights_max ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::reset_zeros_folds ... ok [INFO] [stdout] test _morph_part3::ear_antihelix_control::tests::set_both_mirrors ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::set_one_side ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::symmetry_when_equal ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::droop_clamps ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::ear_fold_control::tests::clamp_high ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::size_clamps ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::set_both_size_equal ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::dominant_channel_found ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::symmetry_less_when_asymmetric ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::symmetry_one_when_equal ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::deterministic_same_seed ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::json_array_format ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::sample_length_matches_config ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::sparse_expression_fewer_entries ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_mirror ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_new_state_zeros ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_set_depth_left_clamps ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_set_depth_right ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_to_json_contains_fields ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::asymmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::json_has_left_right ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::energy_zero_for_zeros ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::normalize_unit_length ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::lid_angle_positive ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::set_clamps_high ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::weights_correct ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::angle_nonneg ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::asymmetry_abs ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::average_mid ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::set_both_mirrors ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::set_clamps ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::to_json_has_left ... ok [INFO] [stdout] test _morph_part3::eye_fissure_control::tests::to_weights_at_max ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::default_config ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::set_both_depth ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::set_depth_clamps ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::set_depth_left ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::set_tilt_clamps ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::eye_outer_corner::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::ear_lobe_size::tests::weights_four_values ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_blend_identity ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_compute_weights ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::reset_works ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part3::eye_droop_control::tests::set_clamps_low ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_set_convergence ... ok [INFO] [stdout] test _morph_part3::expression_randomizer::tests::different_seeds_differ ... ok [INFO] [stdout] test _morph_part3::eye_depth_control::tests::test_set_depth_both ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_set_depth ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_set_vertical_offset ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_set_distance_clamp ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::compression_angle_positive ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::json_has_left ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::set_left ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::average_three_vals ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::blend_mid ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::range_max_minus_min ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::set_all_applies ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::set_upper_clamps ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::to_json_has_middle ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::profile_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::face_depth_control::tests::to_weights_at_max ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::asymmetry_zero_equal ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::eye_spacing_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::eye_squint_control::tests::set_both_syncs ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::depth_scale_less_at_max ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::depth_scale_one_at_neutral ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::flatness_clamps_low ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::json_keys_present ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::reset_works ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::mid_clamps ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::flatness_clamps ... ok [INFO] [stdout] test _morph_part3::face_flatness_control::tests::weights_positive ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::set_all ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::set_middle ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::average_in_range ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::blend_at_one_is_b ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::json_has_bizygomatic ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::link_regions_propagates ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_blend_identity ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::set_upper_clamps ... ok [INFO] [stdout] test _morph_part3::face_vertical_control::tests::total_scale_sum ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::set_bizygomatic_clamps ... ok [INFO] [stdout] test _morph_part3::face_width_v2_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_compute_weights ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_set_knuckle_size ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_set_thickness ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_set_length_clamp ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_set_taper ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_default_params ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_clamp_spread ... ok [INFO] [stdout] test _morph_part3::finger_length_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_blend_finger_spread ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_max_spread_thumb_largest ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_effective_spread_zero_scale ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_preset_wide_nonzero ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_finger_from_index_valid ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_blend_identity ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_set_arch_height_clamp ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_set_arch_length ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_compute_weights ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_set_stiffness ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::foot_arch_control::tests::test_set_pronation ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::set_padding ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::set_width_clamps ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::set_both_symmetric ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::set_width_left ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::json_has_left_pad ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::foot_ball_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::calcaneus_clamped ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::set_both_pads_equal ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::pad_asymmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::pad_returns_correct_side ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::set_pad_clamps_high ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::foot_heel_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::arch_angle_positive ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::average_arch_correct ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::set_clamps_high ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::set_clamps_low ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_evaluate_default ... ok [INFO] [stdout] test _morph_part3::foot_instep_control::tests::weights_scale_correctly ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::curl_clamps ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::curl_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_finger_from_index_invalid ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::finger_spread_control::tests::test_web_stretch_weight_same ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::average_length_zero_by_default ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::to_json_has_curl ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_blend_identity ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::out_of_range_toe_ignored ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_compute_weights_range ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::set_all_applies ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::set_toe_clamps ... ok [INFO] [stdout] test _morph_part3::foot_toe_shape::tests::to_weights_max ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_set_muscle ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_set_pronation_clamp ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_set_taper ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::depth_clamps_high ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::depth_clamps_low ... ok [INFO] [stdout] test _morph_part3::forearm_control::tests::test_set_veins ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::spread_clamps ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::curvature_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::effective_depth_zero_at_neutral ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::intensity_product_of_depth_and_spread ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::json_has_depth ... ok [INFO] [stdout] test _morph_part3::forehead_crease_control::tests::line_count_clamps_to_max ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::average_mid ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::blend_at_half ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::set_both_applies ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::set_lateral_clamps ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::to_json_has_lateral ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::to_weights_at_max ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::set_central_clamps ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::set_central_clamps ... ok [INFO] [stdout] test _morph_part3::forehead_globe_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::set_all ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::set_compression ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::set_lateral ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::reset_clears_depth ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::set_depth_clamps_high ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::v_shift_clamped ... ok [INFO] [stdout] test _morph_part3::forehead_tension_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::json_has_depth ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::slope_angle_zero_neutral ... ok [INFO] [stdout] test _morph_part3::glabella_depth_control::tests::slope_angle_positive_when_depth_nonzero ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_area_index ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_is_valid_default ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_default ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_evaluate_clamps ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_set_projection_clamped ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_blend_identity ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_blend ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_set_curvature ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_compute_weights ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part3::gluteal_control::tests::test_set_volume ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_set_exposure_clamp ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::average_angle_zero_at_neutral ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::json_has_left_right ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_set_width ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::finger_angle_positive ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::finger_count_constant ... ok [INFO] [stdout] test _morph_part3::gum_line_control::tests::test_set_recession ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::out_of_range_finger_ignored ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::set_curl_clamps ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::set_palm_compression ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::set_curl_left ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::set_all_fills_array ... ok [INFO] [stdout] test _morph_part3::hand_finger_splay::tests::set_finger_clamps ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::set_both_symmetric ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::average_is_zero_by_default ... ok [INFO] [stdout] test _morph_part3::hand_grip_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::mc_count_correct ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::set_all_applies ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::span_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::to_json_has_left_avg ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::asymmetry_zero_equal ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::effective_width_in_range ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::finger_spread_clamped ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::out_of_range_ignored ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::json_has_left ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::set_clamps ... ok [INFO] [stdout] test _morph_part3::hand_metacarpal_control::tests::to_weights_max ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_apply_hip_width_empty ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_blend_clamps_t ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_default_hip_width ... ok [INFO] [stdout] test _morph_part3::hand_width_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_hip_ratio_wide ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_apply_hip_width_full ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_hip_ratio_equal_axes ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_hip_circumference_positive ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::bite_force_average ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::hip_width_control::tests::test_apply_hip_width_short_slice ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::set_clamps_low ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::set_clamps_high ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::weights_proportional ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::blend_at_one ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::flare_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::ramus_area_positive ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::to_weights_max_height ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::jaw_clench_control::tests::temporal_angle_positive_when_clenched ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::set_flare_clamps ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::set_height_clamps ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::to_json_has_flare ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::lateral_clamped_negative ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::gap_clamped_high ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::json_has_gap ... ok [INFO] [stdout] test _morph_part3::jaw_ramus_control::tests::to_json_has_height ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::jaw_rest_control::tests::gap_rad_positive ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::set_twist_negative ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::total_displacement_positive ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::set_twist_clamps ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_blend_knee_midpoint ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_default_params ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_evaluate_empty ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_fat_pad_below_patella ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_flexion_corrective_full ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_flexion_corrective_zero ... ok [INFO] [stdout] test _morph_part3::jaw_twist_control::tests::set_lateral ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_patella_posterior ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_popliteal_posterior ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_skin_fold_weight_zero ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::bow_acuity_ratio ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::blend_mid ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::bow_acuity_zero_when_depth_zero ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::peak_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::set_depth_clamps ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::set_peak_clamps ... ok [INFO] [stdout] test _morph_part3::knee_control::tests::test_patella_anterior ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::bow_angle_positive_peaked ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::bow_angle_negative_when_flat ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::to_json_has_peak ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::lower_def_clamps ... ok [INFO] [stdout] test _morph_part3::lip_cupid_control::tests::to_weights_max ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::width_scale_clamps ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::upper_bow_clamps ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::set_both ... ok [INFO] [stdout] test _morph_part3::lip_line_control::tests::weights_three_values ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::set_lower ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::set_protrusion ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::set_upper_clamps ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::angle_positive_when_retracted ... ok [INFO] [stdout] test _morph_part3::lip_purse_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::json_has_upper ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::corners_clamped_high ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::set_both_syncs ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::set_upper ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::missing_group_bulge_zero ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::set_and_get ... ok [INFO] [stdout] test _morph_part3::lip_retract_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::total_activation_sums ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::bulge_weight_product ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::empty_driver_has_zero_active ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::update_existing_entry ... ok [INFO] [stdout] test _morph_part3::muscle_group_driver::tests::clamps_level ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::average_mid ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::blend_half ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::set_both_applies ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::symmetry_abs_diff ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::to_weights_max ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::crease_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::set_clamps ... ok [INFO] [stdout] test _morph_part3::nasal_ala_crease::tests::to_json_has_right ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::depth_clamps ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::width_clamps ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::root_angle_zero_at_neutral ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::v_shift_clamps ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::weights_two_values ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::nasal_saddle_control::tests::root_angle_positive_at_max ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::set_angle_clamps ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::alar_flare_clamped_negative ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::set_projection_clamps ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::set_width ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::blend_at_one_is_b ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::effective_width_in_range ... ok [INFO] [stdout] test _morph_part3::nasal_spine_control::tests::set_projection_negative ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::json_has_width ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::asymmetry_nonzero_when_different ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::set_width_clamps ... ok [INFO] [stdout] test _morph_part3::nasal_width_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::depth_scaled_by_config ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::set_both_symmetric ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::angle_positive_when_forward ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::depth_clamps_high ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::json_has_forward ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::depth_clamps_low ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::nasolabial_fold_control::tests::weights_four_elements ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::lateral_clamped_positive ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::asymmetry_zero_when_equal ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::head_rotation_clamps ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::pull_angle_positive ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::neck_forward_control::tests::set_forward_clamps ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::set_clamps_high ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::set_clamps_low ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_set_length_clamps ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_to_json_has_keys ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::neck_sterno_control::tests::weights_correct ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_clamp_enforces_bounds ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_new_state_defaults ... ok [INFO] [stdout] test _morph_part3::neck_thickness_control::tests::test_compute_volume_positive ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::set_lateral_clamps ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::set_sagittal ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::total_angle_pythagoras ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::sag_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::set_sag_clamps ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::set_spread_clamps ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::to_json_has_sag ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::to_weights_max ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::volume_product ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::set_lateral_negative ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::neck_tilt_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::frontal_clamps_low ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::neck_wattle_control::tests::volume_zero_when_neutral ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::sagittal_anterior_angle_positive ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::sagittal_posterior_angle_negative ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_clamp_enforces_bounds ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_new_state_defaults ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_set_length_clamps ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::magnitude_diagonal ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::reset_works ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::weights_four_elements ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part3::pelvis_tilt_control::tests::sagittal_clamps_high ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::angle_nonneg ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::average_mid ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::blend_at_half ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::set_both_applies ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::to_json_has_left ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::asymmetry_abs_diff ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_to_json_contains_keys ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::default_config ... ok [INFO] [stdout] test _morph_part3::philtrum_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::to_weights_max ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part3::shoulder_acromion::tests::set_clamps ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::set_acromion ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::set_bulk_clamps ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::set_bulk_left ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::to_json_fields ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::set_both_symmetric ... ok [INFO] [stdout] test _morph_part3::shoulder_pad_control::tests::to_weights_count ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::angle_rad_sign ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::asymmetry_zero_equal ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::set_clamps_high ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::weights_correct ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::active_count ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::clamps_high ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::json_has_left_right ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::set_both_equal ... ok [INFO] [stdout] test _morph_part3::shoulder_roll_control::tests::set_clamps_low ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::clamps_low ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::depth_nonzero_when_active ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::update_existing_entry ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::kyphosis_clamps_negative ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::lordosis_angle_positive ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::scoliosis_clamps ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::total_curvature_sums ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::lordosis_clamps ... ok [INFO] [stdout] test _morph_part3::skin_fold_control::tests::set_and_get ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::json_has_length ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::neutral_on_creation ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::weights_in_range ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::xiphoid_angle_rad_computation ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_mirror_averages ... ok [INFO] [stdout] test _morph_part3::spine_curve_control::tests::weights_six_elements ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::xiphoid_clamped_negative ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::set_length_clamps ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_new_state_zeros ... ok [INFO] [stdout] test _morph_part3::sternum_control::tests::blend_at_zero_is_a ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_set_prominence_valid ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_to_json_contains_fields ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::circumference_at_neutral_positive ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::girth_clamps_high ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::json_has_keys ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_set_hollow_clamps ... ok [INFO] [stdout] test _morph_part3::temple_control::tests::test_set_prominence_clamps ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::symmetry_one_when_equal ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::weights_four_elements ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::circumference_grows_with_girth ... ok [INFO] [stdout] test _morph_part3::thigh_girth_control::tests::girth_clamps_low ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::default_neutral ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::to_json_has_splay ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::average_length_zero_by_default ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::set_length_clamps ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::to_weights_zero_by_default ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::reset_zeroes ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::splay_angle_nonneg ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::set_splay_clamps ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::out_of_range_ignored ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_blend_trap_midpoint ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_default_params ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_evaluate_empty ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_lower_trap_endpoints ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_neck_slope_at_neck ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_shrug_corrective_bounds ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_upper_trap_at_neck ... ok [INFO] [stdout] test _morph_part3::toe_control::tests::toe_count_is_five ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_upper_trap_tapers ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_evaluate_produces_output ... ok [INFO] [stdout] test _morph_part3::trapezius_control::tests::test_middle_trap_peak ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_circumference_positive ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_default_config ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_new_state ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_to_weights_count ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_default_params ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_blend_wrist_midpoint ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_deviation_weight_zero ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_evaluate_empty ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_clamp_enforces_bounds ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_set_width_clamps ... ok [INFO] [stdout] test _morph_part3::waist_control::tests::test_to_json_has_keys ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_add_lesion ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_evaluate_produces_output ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_flexion_weight_max ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_flexion_weight_zero ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_clear ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_styloid_bump_at_centre ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_styloid_bump_far_away ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_initial_empty ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_evaluate_matches_severity ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_lesion_type_variant ... ok [INFO] [stdout] test _morph_part3::wrist_control::tests::test_tendon_ridge_zero_vis ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_severity_clamp ... ok [INFO] [stdout] test _morph_part4::acne_morph::tests::test_to_json_has_lesion_count ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_add_stage ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_age_clamped_negative ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_default_age ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_new_morph_count ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::default_is_clean_shaven ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_no_stages_initially ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_set_age ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::age_progression_morph::tests::test_to_json_contains_current_age ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::average_density_after_global_set ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::average_density_zero_default ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::reset_clears_all ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::set_global_density ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::set_global_sets_all_zones ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::average_density_after_global ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::region_names_valid ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::set_zone_density_clamps ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::set_region_density_clamps ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::to_json_has_global_density ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::average_density_zero_by_default ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::set_global_changes_all ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::default_is_smooth ... ok [INFO] [stdout] test _morph_part4::beard_density_control::tests::zone_length_set ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::set_region_length ... ok [INFO] [stdout] test _morph_part4::body_hair_control::tests::to_json_has_global_density ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_coarseness_clamped ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_set_density_clamps ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_set_enabled_false ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_set_region_adds_entry ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_category_normal ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_default_density ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_to_json_has_density ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_set_region_updates_existing ... ok [INFO] [stdout] test _morph_part4::body_hair_density::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_new_default_bmi ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_influence_clamped ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_set_overweight ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_set_obese ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_apply_symmetry ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_default ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_mirror_y ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_evaluate_disabled_empty ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_mirror_x ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_are_mirror_pair_false ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_set_underweight ... ok [INFO] [stdout] test _morph_part4::body_mass_index_morph::tests::test_to_json_contains_bmi ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_are_mirror_pair_true ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_set_weight_clamp ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_symmetrize_full ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_clear ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_initial_empty ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_stage_variant ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_json_vertex_count ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_to_json_has_bruise_count ... ok [INFO] [stdout] test _morph_part4::body_symmetry_v2::tests::test_mirror_z ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_add_bruise ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_initial_weight_zero ... ok [INFO] [stdout] test _morph_part4::bruise_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_new_cage_vertex_count ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_set_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_set_vertex_updates ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_to_json_contains_weight ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_set_weight_clamps_to_one ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_set_weight_negative_clamps ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_total_delta_after_set ... ok [INFO] [stdout] test _morph_part4::cage_morph::tests::test_total_delta_zero_initially ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_default_grade ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_depth_clamp ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_to_json_has_grade ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_byte_size_16bit ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_coverage_clamp_low ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_coverage_clamp_high ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_data_length ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_set_grade ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_byte_size_8bit ... ok [INFO] [stdout] test _morph_part4::cellulite_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_new_vertex_count ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_set_quant_bits ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_evaluate_above_threshold_positive ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_evaluate_clamps_to_max_weight ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_evaluate_below_threshold_is_zero ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_set_scale ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_joint_name_stored ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_new_driver_zero_weight ... ok [INFO] [stdout] test _morph_part4::compressed_shape_key::tests::test_decode_zero_delta ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_shape_name_stored ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_threshold_clamps_to_pi ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_clear ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_reset_clears_weight ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_set_threshold ... ok [INFO] [stdout] test _morph_part4::corrective_pose_driver::tests::test_to_json_contains_joint_name ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_add_crease ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_evaluate_empty_creases ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_default_type ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_global_scale_clamped ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_initial_empty ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_evaluate_avg_depth ... ok [INFO] [stdout] test _morph_part4::crease_depth_morph::tests::test_to_json_has_crease_count ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_set_type ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_oxygen_saturation_clamp ... ok [INFO] [stdout] test _morph_part4::cyanosis_morph::tests::test_to_json_has_type ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_enabled_by_default ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_clear_samples ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_add_sample ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_many_samples ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_evaluate_zeroed ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_new_dims ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_default_iterations ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_delta_scale_default_one ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_reset_zeroes_positions ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_new_delta_mush_vertex_count ... ok [INFO] [stdout] test _morph_part4::data_driven_rig::tests::test_no_samples_initially ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_smoothed_initialized_zero ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_set_smoothing_clamps ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_smooth_ignores_extra_positions ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_set_smoothing_negative_clamps ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_to_json_contains_iterations ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_smooth_moves_toward_target ... ok [INFO] [stdout] test _morph_part4::delta_mush::tests::test_to_json_contains_vertices ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_default_alignment ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_to_json_has_alignment ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_tooth_size_clamped ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_gum_exposure_clamped ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_whitening_clamped ... ok [INFO] [stdout] test _morph_part4::dental_morph::tests::test_set_alignment ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_identity_dq_real_part ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_identity_dual_part_zero ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_normalize_identity_stays_identity ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_normalize_zero_length_returns_identity ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_set_bone_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_set_vertex_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_set_bone_updates ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_clear ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_to_json_contains_vertices ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_new_dqs_vertex_count ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_add_region ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_initial_empty ... ok [INFO] [stdout] test _morph_part4::dual_quaternion_skin::tests::test_new_dqs_bone_count ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_to_json_has_region_count ... ok [INFO] [stdout] test _morph_part4::edema_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_add_node_returns_index ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_evaluate_output_length ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_evaluate_zeroed ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_new_output_dim ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_no_nodes_initially ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_area_clamp ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_no_root_initially ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_set_root ... ok [INFO] [stdout] test _morph_part4::emotion_blend_tree::tests::test_to_json_contains_node_count ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_default_pattern ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_to_json_has_pattern ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_add_feature_set ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_blend_weight_init_zero ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_evaluate_output_length ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_new_morph_count ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_set_blend_weight ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_set_pattern ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_blend_weight_clamped ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_no_features_initially ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_out_of_bounds_set_ignored ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_to_json_contains_morph_count ... ok [INFO] [stdout] test _morph_part4::ethnic_blend_morph::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_add_example ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_json_contains_example_count ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_new_vertex_count ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_no_examples_initially ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_add_mapping ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_evaluate_returns_rest ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_new_dims ... ok [INFO] [stdout] test _morph_part4::example_based_morph::tests::test_multiple_examples ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_no_mappings_initially ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_retarget_with_gain ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_to_json_contains_dims ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_default_side ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_retarget_output_length ... ok [INFO] [stdout] test _morph_part4::erythema_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_aperture_clamped ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_retarget_with_offset ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_to_json_has_side ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_tilt_clamped ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_all_presets_count ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_height_clamped ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_set_side ... ok [INFO] [stdout] test _morph_part4::eye_size_morph::tests::test_width_clamped ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_brow_height_at_peak ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_brow_height_clamped_x ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_preset_flat_low_arch ... ok [INFO] [stdout] test _morph_part4::expression_retarget_ml::tests::test_retarget_zeroed_without_mappings ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_default ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_reset ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_preset_bushy_thick ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::asymmetry_zero_when_symmetric ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::set_both_sides ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::thickness_clamps ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::to_json_has_fullness ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::average_thickness_symmetric ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_curl_tip_straight ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::eyebrow_thickness_control::tests::set_left_only ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_curl_angle_uses_pi ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_set_curl_clamp ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_set_length_clamp ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_total_count ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_default ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_initial_records_zero_weights ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_reset ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_new_fast_lbs_vertex_count ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_set_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_initial_valid ... ok [INFO] [stdout] test _morph_part4::eyelash_density::tests::test_set_upper_count_clamp ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_set_record_updates ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_normalize_record ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_normalize_zero_weights_unchanged ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_bone_count_stored ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_default_cause ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_to_json_contains_vertices ... ok [INFO] [stdout] test _morph_part4::fast_lbs::tests::test_transform_returns_source ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_set_cause ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_to_json_has_cause ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::distribution_density_index ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::flush_morph::tests::test_spread_clamp ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::effective_density_boosted_by_sun ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::set_sun_exposure ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::to_json_has_distribution ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_default_pattern ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_density_clamp ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_evaluate_matches_density ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_set_pattern ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_size_clamp ... ok [INFO] [stdout] test _morph_part4::freckle_morph::tests::test_to_json_has_pattern ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::set_density_clamps ... ok [INFO] [stdout] test _morph_part4::freckle_map_control::tests::set_distribution ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_default_direction_zero ... ok [INFO] [stdout] test _morph_part4::eyebrow_shape_library::tests::test_preset_peaked_high_arch ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_evaluate_zeroed ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_default_gains ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_new_morph_count ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_set_gains ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_set_direction ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_initial_state_pending ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_mark_dirty ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_set_weight_clamped ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_set_weight_zero ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_to_json_contains_state ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_upload_sets_buffer_id ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_upload_changes_state ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::blend_strength_midpoint ... ok [INFO] [stdout] test _morph_part4::gaze_driven_shape::tests::test_to_json_contains_morph_count ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_vertex_count_stored ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::curl_index_range ... ok [INFO] [stdout] test _morph_part4::gpu_morph_target::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::default_is_straight ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::effective_curl_with_kinky_full ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::set_frequency_clamps_low ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::set_strength_clamps ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_default_density ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_evaluate_product ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_no_miniaturization_default ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_set_density_clamps ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_region_added ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_to_json_has_fields ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::blend_t_clamped ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::effective_diameter_increases ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::effective_curl_zero_when_straight ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::effective_diameter_base ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::reset_to_straight ... ok [INFO] [stdout] test _morph_part4::hair_follicle_density::tests::test_miniaturization_clamped ... ok [INFO] [stdout] test _morph_part4::hair_curl_control::tests::to_json_contains_pattern ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::set_shaft_clamps ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::to_json_has_shaft_thickness ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::set_dorsum_clamps ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::set_knuckle_clamps ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::set_vein_positive ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::surface_detail_zero_when_neutral ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::surface_detail_positive ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::to_json_has_fields ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_default_level ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_intensity_clamp_low ... ok [INFO] [stdout] test _morph_part4::hair_thickness_control::tests::set_root_taper_clamps_negative ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::hand_v2::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_intensity_clamp_high ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_evaluate_zero_count ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_set_level ... ok [INFO] [stdout] test _morph_part4::hydration_morph::tests::test_to_json_has_level ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_evaluate_partial_activation ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_initial_weight_zero ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_new_inbetween_vertex_count ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_reset_zeroes_weight ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_set_delta_updates ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_evaluate_at_trigger_is_one ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_to_json_contains_name ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_trigger_weight_clamped ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::belly_roundness_in_config ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::default_is_newborn ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::head_scale_decreases_with_age ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::set_age_clamps_upper ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::enabled_toggle ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::limb_scale_increases_with_age ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::to_json_has_age ... ok [INFO] [stdout] test _morph_part4::infant_morph::tests::weight_at_24_months_is_one ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_set_delta_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::inbetween_shape::tests::test_evaluate_far_from_trigger_is_zero ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_luminance_positive ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_preset_blue ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_default ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_preset_brown ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_apply_preset ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_reset ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_set_limbal_ring_clamped ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_set_heterochromia ... ok [INFO] [stdout] test _morph_part4::iris_color_blend::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_bilirubin_clamp ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_default_severity ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_set_severity ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_dims_total_points ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_to_json_has_severity ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_get_out_of_bounds_returns_zero ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_displacements_initialized_zero ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_initial_weight_zero ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_set_weight_clamps ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_set_point_updates_displacement ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_set_weight_negative_clamps ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_add_entry ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_to_json_contains_dims ... ok [INFO] [stdout] test _morph_part4::jaundice_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_new_vertex_count ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_default_no_entries ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_evaluate_zeroed ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_multiple_entries ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_enabled_by_default ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_set_multiple_points ... ok [INFO] [stdout] test _morph_part4::lattice_morph::tests::test_new_lattice_correct_point_count ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_to_json_contains_vertex_count ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_add_invalid_bone_ignored ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_add_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_bone_count_stored ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_new_lbs_vertex_count ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_empty_vertices_are_normalized ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_normalize_makes_sum_one ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_single_influence_is_normalized ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_set_enabled_false ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_to_json_contains_bones ... ok [INFO] [stdout] test _morph_part4::learned_corrective::tests::test_to_json_contains_entry_count ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_influence_count_out_of_bounds ... ok [INFO] [stdout] test _morph_part4::linear_blend_skin::tests::test_add_influence_increases_count ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_apply_neutral ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_commissure_zone ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_default ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_set_gloss ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_set_desaturation_clamp ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_set_zone_vermillion ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_default_area ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_definition_clamped ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_reset ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_set_zone_clamp ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_evaluate_avg ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::lip_color_zone::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_projection_clamped ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_set_area ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_bind_sets_bound ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_volume_clamped ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_initial_not_bound ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_initial_weights_valid ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_initial_weight_zero ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_new_mdm_vertex_count ... ok [INFO] [stdout] test _morph_part4::lip_volume_morph::tests::test_to_json_has_area ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_set_weight_clamps ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_set_weight_negative_clamps ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_clear ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_to_json_contains_bound ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_add_mole ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_to_json_contains_weight ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_initial_empty ... ok [INFO] [stdout] test _morph_part4::mesh_deform_morph::tests::test_unbind_clears_bound ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::current_level ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_evaluate_matches_opacity ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_opacity_clamp ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::morph_count_at ... ok [INFO] [stdout] test _morph_part4::mole_morph::tests::test_to_json_has_mole_count ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::set_threshold ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::single_level ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::threshold_accessor ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_default_tone ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::new_selector ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::select_close ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_evaluate_product ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::select_far ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::to_json ... ok [INFO] [stdout] test _morph_part4::morph_lod_selector::tests::zero_level_gets_one ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_set_definition ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_curvature_clamped ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_default_shape ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_group_override_added ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_group_override_updated ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_set_tone_clamps ... ok [INFO] [stdout] test _morph_part4::muscle_tone_morph::tests::test_to_json_has_fields ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_evaluate_in_range ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_length_clamped ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::blend_midpoint_length ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::default_shape_is_oval ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::set_length_clamps ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::sharpness_pointed_one ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::set_shape_square ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_forward_disabled_still_runs ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_set_shape ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_thickness_clamped ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::to_json_contains_shape ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_bias_count ... ok [INFO] [stdout] test _morph_part4::nail_morph::tests::test_to_json_has_shape ... ok [INFO] [stdout] test _morph_part4::nail_shape_control::tests::sharpness_square_zero ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_forward_output_length ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_load_weights ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_new_dims ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_set_activation ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_default_blend_factor_half ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_default_mode_blended ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_weight_count ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_effective_weight_dq_mode ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_load_weights_partial ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_effective_weight_linear_mode ... ok [INFO] [stdout] test _morph_part4::neural_blend_shape::tests::test_to_json_contains_dims ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_blended_mode_midpoint ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_effective_weight_out_of_bounds ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_new_omega_skin_vertex_count ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_set_blend_clamps ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_set_mode_linear ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_default_cause ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::omega_skin::tests::test_to_json_contains_mode ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_intensity_clamp_high ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_set_cause ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_to_json_has_cause ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::reset_clears_all ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::set_width_clamps ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::surface_area_increases_with_width ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::set_arch_negative ... ok [INFO] [stdout] test _morph_part4::pallor_morph::tests::test_intensity_clamp_low ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::to_json_has_arch ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_add_piercing ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::weights_narrow_only_when_negative ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_evaluate_capped ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_remove_nonexistent_is_noop ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_remove_piercing ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_initial_empty ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_default_size ... ok [INFO] [stdout] test _morph_part4::piercing_deform::tests::test_to_json_has_count ... ok [INFO] [stdout] test _morph_part4::palm_control::tests::weights_wide_only_when_positive ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_depth_clamped ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_to_json_has_size ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_zone_added ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_zone_update_not_duplicate ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_evaluate_product ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_add_example_increases_count ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_evaluate_exact_pose_sets_deltas ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_set_size_clamps ... ok [INFO] [stdout] test _morph_part4::pore_size_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_example_weights_initially_zero ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_initial_deltas_zero ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_multiple_examples ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_reset_zeroes_deltas ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_new_psd_vertex_count ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_to_json_contains_examples ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::belly_weight_increases_with_weeks ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::breast_delta_increases_with_weeks ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::enabled_flag ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_evaluate_no_examples_keeps_zero ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_to_json_contains_vertices ... ok [INFO] [stdout] test _morph_part4::pose_space_deform::tests::test_initial_no_examples ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::default_is_zero_weeks ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::set_weeks_clamps ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::trimester_second ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::trimester_third ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_evaluate_zeroed ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_new_vertex_count ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_no_regions_initially ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_set_global_scale ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::to_json_contains_weeks ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_add_region ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::pregnancy_morph::tests::trimester_first ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_global_scale_clamped_negative ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_add_pin_increases_count ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_enabled_count ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_new_pin_set_empty ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_remove_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_remove_pin_decreases_count ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_to_json_contains_pins ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_set_influence_clamps ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_vertex_index_stored ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_bake_weights_fills_correctly ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_falloff_default_is_two ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_average_weight_empty ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_influence_at_max_distance_is_zero ... ok [INFO] [stdout] test _morph_part4::procedural_wrinkle::tests::test_to_json_contains_vertex_count ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_new_wrap_correct_vertex_count ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_average_weight_all_zero ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_pin_enabled_by_default ... ok [INFO] [stdout] test _morph_part4::proximity_pin::tests::test_set_enabled_false ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_influence_at_zero_distance_is_one ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_influence_beyond_max_is_zero ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_weights_initialized_zero ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_area_fraction_positive ... ok [INFO] [stdout] test _morph_part4::proximity_wrap::tests::test_to_json_contains_max_distance ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_circumference_uses_pi ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_from_light_dark ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_radius_fraction_max ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_set_dilation_left_clamp ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_set_dilation_both ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_add_control_point_increases_count ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_evaluate_at_control_point ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_evaluate_empty_is_zero ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_gaussian_at_zero_distance_is_one ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_from_light_bright ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_gaussian_decays_with_distance ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_default_valid ... ok [INFO] [stdout] test _morph_part4::pupil_size_control::tests::test_radius_fraction_min ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_epsilon_default_one ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_inverse_quadratic_at_zero_distance_is_one ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_multiquadric_at_zero_distance_is_one ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_new_rbf_deformer_no_points ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_default_subtype ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_evaluate_matches_redness ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_redness_clamp ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_to_json_has_subtype ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_telangiectasia_clamp ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::rbf_deformer::tests::test_to_json_contains_kernel ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::reset_preserves_type ... ok [INFO] [stdout] test _morph_part4::rosacea_morph::tests::test_set_subtype ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::scar_type_names ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::set_prominence_clamps ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::to_json_contains_type ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_clear_scars ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_initial_scar_count ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::visibility_positive_with_prominence ... ok [INFO] [stdout] test _morph_part4::scar_morph::tests::visibility_zero_when_neutral ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_add_scar ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_set_intensity_clamps ... ok [INFO] [stdout] test _morph_part4::scar_tissue_morph::tests::test_to_json_has_scar_count ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_default_healthy ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_set_yellowing_clamp ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_apply_neutral ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_apply_yellowing ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_set_brightness_clamp ... ok [INFO] [stdout] test _morph_part4::sclera_tone_control::tests::test_set_redness ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_add_point_increases_count ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_driver_attr_stored ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_evaluate_midpoint_interpolates ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_new_sdk_shape_empty ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_to_json_contains_driver ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_weight_clamped_to_one ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_empty_evaluate_returns_zero ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_evaluate_above_max_returns_last ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_evaluate_below_min_returns_first ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_points_sorted_by_driver_value ... ok [INFO] [stdout] test _morph_part4::sdk_driven_shape::tests::test_reset_zeroes_weight ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::blend_clamp_t ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::pore_visibility_zero_when_neutral ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::set_density_clamps_negative ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::set_size_clamps ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::default_roughness_is_mid ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::effective_roughness_increases_with_micro ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::set_roughness_clamps ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::pore_visibility_increases ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::skin_pore_control::tests::to_json_has_density ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::reset_restores_default ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::set_anisotropy_negative ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::specular_dominant_low_roughness ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::specular_not_dominant_high_roughness ... ok [INFO] [stdout] test _morph_part4::skin_roughness::tests::to_json_contains_roughness ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_evaluate_value_matches_thickness ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_set_thickness_clamps ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_to_json_has_global_thickness ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_default_thickness ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_apply_with_weight ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_region_added ... ok [INFO] [stdout] test _morph_part4::skin_thickness_morph::tests::test_region_updated ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_add_delta ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_apply_out_of_bounds_ignored ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_total_vertex_count ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_weight_clamped ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_new_no_deltas ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_to_json_contains_name ... ok [INFO] [stdout] test _morph_part4::sparse_blend_shape::tests::test_weight_clamped_negative ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_priority_stored ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_to_json_contains_queue_len ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_enqueue ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_initial_state_idle ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_max_concurrent_stored ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_new_empty_queue ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_tick_respects_max ... ok [INFO] [stdout] test _morph_part4::streaming_morph::tests::test_tick_sets_loading ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_add_entry ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_clear ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_initial_empty ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_set_fat_clamps ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_region_variant ... ok [INFO] [stdout] test _morph_part4::stretch_mark_morph::tests::test_to_json_has_entry_count ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_android_scale ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_default_fat ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_set_pattern ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_to_json_has_pattern ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_evaluate_matches_intensity ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_evaluate_zero_count ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_default_severity ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::subcutaneous_fat_morph::tests::test_visceral_ratio_clamped ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_exposure_years_clamp ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_intensity_clamp ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_bind_sets_is_bound ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_default_strength_one ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_set_strength_clamps ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_set_severity ... ok [INFO] [stdout] test _morph_part4::sun_damage_morph::tests::test_to_json_has_severity ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_bary_sum_near_one ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_bary_sum_out_of_bounds ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_initial_not_bound ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_new_surface_deform_vertex_count ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_set_strength_negative_clamps ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_to_json_contains_bound ... ok [INFO] [stdout] test _morph_part4::surface_deform::tests::test_unbind_clears_is_bound ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::blend_midpoint_opacity ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::default_not_enabled ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::effective_opacity_when_enabled ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::effective_opacity_zero_when_disabled ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::reset_preserves_region ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::set_offset_clamps ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::set_opacity_clamps ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::set_scale_clamps_min ... ok [INFO] [stdout] test _morph_part4::tattoo_map_control::tests::to_json_contains_region ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_add_tattoo ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_evaluate_capped_at_one ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::average_girth_zero_when_neutral ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_initial_count ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_remove_tattoo ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_stretch_influence_clamped ... ok [INFO] [stdout] test _morph_part4::tattoo_morph::tests::test_to_json_has_tattoo_count ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::default_config_ranges ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::new_state_neutral ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::reset_restores_neutral ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::set_inner_clamps ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::set_outer_clamps ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::set_symmetry_clamps ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::to_json_contains_inner ... ok [INFO] [stdout] test _morph_part4::thigh_v2::tests::weights_symmetry_effect ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::blend_at_zero ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::set_curvature_negative ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::to_json_contains_girth ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::default_is_neutral ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::opposition_angle_full ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_default ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::set_opposition_clamps_above ... ok [INFO] [stdout] test _morph_part4::thumb_control::tests::set_opposition_clamps_below ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_height_profile_base ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_reset ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_set_protrusion ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_width_tip_narrower_than_base ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_default ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_pi_used_in_profile ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_set_tip_curl_clamp ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_set_rounding ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_set_tip_pointedness_clamp ... ok [INFO] [stdout] test _morph_part4::tongue_shape_v2::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_reset ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_set_height_clamp ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_to_json ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_tooth_color_bright ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_set_whiteness ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_set_width_clamp ... ok [INFO] [stdout] test _morph_part4::tooth_shape_control::tests::test_tooth_color_range ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_default_visibility ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_evaluate_product ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_set_dilation ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_to_json_has_visibility ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_add_patch ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_evaluate_disabled ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_evaluate_length ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_set_region ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_set_pattern ... ok [INFO] [stdout] test _morph_part4::vascular_visibility::tests::test_set_visibility_clamps ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_clear ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_default_pattern ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_evaluate_matches_extent ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_extent_clamp ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_default_smoothing ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_enabled_default ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_sample_rate_stored ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_set_enabled ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_smoothing_clamped ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_to_json_contains_morph_count ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::new_is_neutral ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::set_density_clamps_negative ... ok [INFO] [stdout] test _morph_part4::vitiligo_morph::tests::test_to_json_has_pattern ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_add_mapping ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_new_morph_count ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_process_output_length ... ok [INFO] [stdout] test _morph_part4::voice_driven_morph::tests::test_smoothing_clamped_low ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::blend_midpoint ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::reset_clears ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::to_json_contains_depth ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::visibility_increases ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_expansion ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::set_depth_clamps ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::visibility_zero_when_neutral ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_lower ... ok [INFO] [stdout] test _morph_part4::wrinkle_depth_control::tests::zone_preserved_after_reset ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_lateral_bulge_clamp ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_upper_clamp ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::clamp_upper ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::hip_delta_zero_at_start ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::json_contains_age ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_mean_expansion_value ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::progress_at_18 ... ok [INFO] [stdout] test _morph_part5::abdomen_expand_morph::tests::test_mean_expansion_zero ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::default_age_is_twelve ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::enabled_default_true ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::female_hip_delta_larger_than_male ... ok [INFO] [stdout] test _morph_part5::adolescent_morph::tests::male_shoulder_delta_larger ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::hip_narrow_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::belly_increases_with_intensity ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::clamp_intensity ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::config_upper_body_mass_positive ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::default_zero_intensity ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::json_has_belly ... ok [INFO] [stdout] test _morph_part5::android_proportion::tests::upper_mass_proportional ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::abdomen_at_max ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::limb_slim_positive_at_half ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::waist_scale_increases ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::chest_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::clamp ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::apple_shape_morph::tests::json_has_abdomen ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_darkness_clamp_low ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_json_contains_forearm ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_length_set ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_darkness_set ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_adduction_clamp ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_density_clamp_high ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_visibility_range ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_asymmetry ... ok [INFO] [stdout] test _morph_part5::arm_hair_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_phonating ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_rotation ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::clamp_intensity ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::config_values_valid ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_not_phonating_at_threshold ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_tilt_clamp ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::json_contains_intensity ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::muscle_weight_scales_with_intensity ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::waist_taper_zero_at_zero_intensity ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_coverage ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_coverage_clamp_low ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::default_intensity_zero ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::shoulder_delta_nonzero_at_full ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_coarseness ... ok [INFO] [stdout] test _morph_part5::athletic_build_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_density_clamp ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::beard_density_morph::tests::test_visual_thickness_range ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_bow_out_nonzero ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_inversion ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_varus_clamp_high ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_torsion ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_varus_clamp_low ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_bow_out_zero ... ok [INFO] [stdout] test _morph_part5::arytenoid_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::bow_leg_morph::tests::test_default_symmetric ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_height_set ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_tunnel_area_zero ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_tunnel_depth_clamp ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_width_clamp ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::enabled_flag_works ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_spacing_set ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::json_contains_age ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::default_age_is_two ... ok [INFO] [stdout] test _morph_part5::carpals_morph::tests::test_tunnel_area_positive ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::height_increases_with_age ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::limb_scale_increases ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::progress_at_age_12_is_one ... ok [INFO] [stdout] test _morph_part5::clavicle_morph::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part5::clavicle_morph::tests::test_is_prominent_false ... ok [INFO] [stdout] test _morph_part5::clavicle_morph::tests::test_set_prominence_clamps ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_deviation_clamp ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::set_age_clamps_bounds ... ok [INFO] [stdout] test _morph_part5::clavicle_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::child_morph::tests::torso_narrowness_positive ... ok [INFO] [stdout] test _morph_part5::clavicle_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_flexion_clamp ... ok [INFO] [stdout] test _morph_part5::clavicle_morph::tests::test_is_prominent_true ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_length_set ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_is_hanging_true ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_set_inclination ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_arch_height_clamp ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_arch_width ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_circumference_positive ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_prominence_clamp ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_tip_displacement_max ... ok [INFO] [stdout] test _morph_part5::coccyx_morph::tests::test_tip_displacement_positive ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_is_hanging_false ... ok [INFO] [stdout] test _morph_part5::columella_morph::tests::test_set_inclination_clamp ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_posterior_plate ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_ring_radius ... ok [INFO] [stdout] test _morph_part5::cricoid_cartilage_morph::tests::test_ring_radius_clamp ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_contraction_clamp ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_dome_height_clamp ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_effective_dome_neutral ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_excursion_range ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::clamp_works ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::config_slenderness_positive ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::default_zero_intensity ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::enabled_flag ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::hip_weight_zero_at_zero_intensity ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::json_has_intensity ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::limb_weight_proportional ... ok [INFO] [stdout] test _morph_part5::ectomorph_morph::tests::shoulder_narrower_than_hip_at_max ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::clamp_to_range ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::default_age_is_60 ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::height_loss_at_100 ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::json_contains_age ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::kyphosis_increases_with_age ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::kyphosis_zero_at_60 ... ok [INFO] [stdout] test _morph_part5::elderly_morph::tests::skin_sag_in_range ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::belly_weight_at_full ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::clamp_to_one ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::config_limb_girth_positive ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::face_roundness_increasing ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::json_has_belly ... ok [INFO] [stdout] test _morph_part5::endomorph_morph::tests::limb_girth_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_descent ... ok [INFO] [stdout] test _morph_part5::diaphragm_morph::tests::test_effective_dome_lowered ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_gap_fill ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_fullness ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_json_gap_fill ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_density_clamp_high ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_density_clamp_low ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::eyebrow_density_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_json_output ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_set_density ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_json_contains_density ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_set_density_clamp ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_set_curl_clamp ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_set_length_clamp ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_horizontal_shift ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_left_scale_clamp ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_right_scale ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::eyelash_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_score_symmetric ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_score_asymmetric ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_neck_angle_clamp ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_condyle_set ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_anteversion_set ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_q_angle_increases ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_length_clamp ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::facial_asymmetry_morph::tests::test_vertical_offset ... ok [INFO] [stdout] test _morph_part5::femur_morph::tests::test_q_angle_range ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_arch_height_normal ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_arch_collapse_clamp ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_toe_splay ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_default_both_feet ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_arch_height_flat ... ok [INFO] [stdout] test _morph_part5::flat_foot_morph::tests::test_pronation ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_close_glottis ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_mucosal_wave ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_not_closed_near_threshold ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_posterior_gap ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_opening_clamp ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::clamp_intensity ... ok [INFO] [stdout] test _morph_part5::glottis_morph::tests::test_tension_clamp ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::hip_fullness_at_max ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::json_has_intensity ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::thigh_girth_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::upper_slim_increases ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_depth_set ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_infer_style_left ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_json_contains_style ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_offset_clamp_negative ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_crown_clamp_low ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_crown_lift ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_offset_clamp_positive ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_fullness_range ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_side_puff ... ok [INFO] [stdout] test _morph_part5::hair_part_morph::tests::test_style_set ... ok [INFO] [stdout] test _morph_part5::hair_volume_morph::tests::test_volume_clamp ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_displacement_nonzero ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_amplitude_clamp ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_displacement_zero_amplitude ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_frequency_clamp_low ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::thigh_girth_config_positive ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_tightness ... ok [INFO] [stdout] test _morph_part5::gynoid_proportion::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_axial ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_default ... ok [INFO] [stdout] test _morph_part5::hair_wave_morph::tests::test_json_contains_pattern ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_forward ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_lateral_clamp_high ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_lateral_clamp_low ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_magnitude_nonzero ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_magnitude_zero ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_claw_toe ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_height_raised ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_height_normal ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_anterior_negative ... ok [INFO] [stdout] test _morph_part5::head_tilt_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_rise_clamp ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_supination ... ok [INFO] [stdout] test _morph_part5::high_arch_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_magnitude_zero ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_rotation ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::bust_at_max ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::hips_at_half_intensity ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_lateral_clamp ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_magnitude_nonzero ... ok [INFO] [stdout] test _morph_part5::hip_tilt_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::clamp_intensity ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::waist_cinch_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::whr_decreases_with_intensity ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_elbow_breadth_positive ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_elbow_breadth_scales_with_epicondyle ... ok [INFO] [stdout] test _morph_part5::hourglass_proportion::tests::json_contains_whr ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_length_clamp ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_head_size_set ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_curvature_clamp ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_epicondyle_set ... ok [INFO] [stdout] test _morph_part5::humerus_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_degeneration_reduces_height ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_effective_height_range ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_lumbar_set ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_thoracic_clamp_low ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_degeneration_clamp ... ok [INFO] [stdout] test _morph_part5::intervertebral_morph::tests::test_cervical_clamp_high ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::hip_narrow_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::clamp ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::config_positive ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::shoulder_hip_ratio_increases ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_set_diameter_symmetric ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_set_left ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_diameter_clamp ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_mean_diameter ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_chin_shift ... ok [INFO] [stdout] test _morph_part5::iris_size_morph::tests::test_set_right ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::json_has_shoulder ... ok [INFO] [stdout] test _morph_part5::inverted_triangle_morph::tests::shoulder_broad_at_full ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_lateral_clamp_high ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_deviation_nonzero ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_deviation_zero ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_lateral_clamp_low ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::jaw_asymmetry_morph::tests::test_ramus ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_eversion ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_separation_nonzero ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_separation_zero ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_torsion ... ok [INFO] [stdout] test _morph_part5::knock_knee_morph::tests::test_valgus_clamp ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_clone_integrity ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_set_apex ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_evaluate_range ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_evaluate_zero_intensity ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_evaluate_peak_at_apex ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_set_curve_clamp_high ... ok [INFO] [stdout] test _morph_part5::kyphosis_morph::tests::test_set_spread ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_anterior_posterior ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_height_clamp ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_set_height ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_tilt_negative ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_tract_lengthening_default ... ok [INFO] [stdout] test _morph_part5::larynx_position_morph::tests::test_tract_lengthening_lowered ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_default ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_discrepancy_nonzero ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_discrepancy_zero ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_left_arm ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_left_leg_clamp_high ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_left_leg_clamp_low ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::limb_length_morph::tests::test_right_leg ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_angle_clamp_negative ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_angle_clamp_positive ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_depth_set ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_downturn_clamp ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_effective_angle_clamped ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_effective_angle_neutral ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::lip_commissure_morph::tests::test_width_set ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_anterior_tilt_negative ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_clamp_high ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_default ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_evaluate_peak ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_evaluate_zero ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_json_contains ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_lumbar_apex ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::lordosis_morph::tests::test_set_curve ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_fullness_clamp ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_labiomental_groove_clamp ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_labiomental_groove_set ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_projection_set ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_vermilion_height_set ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_volume_estimate_positive ... ok [INFO] [stdout] test _morph_part5::lower_lip_body_morph::tests::test_volume_estimate_zero_fullness ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_is_prominent_false ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_is_prominent_true ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_set_left_clamp ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_set_projection ... ok [INFO] [stdout] test _morph_part5::malar_eminence_morph::tests::test_set_right_clamp ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_body_width_clamp ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_gonial_angle_clamp ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_ramus_height_set ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_squareness_decreases_with_angle ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_squareness_range ... ok [INFO] [stdout] test _morph_part5::mandible_morph::tests::test_symphysis_set ... ok [INFO] [stdout] test _morph_part5::mentolabial_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part5::mentolabial_morph::tests::test_is_deep_false ... ok [INFO] [stdout] test _morph_part5::mentolabial_morph::tests::test_is_deep_true ... ok [INFO] [stdout] test _morph_part5::mentolabial_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::mentolabial_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part5::mentolabial_morph::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::chest_delta_increases ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::clamp_upper ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::waist_ratio_at_zero_is_one ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::config_chest_positive ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::json_contains_field ... ok [INFO] [stdout] test _morph_part5::mesomorph_morph::tests::muscle_tone_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_density_clamp ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_droop_clamp ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_droop_set ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_style_score_range ... ok [INFO] [stdout] test _morph_part5::mustache_morph::tests::test_width_set ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_caudal_angle_set ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_deviation_clamp_negative ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_deviation_clamp_positive ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_deviation_magnitude_negative ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_deviation_magnitude_zero ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_dorsal_height_clamp ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::nasal_septum_morph::tests::test_thickness_set ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_set_angulation ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_set_base_width ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_set_projection ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_set_projection_clamp_high ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_set_prominence_clamp_low ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_volume_estimate ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_volume_estimate_zero ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_curvature_set ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_flare_clamp ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_flare_negative_clamp ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_surface_area_positive ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_thickness_set ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_width_clamp_high ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_width_clamp_low ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_aspect_ratio_positive ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_aspect_ratio_zero_depth ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_bridge_continuity_clamp ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_depth_set ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_height_set ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_width_clamp_high ... ok [INFO] [stdout] test _morph_part5::nose_root_morph::tests::test_width_clamp_low ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_aperture_area_positive ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_depth_set ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_height_set ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_rim_prominence_set ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_tilt_clamp ... ok [INFO] [stdout] test _morph_part5::orbital_morph::tests::test_width_clamp ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::nasal_spine_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::nose_ala_morph::tests::test_json_contains_keys ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::clamp ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::config_thigh_positive ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::hip_shoulder_ratio_increases ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::hip_width_at_max ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_descent_clamp ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::json_has_hip_width ... ok [INFO] [stdout] test _morph_part5::pear_shape_morph::tests::thigh_fullness_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_contraction_clamp ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_elevation_contracted ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_levator_tension ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_perineal_body ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_cross_section_closed ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_elevation_neutral ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_epiglottis_tilt ... ok [INFO] [stdout] test _morph_part5::pelvic_floor_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_cross_section_open ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_constriction_clamp ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_is_deep_false ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_is_deep_true ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_wall_tension ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_set_depth_clamp ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::pharynx_morph::tests::test_length ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_intoeing_clamp ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_metatarsus ... ok [INFO] [stdout] test _morph_part5::philtrum_morph::tests::test_set_width_clamp ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_total_rotation_nonzero ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_total_rotation_zero ... ok [INFO] [stdout] test _morph_part5::pigeon_toe_morph::tests::test_femoral ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_apply_weights_empty ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_forward_lean ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_lateral_lean_clamp ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_set_sway_clamp ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_set_sway_negative ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_apply_weights_zero_intensity ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_json_output ... ok [INFO] [stdout] test _morph_part5::posture_morph::tests::test_new_posture_morph ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_light_response_dark ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_set_dilation_symmetric ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_set_right_independent ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_bowing_clamp ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_dilation_clamp ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_length_clamp ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_light_response_bright ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::pupil_dilation_morph::tests::test_set_left_independent ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_ratio_set ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_styloid_set ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::balance_increases ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::clamp ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::json_has_waist ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_wrist_width_increases ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::default_zero ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::waist_fullness_zero_at_zero ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::config_shoulder_hip_balance_positive ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::straightness_equals_intensity ... ok [INFO] [stdout] test _morph_part5::rectangle_body_morph::tests::enabled_default ... ok [INFO] [stdout] test _morph_part5::radius_ulna_morph::tests::test_wrist_width_range ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_lower_chest_clamp ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_lateral_flare ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_upper_chest ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_expansion ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_mean_expansion_value ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_curvature_clamp ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::rib_cage_morph::tests::test_mean_expansion_zero ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_width_set ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::scalp_hairline_morph::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_pelvic_inlet_range ... ok [INFO] [stdout] test _morph_part5::scalp_hairline_morph::tests::test_is_receded_by_position ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_pelvic_inlet_wide ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_promontory_depth ... ok [INFO] [stdout] test _morph_part5::scalp_hairline_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::sacrum_morph::tests::test_tilt_clamp ... ok [INFO] [stdout] test _morph_part5::scalp_hairline_morph::tests::test_not_receded_default ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_size_clamp ... ok [INFO] [stdout] test _morph_part5::scalp_hairline_morph::tests::test_recession_symmetric_sets_both ... ok [INFO] [stdout] test _morph_part5::scalp_hairline_morph::tests::test_set_position_clamps_max ... ok [INFO] [stdout] test _morph_part5::scalp_hairline_morph::tests::test_set_position_clamps_min ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_rotation_clamp ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_displacement_peak ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_visibility_increases_with_winging ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_visibility_range ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_winging_set ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_direction_clamp ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_direction_left ... ok [INFO] [stdout] test _morph_part5::scapula_morph::tests::test_spine_prominence_set ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_displacement_zero_intensity ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_lateral_clamp ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::scoliosis_morph::tests::test_rotation ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_asymmetry_nonzero ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_asymmetry_zero ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_default_enabled ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_json_key ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_left_clamp ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_right_negative ... ok [INFO] [stdout] test _morph_part5::shoulder_height_morph::tests::test_tilt ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_area_estimate_positive ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_area_zero_length ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_length_clamp ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_taper_set ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_width_set ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_effective_gloss_range ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_effective_zero_roughness ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_oiliness_set ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_roughness_set ... ok [INFO] [stdout] test _morph_part5::skin_gloss_morph::tests::test_specularity_clamp ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_depth_clamp ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_json_blue ... ok [INFO] [stdout] test _morph_part5::sideburn_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_aspect_ratio_nonuniform ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_red_depth_clamp ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_rgb_depths_set ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_aspect_ratio_default ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::skin_subsurface_morph::tests::test_mean_depth ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_u_scale_clamp ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_uniform_scale ... ok [INFO] [stdout] test _morph_part5::skin_texture_scale_morph::tests::test_v_scale_set ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_default_trait ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_json ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_light_bleed_range ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_thin_skin_set ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_translucency_clamp ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_vein_clamp_low ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_cranial_index_neutral ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_frontal_slope_clamp ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_height_set ... ok [INFO] [stdout] test _morph_part5::skin_translucency_morph::tests::test_vein_visibility ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_default ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_degree_clamp_high ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_apply_clamps_to_one ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_degree_clamp_low ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_occipital_projection_set ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_width_set ... ok [INFO] [stdout] test _morph_part5::skull_morph::tests::test_length_clamp ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_head_forward ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_json_contains_key ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_shoulder_round ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_curvature_clamp ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_not_sealed_midway ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_tension ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_set_raise ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_raise_clamp ... ok [INFO] [stdout] test _morph_part5::soft_palate_morph::tests::test_width ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_cervical_clamp ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_apply_increases_weights ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_lumbar_set ... ok [INFO] [stdout] test _morph_part5::slouch_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_overall_flex_clamp ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_thoracic_clamp ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_total_angle_max ... ok [INFO] [stdout] test _morph_part5::spine_curve_morph::tests::test_total_angle_positive ... ok [INFO] [stdout] test _morph_part5::sternum_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part5::sternum_morph::tests::test_is_protruding_false ... ok [INFO] [stdout] test _morph_part5::sternum_morph::tests::test_is_protruding_true ... ok [INFO] [stdout] test _morph_part5::sternum_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::sternum_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part5::sternum_morph::tests::test_set_protrusion_clamps ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_arch_height_clamp ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_calcaneus_set ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_contact_area_flat_foot ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_contact_area_positive ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_hollowing_set ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_effective_volume_reduces_with_hollowing ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_midfoot_width_set ... ok [INFO] [stdout] test _morph_part5::tarsals_morph::tests::test_tilt_clamp ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_effective_volume_positive ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_hollowing_clamp ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_angle_clamp_low ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_muscle_fullness_set ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_superior_extent_set ... ok [INFO] [stdout] test _morph_part5::temporal_region_morph::tests::test_width_clamp_low ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_prominence_clamp ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_set_angle ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_fibula_offset_set ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_set_height ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part5::thyroid_cartilage_morph::tests::test_width_zero ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_foot_progression_neutral ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_foot_progression_toe_out ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_length_clamp ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_malleolus_clamp ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_set_arch ... ok [INFO] [stdout] test _morph_part5::tibia_fibula_morph::tests::test_torsion_set ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_arch_clamp ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_posterior_raise ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_width_set ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_set_groove ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_set_curl_negative ... ok [INFO] [stdout] test _morph_part5::tongue_dorsum_morph::tests::test_width_clamp ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_set_protrusion ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_calibre_clamp ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_set_sharpness ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_curvature_negative ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_volume_positive ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_set_length ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_volume_zero_length ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::trachea_morph::tests::test_wall_thickness ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_fullness_clamp_low ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_fullness_clamp_high ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_roll_clamp ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_projection_set ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_roll_negative ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_volume_estimate_positive ... ok [INFO] [stdout] test _morph_part5::upper_lip_body_morph::tests::test_vermilion_height_set ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_length_clamp ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_set_length ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_set_elevation ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_tip_bulge_clamp ... ok [INFO] [stdout] test _morph_part5::uvula_morph::tests::test_surface_area_positive ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_back_constriction ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_lip_rounding ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_length ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_mean_constriction_value ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_mean_constriction_zero ... ok [INFO] [stdout] test _morph_part5::vocal_tract_morph::tests::test_mid_constriction_clamp ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_is_prominent_false ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_is_prominent_true ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_curl_clamp ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_json_contains_keys ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_lateral_spread ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part5::tongue_tip_morph::tests::test_protrusion_clamp_high ... ok [INFO] [stdout] test _morph_part6::abdomen_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part6::abdomen_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part6::abdomen_morph::tests::test_shows_abs_false_by_default ... ok [INFO] [stdout] test _morph_part6::abdomen_morph::tests::test_set_protrusion_clamp ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_set_prominence_clamp_low ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_set_width_clamp_high ... ok [INFO] [stdout] test _morph_part6::abdomen_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part5::zygomatic_arch_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_is_wide_true ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_set_flare ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_blend_clamp_t ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_set_width_clamp_high ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_is_wide_false ... ok [INFO] [stdout] test _morph_part6::ankle_shape_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::ankle_shape_morph::tests::test_is_slender_when_narrow ... ok [INFO] [stdout] test _morph_part6::ankle_shape_morph::tests::test_not_slender_by_default ... ok [INFO] [stdout] test _morph_part6::arm_muscle_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::ankle_shape_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::arm_muscle_morph::tests::test_new_zero ... ok [INFO] [stdout] test _morph_part6::arm_muscle_morph::tests::test_not_muscular_by_default ... ok [INFO] [stdout] test _morph_part6::arm_muscle_morph::tests::test_overall_weight_zero ... ok [INFO] [stdout] test _morph_part6::back_muscle_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::back_muscle_morph::tests::test_not_muscular_by_default ... ok [INFO] [stdout] test _morph_part6::back_muscle_morph::tests::test_overall_weight_zero ... ok [INFO] [stdout] test _morph_part6::alar_base_morph::tests::test_set_width_clamp_low ... ok [INFO] [stdout] test _morph_part6::back_muscle_morph::tests::test_set_latissimus ... ok [INFO] [stdout] test _morph_part6::ankle_shape_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part6::back_muscle_morph::tests::test_new_zero ... ok [INFO] [stdout] test _morph_part6::bmi_body_shape_morph::tests::test_bmi_blend_weight_normal ... ok [INFO] [stdout] test _morph_part6::bmi_body_shape_morph::tests::test_bmi_category ... ok [INFO] [stdout] test _morph_part6::arm_muscle_morph::tests::test_set_bicep_clamped ... ok [INFO] [stdout] test _morph_part6::bmi_body_shape_morph::tests::test_new_bmi_morph_normal ... ok [INFO] [stdout] test _morph_part6::body_water_morph::tests::test_is_dehydrated ... ok [INFO] [stdout] test _morph_part6::body_water_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part6::bmi_body_shape_morph::tests::test_bmi_blend ... ok [INFO] [stdout] test _morph_part6::body_water_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::bmi_body_shape_morph::tests::test_bmi_is_healthy ... ok [INFO] [stdout] test _morph_part6::bmi_body_shape_morph::tests::test_bmi_category_obese ... ok [INFO] [stdout] test _morph_part6::body_water_morph::tests::test_set_hydration ... ok [INFO] [stdout] test _morph_part6::breast_shape_morph_new::tests::test_bra_category ... ok [INFO] [stdout] test _morph_part6::breast_shape_morph_new::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_is_prominent_false ... ok [INFO] [stdout] test _morph_part6::body_water_morph::tests::test_not_dehydrated_by_default ... ok [INFO] [stdout] test _morph_part6::breast_shape_morph_new::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_is_prominent_true ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::breast_shape_morph_new::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_set_central_clamp ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_set_central ... ok [INFO] [stdout] test _morph_part6::breast_shape_morph_new::tests::test_set_volume ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::buccal_fat_morph::tests::test_buccal_blend ... ok [INFO] [stdout] test _morph_part6::buccal_fat_morph::tests::test_buccal_is_prominent_false ... ok [INFO] [stdout] test _morph_part6::buccal_fat_morph::tests::test_buccal_is_prominent_true ... ok [INFO] [stdout] test _morph_part6::canthal_tilt_morph::tests::test_canthal_blend ... ok [INFO] [stdout] test _morph_part6::canthal_tilt_morph::tests::test_canthal_is_upswept_false ... ok [INFO] [stdout] test _morph_part6::canthal_tilt_morph::tests::test_canthal_set_outer_tilt ... ok [INFO] [stdout] test _morph_part6::canthal_tilt_morph::tests::test_canthal_is_upswept_true ... ok [INFO] [stdout] test _morph_part6::brow_bone_bossing_morph::tests::test_set_lateral ... ok [INFO] [stdout] test _morph_part6::buccal_fat_morph::tests::test_buccal_set_volume ... ok [INFO] [stdout] test _morph_part6::canthal_tilt_morph::tests::test_new_canthal_tilt_morph ... ok [INFO] [stdout] test _morph_part6::buccal_fat_morph::tests::test_new_buccal_fat_morph ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_lateral_clamp ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_neutral_false ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_set_lordosis ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::chest_muscle_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::chest_muscle_morph::tests::test_new_zero ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_neutral_true ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_weight_formula ... ok [INFO] [stdout] test _morph_part6::cervical_morph::tests::test_clamp_high ... ok [INFO] [stdout] test _morph_part6::chest_muscle_morph::tests::test_overall_weight_zero ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::chest_muscle_morph::tests::test_set_pec_clamped ... ok [INFO] [stdout] test _morph_part6::chest_muscle_morph::tests::test_not_muscular_by_default ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_is_displaced_false ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_set_offset_x ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_set_offset_x_clamp_high ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_set_size ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_set_offset_y_clamp_low ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_is_neutral_false ... ok [INFO] [stdout] test _morph_part6::condyle_morph::tests::test_is_displaced_true ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_clone_independent ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_set_height ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_set_height_clamp_high ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_set_breadth_clamp_low ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_to_json_contains_height ... ok [INFO] [stdout] test _morph_part6::coronoid_morph::tests::test_is_neutral_true ... ok [INFO] [stdout] test _morph_part6::corrugator_morph::tests::test_corrugator_is_contracted_true ... ok [INFO] [stdout] test _morph_part6::corrugator_morph::tests::test_corrugator_set_contraction ... ok [INFO] [stdout] test _morph_part6::cranium_height_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::cranium_height_morph::tests::test_cephalic_index_default ... ok [INFO] [stdout] test _morph_part6::corrugator_morph::tests::test_corrugator_is_contracted_false ... ok [INFO] [stdout] test _morph_part6::cranium_height_morph::tests::test_is_dolichocephalic ... ok [INFO] [stdout] test _morph_part6::corrugator_morph::tests::test_new_corrugator_morph ... ok [INFO] [stdout] test _morph_part6::corrugator_morph::tests::test_corrugator_blend ... ok [INFO] [stdout] test _morph_part6::cranium_height_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::cranium_height_morph::tests::test_set_brachycephaly ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_is_pronounced_false ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_is_pronounced_true ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_set_peak_height ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_set_peak_height_clamp_high ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_set_valley_depth_clamp_low ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_brush_falloff_flat ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_blend_from ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_brush_falloff_sharp ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_clear ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_brush_falloff_linear ... ok [INFO] [stdout] test _morph_part6::cranium_height_morph::tests::test_set_vault_height ... ok [INFO] [stdout] test _morph_part6::cupid_bow_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_clear_mask ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_add_delta ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_brush_falloff_smooth ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_mask_blocks_output ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_mask_vertex_group ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_new_painter ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_paint_at_center ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_paint_at_out_of_range ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_paint_stroke ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_smooth_adjacency_too_short ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_mirror_x ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_to_morph_target_sparse ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_scale_all ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_smooth_reduces_peak ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_invert_mask ... ok [INFO] [stdout] test _morph_part6::depressor_anguli_morph::tests::test_depressor_is_active_false ... ok [INFO] [stdout] test _morph_part6::depressor_anguli_morph::tests::test_depressor_is_active_true ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_mirror_tolerance_too_small ... ok [INFO] [stdout] test _morph_part6::epicanthal_fold_morph::tests::test_epicanthal_is_present_false ... ok [INFO] [stdout] test _morph_part6::epicanthal_fold_morph::tests::test_epicanthal_is_present_true ... ok [INFO] [stdout] test _morph_part6::depressor_anguli_morph::tests::test_depressor_set_contraction ... ok [INFO] [stdout] test _morph_part6::epicanthal_fold_morph::tests::test_epicanthal_set_coverage ... ok [INFO] [stdout] test _morph_part6::depressor_anguli_morph::tests::test_new_depressor_anguli_morph ... ok [INFO] [stdout] test _morph_part6::delta_painter::tests::test_set_mask_out_of_range ... ok [INFO] [stdout] test _morph_part6::epicanthal_fold_morph::tests::test_new_epicanthal_fold_morph ... ok [INFO] [stdout] test _morph_part6::depressor_anguli_morph::tests::test_depressor_blend ... ok [INFO] [stdout] test _morph_part6::epicanthal_fold_morph::tests::test_epicanthal_blend ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_46_wink_right_eye_only ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_intensity_scales_correctly ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_4_produces_brow_lowerer ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_zero_intensity_returns_all_zeros ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_multi_empty_input ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_12_produces_lip_corner_puller ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_multi_clamped_at_one ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_multi_two_expressions ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_multi_skips_unknown_names ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_45_blink_both_eyes ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_values_always_clamped ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::au_unknown_code_returns_empty ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_to_weights_happy_full ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_to_weights_scales_with_intensity ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_to_weights_neutral_returns_empty_map ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::contempt_has_symmetry_pair ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_to_weights_clamps_intensity_over_one ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::default_library_has_eight_basic_expressions ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_to_weights_clamps_intensity_negative ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_to_weights_unknown_expression_returns_none ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::blend_to_weights_zero_intensity_returns_all_zeros ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::expression_def_basic_fields ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::expression_def_with_tags_and_pair ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::get_is_case_insensitive ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::happy_has_basic_tag ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::lerp_unknown_from_returns_to_at_t1 ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::lerp_at_t1_equals_to ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::default_library_len_at_least_eight ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::lerp_at_t0_equals_from ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::lerp_at_t_half_midpoint ... ok [INFO] [stdout] test _morph_part6::eye_spacing_morph::tests::test_eye_spacing_is_wide_true ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::list_names_is_sorted ... ok [INFO] [stdout] test _morph_part6::expression_blend::tests::lerp_values_always_in_unit_interval ... ok [INFO] [stdout] test _morph_part6::eye_spacing_morph::tests::test_eye_spacing_is_wide_false ... ok [INFO] [stdout] test _morph_part6::eye_spacing_morph::tests::test_eye_spacing_blend ... ok [INFO] [stdout] test _morph_part6::eye_spacing_morph::tests::test_eye_spacing_set_distance ... ok [INFO] [stdout] test _morph_part6::eyelid_crease_morph::tests::test_eyelid_blend ... ok [INFO] [stdout] test _morph_part6::eye_spacing_morph::tests::test_new_eye_spacing_morph ... ok [INFO] [stdout] test _morph_part6::eyelid_crease_morph::tests::test_eyelid_has_crease_false ... ok [INFO] [stdout] test _morph_part6::eyelid_crease_morph::tests::test_eyelid_has_crease_true ... ok [INFO] [stdout] test _morph_part6::eyelid_crease_morph::tests::test_eyelid_set_crease ... ok [INFO] [stdout] test _morph_part6::eyelid_crease_morph::tests::test_new_eyelid_crease_morph ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_clamp_low ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_clamp_high ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_is_neutral_false ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_is_neutral_true ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_set_bossing ... ok [INFO] [stdout] test _morph_part6::frontal_sinus_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::frontalis_morph::tests::test_frontalis_overall_weight ... ok [INFO] [stdout] test _morph_part6::frontalis_morph::tests::test_frontalis_shows_lines_false ... ok [INFO] [stdout] test _morph_part6::frontalis_morph::tests::test_new_frontalis_morph ... ok [INFO] [stdout] test _morph_part6::frontalis_morph::tests::test_frontalis_blend ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_is_prominent_false ... ok [INFO] [stdout] test _morph_part6::frontalis_morph::tests::test_frontalis_shows_lines_true ... ok [INFO] [stdout] test _morph_part6::frontalis_morph::tests::test_frontalis_set_contraction ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_is_prominent_true ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_set_prominence_clamp ... ok [INFO] [stdout] test _morph_part6::genial_tubercle_morph::tests::test_set_width_clamp ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_blend_clamp_t ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_set_prominence_clamp_high ... ok [INFO] [stdout] test _morph_part6::glute_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::glute_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part6::glute_morph::tests::test_is_prominent ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_set_prominence_clamp_low ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::glute_morph::tests::test_set_volume ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_is_pronounced_false ... ok [INFO] [stdout] test _morph_part6::glabella_morph::tests::test_is_pronounced_true ... ok [INFO] [stdout] test _morph_part6::glute_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_is_elongated_false ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_is_elongated_true ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_set_roundness ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_angle_degrees_range ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_set_roundness_clamp_low ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_set_vertical_drop ... ok [INFO] [stdout] test _morph_part6::gnathion_morph::tests::test_set_vertical_drop_clamp_high ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_angle_degrees_min ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_gonial_angle_clamp ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_gonial_angle_set ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_json_keys ... ok [INFO] [stdout] test _morph_part6::gum_morph::tests::test_gum_blend ... ok [INFO] [stdout] test _morph_part6::gum_morph::tests::test_gum_is_gummy_smile_true ... ok [INFO] [stdout] test _morph_part6::gum_morph::tests::test_gum_is_gummy_smile_false ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_flare_clamp_negative ... ok [INFO] [stdout] test _morph_part6::gum_morph::tests::test_gum_set_exposure ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_prominence_set ... ok [INFO] [stdout] test _morph_part6::gonion_morph::tests::test_rounding_clamp ... ok [INFO] [stdout] test _morph_part6::hip_shape_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::hip_shape_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::gum_morph::tests::test_new_gum_morph ... ok [INFO] [stdout] test _morph_part6::hip_shape_morph::tests::test_is_wide ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_clamp_low ... ok [INFO] [stdout] test _morph_part6::hip_shape_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part6::hip_shape_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_clamp_high ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_neutral_false ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_neutral_true ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_is_hollow_false ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_set_flare ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_is_hollow_true ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::iliac_crest_morph::tests::test_weight ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_set_hollow ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_set_hollow_clamp ... ok [INFO] [stdout] test _morph_part6::infraorbital_morph::tests::test_set_puffiness_clamp ... ok [INFO] [stdout] test _morph_part6::infraorbital_rim_morph::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part6::infraorbital_rim_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::infraorbital_rim_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::infraorbital_rim_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::jowl_morph::tests::test_jowl_is_prominent_false ... ok [INFO] [stdout] test _morph_part6::infraorbital_rim_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part6::infraorbital_rim_morph::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part6::jowl_morph::tests::test_jowl_is_prominent_true ... ok [INFO] [stdout] test _morph_part6::jowl_morph::tests::test_jowl_blend ... ok [INFO] [stdout] test _morph_part6::jowl_morph::tests::test_jowl_set_volume ... ok [INFO] [stdout] test _morph_part6::jowl_morph::tests::test_new_jowl_morph ... ok [INFO] [stdout] test _morph_part6::knee_shape_morph::tests::test_new ... ok [INFO] [stdout] test _morph_part6::knee_shape_morph::tests::test_not_valgus_by_default ... ok [INFO] [stdout] test _morph_part6::knee_shape_morph::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_is_deep_false ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_is_deep_true ... ok [INFO] [stdout] test _morph_part6::knee_shape_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::knee_shape_morph::tests::test_is_valgus ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_set_fold_depth_clamp_high ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_set_fold_depth ... ok [INFO] [stdout] test _morph_part6::labiomental_morph::tests::test_set_width_clamp_low ... ok [INFO] [stdout] test _morph_part6::lateral_canthus_morph::tests::test_lateral_canthus_blend ... ok [INFO] [stdout] test _morph_part6::lateral_canthus_morph::tests::test_lateral_canthus_set_tilt ... ok [INFO] [stdout] test _morph_part6::lateral_canthus_morph::tests::test_lateral_canthus_is_upturned_false ... ok [INFO] [stdout] test _morph_part6::lateral_canthus_morph::tests::test_lateral_canthus_is_upturned_true ... ok [INFO] [stdout] test _morph_part6::lateral_canthus_morph::tests::test_new_lateral_canthus_morph ... ok [INFO] [stdout] test _morph_part6::leg_muscle_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::leg_muscle_morph::tests::test_new_zero ... ok [INFO] [stdout] test _morph_part6::leg_muscle_morph::tests::test_overall_weight_zero ... ok [INFO] [stdout] test _morph_part6::leg_muscle_morph::tests::test_set_quad_clamp ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_is_puffy_true ... ok [INFO] [stdout] test _morph_part6::leg_muscle_morph::tests::test_not_muscular_by_default ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_set_lower ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_is_puffy_false ... ok [INFO] [stdout] test _morph_part6::lip_cupids_bow_morph::tests::test_cupids_blend ... ok [INFO] [stdout] test _morph_part6::lip_cupids_bow_morph::tests::test_cupids_set_peak ... ok [INFO] [stdout] test _morph_part6::lip_cupids_bow_morph::tests::test_new_cupids_bow_morph ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_set_upper_clamp ... ok [INFO] [stdout] test _morph_part6::lip_thickness_morph::tests::test_lip_thickness_is_full_false ... ok [INFO] [stdout] test _morph_part6::lip_cupids_bow_morph::tests::test_cupids_is_defined_false ... ok [INFO] [stdout] test _morph_part6::lip_cupids_bow_morph::tests::test_cupids_is_defined_true ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_overall_weight_mean ... ok [INFO] [stdout] test _morph_part6::lip_thickness_morph::tests::test_lip_thickness_blend ... ok [INFO] [stdout] test _morph_part6::lid_fullness_morph::tests::test_blend_endpoints ... ok [INFO] [stdout] test _morph_part6::lip_thickness_morph::tests::test_new_lip_thickness_morph ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_is_everted_false ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_set_eversion ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_set_eversion_clamp_high ... ok [INFO] [stdout] test _morph_part6::lip_thickness_morph::tests::test_lip_thickness_is_full_true ... ok [INFO] [stdout] test _morph_part6::malar_fat_morph::tests::test_malar_fat_blend ... ok [INFO] [stdout] test _morph_part6::lip_thickness_morph::tests::test_lip_thickness_set_upper ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_is_everted_true ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_set_fullness_clamp_low ... ok [INFO] [stdout] test _morph_part6::malar_fat_morph::tests::test_malar_fat_is_full_false ... ok [INFO] [stdout] test _morph_part6::lower_lip_roll_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::malar_fat_morph::tests::test_malar_fat_set_volume ... ok [INFO] [stdout] test _morph_part6::malar_fat_morph::tests::test_new_malar_fat_morph ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_is_square_true ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_is_square_false ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_set_gonial_angle_clamp ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_set_gonial_angle ... ok [INFO] [stdout] test _morph_part6::marionette_line_morph::tests::test_is_pronounced_false ... ok [INFO] [stdout] test _morph_part6::marionette_line_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::marionette_line_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part6::marionette_line_morph::tests::test_is_pronounced_true ... ok [INFO] [stdout] test _morph_part6::mandible_angle_morph::tests::test_set_masseter ... ok [INFO] [stdout] test _morph_part6::malar_fat_morph::tests::test_malar_fat_is_full_true ... ok [INFO] [stdout] test _morph_part6::masseter_morph::tests::test_masseter_blend ... ok [INFO] [stdout] test _morph_part6::malar_fat_morph::tests::test_malar_fat_overall_weight ... ok [INFO] [stdout] test _morph_part6::marionette_line_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::marionette_line_morph::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part6::masseter_morph::tests::test_masseter_is_hypertrophied_false ... ok [INFO] [stdout] test _morph_part6::masseter_morph::tests::test_new_masseter_morph ... ok [INFO] [stdout] test _morph_part6::mastoid_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::mastoid_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part6::mastoid_morph::tests::test_set_size_clamps ... ok [INFO] [stdout] test _morph_part6::muscle_definition_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::masseter_morph::tests::test_masseter_is_hypertrophied_true ... ok [INFO] [stdout] test _morph_part6::masseter_morph::tests::test_masseter_set_hypertrophy ... ok [INFO] [stdout] test _morph_part6::mastoid_morph::tests::test_is_prominent_false ... ok [INFO] [stdout] test _morph_part6::mastoid_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::muscle_definition_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::muscle_definition_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_is_humped_false ... ok [INFO] [stdout] test _morph_part6::muscle_definition_morph::tests::test_set_tone_clamped ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_is_humped_true ... ok [INFO] [stdout] test _morph_part6::muscle_definition_morph::tests::test_is_athletic ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_set_height ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_set_height_clamp ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_set_hump ... ok [INFO] [stdout] test _morph_part6::nasal_dorsum_morph::tests::test_set_width_clamp ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_is_deep_true ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_is_deep_false ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_set_depth ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_set_depth_clamp_high ... ok [INFO] [stdout] test _morph_part6::nasal_root_morph::tests::test_set_width_clamp_low ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_set_projection_clamp ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_is_projected_false ... ok [INFO] [stdout] test _morph_part6::nasolabial_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_is_projected_true ... ok [INFO] [stdout] test _morph_part6::nasolabial_morph::tests::test_is_deep_false ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_set_projection ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::nasolabial_morph::tests::test_is_deep_true ... ok [INFO] [stdout] test _morph_part6::nasal_tip_projection_morph::tests::test_set_rotation_clamp ... ok [INFO] [stdout] test _morph_part6::nasolabial_morph::tests::test_set_depth_clamps ... ok [INFO] [stdout] test _morph_part6::neck_length_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::nasolabial_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::nasolabial_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part6::neck_length_morph::tests::test_is_long_false ... ok [INFO] [stdout] test _morph_part6::neck_length_morph::tests::test_is_long_true ... ok [INFO] [stdout] test _morph_part6::neck_length_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::neck_length_morph::tests::test_set_length_clamps_high ... ok [INFO] [stdout] test _morph_part6::neck_length_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::forward_correct_output_size ... ok [INFO] [stdout] test _morph_part6::neck_length_morph::tests::test_set_length_clamps_low ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::forward_output_sums_to_one ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::forward_empty_input_still_works ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::forward_all_outputs_positive ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::gauss_solver_2x2_exact ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::predict_morph_weights_all_positive ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::gauss_solver_overdetermined ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::predict_morph_weights_sums_to_one ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::forward_different_inputs_different_outputs ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::predict_morph_weights_child_body ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::predict_morph_weights_elder_body ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::predict_morph_weights_heavy_person ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::predict_morph_weights_keys_match_names ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::relu_zero_is_zero ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::predict_morph_weights_tall_person ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::relu_negative_zero ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::softmax_all_positive ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::softmax_empty_returns_empty ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::softmax_large_values_stable ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::softmax_sums_to_one ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::trainer_empty_inputs_returns_default ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::relu_positive_unchanged ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_clamp_high ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::trainer_output_names_preserved ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_neutral_true ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_clamp_low ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_set_protuberance ... ok [INFO] [stdout] test _morph_part6::occiput_morph::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_weight ... ok [INFO] [stdout] test _morph_part6::occiput_morph::tests::test_overall_weight_in_range ... ok [INFO] [stdout] test _morph_part6::occiput_morph::tests::test_set_flatness ... ok [INFO] [stdout] test _morph_part6::occiput_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::occiput_morph::tests::test_set_protrusion_clamps_high ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_is_downturned_false ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_is_downturned_true ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_set_angle ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_set_angle_clamp_high ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_set_angle_clamp_low ... ok [INFO] [stdout] test _morph_part6::orbicularis_oculi_morph::tests::test_orbicularis_set_contraction ... ok [INFO] [stdout] test _morph_part6::oral_commissure_morph::tests::test_set_depth ... ok [INFO] [stdout] test _morph_part6::orbicularis_oculi_morph::tests::test_new_orbicularis_oculi_morph ... ok [INFO] [stdout] test _morph_part6::orbicularis_oculi_morph::tests::test_orbicularis_blend ... ok [INFO] [stdout] test _morph_part6::orbital_depth_morph::tests::test_new_orbital_depth_morph ... ok [INFO] [stdout] test _morph_part6::orbicularis_oculi_morph::tests::test_orbicularis_shows_crow_feet_true ... ok [INFO] [stdout] test _morph_part6::orbicularis_oculi_morph::tests::test_orbicularis_shows_crow_feet_false ... ok [INFO] [stdout] test _morph_part6::orbital_depth_morph::tests::test_orbital_blend ... ok [INFO] [stdout] test _morph_part6::orbital_depth_morph::tests::test_orbital_is_deep_false ... ok [INFO] [stdout] test _morph_part6::orbital_depth_morph::tests::test_orbital_is_deep_true ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::trainer_from_examples_correct_output_count ... ok [INFO] [stdout] test _morph_part6::occipital_morph::tests::test_neutral_false ... ok [INFO] [stdout] test _morph_part6::orbital_depth_morph::tests::test_orbital_set_depth ... ok [INFO] [stdout] test _morph_part6::occiput_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::orbital_depth_morph::tests::test_orbital_overall_weight ... ok [INFO] [stdout] test _morph_part6::neural_blend::tests::trainer_forward_sums_to_one ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_set_height ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_is_deep_false ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_is_deep_true ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_set_depth ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_set_depth_clamp_high ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_clamp_high ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_clamp_low ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_neutral_false ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_neutral_true ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_weight ... ok [INFO] [stdout] test _morph_part6::orbital_rim_morph::tests::test_set_roundness_clamp_low ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::parotid_morph::tests::test_new_parotid_morph ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_set_coronal ... ok [INFO] [stdout] test _morph_part6::parietal_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::parotid_morph::tests::test_parotid_is_prominent_true ... ok [INFO] [stdout] test _morph_part6::parotid_morph::tests::test_parotid_set_size ... ok [INFO] [stdout] test _morph_part6::philtrum_depth_morph::tests::test_philtrum_depth_is_deep_false ... ok [INFO] [stdout] test _morph_part6::philtrum_depth_morph::tests::test_philtrum_depth_is_deep_true ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::parotid_morph::tests::test_parotid_blend ... ok [INFO] [stdout] test _morph_part6::parotid_morph::tests::test_parotid_is_prominent_false ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_is_defined_false ... ok [INFO] [stdout] test _morph_part6::philtrum_depth_morph::tests::test_new_philtrum_depth_morph ... ok [INFO] [stdout] test _morph_part6::philtrum_depth_morph::tests::test_philtrum_depth_blend ... ok [INFO] [stdout] test _morph_part6::philtrum_depth_morph::tests::test_philtrum_depth_set_depth ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_set_definition ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_set_width_clamp_low ... ok [INFO] [stdout] test _morph_part6::platysma_morph::tests::test_new_platysmae_morph ... ok [INFO] [stdout] test _morph_part6::platysma_morph::tests::test_platysmae_set_band_prominence ... ok [INFO] [stdout] test _morph_part6::platysma_morph::tests::test_platysmae_shows_bands_false ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_is_defined_true ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_set_definition_clamp_high ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::platysma_morph::tests::test_platysmae_blend ... ok [INFO] [stdout] test _morph_part6::philtrum_ridge_morph::tests::test_set_length ... ok [INFO] [stdout] test _morph_part6::platysma_morph::tests::test_platysmae_shows_bands_true ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_has_cleft_true ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_set_protrusion_clamp_high ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_set_protrusion_clamp_low ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::global_scale_zero_source_returns_one ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::joint_default_is_identity ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::normalize_pose_height_becomes_one ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_has_cleft_false ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::normalize_pose_translations_scaled_down ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::pogonion_morph::tests::test_set_protrusion ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::add_joint_duplicate_overwrites ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::global_scale_correct ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::normalize_pose_all_zero_translations_unchanged ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::retarget_identity_when_same_height ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::retarget_preserves_rotations ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::retarget_uniform_same_as_proportional ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::segment_lengths_groups_by_segment ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::normalize_pose_zero_height_falls_back_to_max ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::segment_lengths_biped_has_multiple_segments ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::retarget_preserves_joint_count ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::segment_lengths_spine_accumulated ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::retarget_updates_body_height ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::retarget_proportional_scales_translations ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::retarget_segmentwise_valid_translations ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::translation_error_no_common_joints_is_zero ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::standard_biped_tpose_has_expected_joints ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::standard_biped_tpose_height_set ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::translation_error_identical_poses_is_zero ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::translation_error_known_value ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::translation_length_zero ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::segment_lengths_unnamed_joint ... ok [INFO] [stdout] test _morph_part6::pose_retarget::tests::translation_length_correct ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_clamp_low ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_neutral_false ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_angle_rad_range ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_angle_deg_max ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_clamp_high ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_neutral_true ... ok [INFO] [stdout] test _morph_part6::pupil_size_morph::tests::test_pupil_blend ... ok [INFO] [stdout] test _morph_part6::pubic_arch_morph::tests::test_angle_deg_min ... ok [INFO] [stdout] test _morph_part6::pupil_size_morph::tests::test_new_pupil_size_morph ... ok [INFO] [stdout] test _morph_part6::pupil_size_morph::tests::test_pupil_is_dilated_false ... ok [INFO] [stdout] test _morph_part6::pupil_size_morph::tests::test_pupil_is_dilated_true ... ok [INFO] [stdout] test _morph_part6::pupil_size_morph::tests::test_pupil_set_dilation ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_is_tall_true ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_set_height ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_set_height_clamp_high ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_is_tall_false ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_is_receding_false ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::ramus_morph::tests::test_set_angle_clamp_low ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_set_hairline ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_set_hairline_clamp_high ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_is_receding_true ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_set_recession ... ok [INFO] [stdout] test _morph_part6::sclera_show_morph::tests::test_sclera_blend ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_set_crown_width_clamp_low ... ok [INFO] [stdout] test _morph_part6::scalp_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::sclera_show_morph::tests::test_new_sclera_show_morph ... ok [INFO] [stdout] test _morph_part6::sclera_show_morph::tests::test_sclera_set_inferior ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_is_visible_true ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_is_visible_false ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_set_density_clamp ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_overall_weight_average ... ok [INFO] [stdout] test _morph_part6::sclera_show_morph::tests::test_sclera_has_sanpaku_false ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_set_size_clamp ... ok [INFO] [stdout] test _morph_part6::sclera_show_morph::tests::test_sclera_has_sanpaku_true ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::skin_pore_morph::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part6::sternocleidomastoid_morph::tests::test_scm_blend ... ok [INFO] [stdout] test _morph_part6::sternocleidomastoid_morph::tests::test_scm_is_defined_true ... ok [INFO] [stdout] test _morph_part6::sternocleidomastoid_morph::tests::test_scm_is_defined_false ... ok [INFO] [stdout] test _morph_part6::sternocleidomastoid_morph::tests::test_scm_set_definition ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_length_clamp_high ... ok [INFO] [stdout] test _morph_part6::sternocleidomastoid_morph::tests::test_new_scm_morph ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_set_length ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_is_neutral_true ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_angle_offset_clamp ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_is_neutral_false ... ok [INFO] [stdout] test _morph_part6::styloid_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::subcut_fat_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::subcut_fat_morph::tests::test_defaults ... ok [INFO] [stdout] test _morph_part6::subcut_fat_morph::tests::test_set_torso ... ok [INFO] [stdout] test _morph_part6::submental_morph::tests::test_new_submental_morph ... ok [INFO] [stdout] test _morph_part6::submental_morph::tests::test_submental_has_double_chin_true ... ok [INFO] [stdout] test _morph_part6::submental_morph::tests::test_submental_overall_weight ... ok [INFO] [stdout] test _morph_part6::submental_morph::tests::test_submental_set_fat ... ok [INFO] [stdout] test _morph_part6::supraorbital_morph::tests::test_blend_at_one ... ok [INFO] [stdout] test _morph_part6::supraorbital_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::subcut_fat_morph::tests::test_is_uniform_when_equal ... ok [INFO] [stdout] test _morph_part6::subcut_fat_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::supraorbital_morph::tests::test_overall_weight_range ... ok [INFO] [stdout] test _morph_part6::submental_morph::tests::test_submental_blend ... ok [INFO] [stdout] test _morph_part6::supraorbital_morph::tests::test_set_ridge_clamps ... ok [INFO] [stdout] test _morph_part6::submental_morph::tests::test_submental_has_double_chin_false ... ok [INFO] [stdout] test _morph_part6::supraorbital_morph::tests::test_is_heavy_false ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_set_height_clamp_low ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::supraorbital_morph::tests::test_set_slope ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_is_wide_false ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_bounding_box ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_is_wide_true ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_add_targets ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_set_width_clamp_high ... ok [INFO] [stdout] test _morph_part6::symphysis_morph::tests::test_set_curvature ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_affected_vertices ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_bounding_box_empty ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_check_magnitude ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_check_symmetry_asymmetric ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_inspect_empty ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_inspect_named ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_merge_targets_empty ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_check_symmetry_symmetric ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_clamp_target ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_merge_targets_length_mismatch ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_merge_targets_single ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_inspect_basic ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_max_displacement ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_merge_targets_weighted ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_mirror_target_x ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_scale_target ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_self_intersection_warning ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_sparsify_target ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_subtract_targets ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_validate_empty_target ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_validate_excessive_displacement ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_validate_length_mismatch ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_is_hollow_true ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_set_depth_clamp_high ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_mirror_target_length_mismatch ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_rms_displacement ... ok [INFO] [stdout] test _morph_part6::target_tools::tests::test_validate_clean_target ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_set_depth ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_set_width_clamp_low ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::temple_fossa_morph::tests::test_is_hollow_false ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_is_wide_true ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_is_wide_false ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_set_width ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_set_width_clamp_high ... ok [INFO] [stdout] test _morph_part6::temporal_hollow_morph::tests::test_temporal_hollow_blend ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::tongue_shape_morph::tests::test_new_tongue_shape_morph ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_set_prominence ... ok [INFO] [stdout] test _morph_part6::temporal_hollow_morph::tests::test_temporal_hollow_is_sunken_false ... ok [INFO] [stdout] test _morph_part6::temple_width_morph::tests::test_set_prominence_clamp_low ... ok [INFO] [stdout] test _morph_part6::temporal_hollow_morph::tests::test_new_temporal_hollow_morph ... ok [INFO] [stdout] test _morph_part6::temporal_hollow_morph::tests::test_temporal_hollow_is_sunken_true ... ok [INFO] [stdout] test _morph_part6::temporal_hollow_morph::tests::test_temporal_hollow_set_depth ... ok [INFO] [stdout] test _morph_part6::tongue_shape_morph::tests::test_tongue_overall_weight_zero ... ok [INFO] [stdout] test _morph_part6::tongue_shape_morph::tests::test_tongue_set_width ... ok [INFO] [stdout] test _morph_part6::tooth_morph::tests::test_new_tooth_morph ... ok [INFO] [stdout] test _morph_part6::tooth_morph::tests::test_tooth_blend ... ok [INFO] [stdout] test _morph_part6::trapezius_morph::tests::test_trapezius_blend ... ok [INFO] [stdout] test _morph_part6::tooth_morph::tests::test_tooth_set_size ... ok [INFO] [stdout] test _morph_part6::trapezius_morph::tests::test_new_trapezius_morph ... ok [INFO] [stdout] test _morph_part6::tooth_morph::tests::test_tooth_overall_weight ... ok [INFO] [stdout] test _morph_part6::tongue_shape_morph::tests::test_tongue_blend_midpoint ... ok [INFO] [stdout] test _morph_part6::tongue_shape_morph::tests::test_tongue_is_wide ... ok [INFO] [stdout] test _morph_part6::tooth_morph::tests::test_tooth_is_prominent ... ok [INFO] [stdout] test _morph_part6::trapezius_morph::tests::test_trapezius_is_muscular_false ... ok [INFO] [stdout] test _morph_part6::trapezius_morph::tests::test_trapezius_is_muscular_true ... ok [INFO] [stdout] test _morph_part6::trapezius_morph::tests::test_trapezius_set_size ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_is_everted_false ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_is_everted_true ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_set_eversion ... ok [INFO] [stdout] test _morph_part6::vermillion_border_morph::tests::test_new_vermillion_border_morph ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::vermillion_border_morph::tests::test_vermillion_is_defined_false ... ok [INFO] [stdout] test _morph_part6::vermillion_border_morph::tests::test_vermillion_set_sharpness ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_set_tubercle_clamp_low ... ok [INFO] [stdout] test _morph_part6::upper_lip_roll_morph::tests::test_set_eversion_clamp_high ... ok [INFO] [stdout] test _morph_part6::vermillion_border_morph::tests::test_vermillion_is_defined_true ... ok [INFO] [stdout] test _morph_part6::vermillion_border_morph::tests::test_vermillion_blend ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_is_wide_false_both_zero ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_is_wide_true ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_set_lower_clamp_low ... ok [INFO] [stdout] test _morph_part6::visceral_fat_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_set_upper ... ok [INFO] [stdout] test _morph_part6::visceral_fat_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::visceral_fat_morph::tests::test_is_high ... ok [INFO] [stdout] test _morph_part6::visceral_fat_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::visceral_fat_morph::tests::test_set_level ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_is_wide_false_one_below ... ok [INFO] [stdout] test _morph_part6::vermillion_width_morph::tests::test_set_upper_clamp_high ... ok [INFO] [stdout] test _morph_part6::waist_morph_new::tests::test_overall_weight_nonneg ... ok [INFO] [stdout] test _morph_part6::waist_morph_new::tests::test_blend ... ok [INFO] [stdout] test _morph_part6::waist_morph_new::tests::test_is_hourglass ... ok [INFO] [stdout] test _morph_part6::waist_morph_new::tests::test_new ... ok [INFO] [stdout] test _morph_part6::waist_morph_new::tests::test_set_narrowing ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_breadth_clamp_low ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_clone ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_is_neutral_false ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_blend_at_zero ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_overall_weight ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_new_defaults ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_to_json ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_projection_clamp_high ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_set_projection ... ok [INFO] [stdout] test _morph_part6::zygomaticus_morph::tests::test_new_zygomaticus_morph ... ok [INFO] [stdout] test _morph_part6::zygomaticus_morph::tests::test_zygomaticus_is_smiling_true ... ok [INFO] [stdout] test _morph_part6::zygomaticus_morph::tests::test_zygomaticus_blend ... ok [INFO] [stdout] test _morph_part6::zygomatic_body_morph::tests::test_is_neutral_true ... ok [INFO] [stdout] test fabrik_ik::tests::test_constrained_fabrik_finite ... ok [INFO] [stdout] test fabrik_ik::tests::test_three_joint_arm_convergence ... ok [INFO] [stdout] test _morph_part6::zygomaticus_morph::tests::test_zygomaticus_is_smiling_false ... ok [INFO] [stdout] test _morph_part6::zygomaticus_morph::tests::test_zygomaticus_set_major ... ok [INFO] [stdout] test fabrik_ik::tests::test_single_bone_reach ... ok [INFO] [stdout] test fabrik_ik::tests::test_unreachable_target_straight_line ... ok [INFO] [stdout] test fabrik_ik::tests::test_already_at_target ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 5840 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.53s [INFO] [stdout] [INFO] [stderr] Running tests/proptest_morph.rs (/opt/rustwide/target/debug/deps/proptest_morph-cb462ea1f110211b) [INFO] [stdout] [INFO] [stdout] running 9 tests [INFO] [stdout] test arbitrary_deltas_with_unit_weight_no_nan ... ok [INFO] [stdout] test smooth_step_output_in_unit_range ... ok [INFO] [stdout] test scale_height_deltas_monotonically_increase_bbox ... ok [INFO] [stdout] test clamp_params_always_in_unit_range ... ok [INFO] [stdout] test smooth_step_monotonic ... ok [INFO] [stdout] test height_deltas_monotonically_increase_bbox ... ok [INFO] [stdout] test apply_then_revert_roundtrip ... ok [INFO] [stdout] test parameter_in_unit_range_never_produces_nan ... ok [INFO] [stdout] test reset_from_base_restores_original ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.16s [INFO] [stdout] [INFO] [stderr] Doc-tests oxihuman_morph [INFO] [stdout] [INFO] [stdout] running 8 tests [INFO] [stdout] test src/expression_blend.rs - _morph_part6::expression_blend (line 14) ... ok [INFO] [stdout] test src/neural_blend.rs - _morph_part6::neural_blend (line 25) ... ok [INFO] [stdout] test src/neural_blend.rs - _morph_part6::neural_blend::NeuralBlendTrainer (line 444) ... ok [INFO] [stdout] test src/expression_retarget.rs - _morph_part1::expression_retarget::build_prefix_map (line 247) ... ok [INFO] [stdout] test src/speech_viseme.rs - _morph_part1::speech_viseme::Phoneme::from_arpabet (line 214) ... ok [INFO] [stdout] test src/pose_retarget.rs - _morph_part6::pose_retarget (line 21) ... ok [INFO] [stdout] test src/engine.rs - _morph_part1::engine::HumanEngine (line 84) ... ok [INFO] [stdout] test src/engine.rs - _morph_part1::engine::HumanEngine::set_params (line 206) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 8 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 5.41s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "32efc8358ccd3f052bd185feba6f53021cb7bce035513b3d1a58e2148d77f5fd", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "32efc8358ccd3f052bd185feba6f53021cb7bce035513b3d1a58e2148d77f5fd", kill_on_drop: false }` [INFO] [stdout] 32efc8358ccd3f052bd185feba6f53021cb7bce035513b3d1a58e2148d77f5fd