[INFO] fetching crate cortenforge-design 0.9.0...
[INFO] testing cortenforge-design-0.9.0 against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate cortenforge-design 0.9.0 into /workspace/builds/worker-6-tc1/source
[INFO] started tweaking crates.io crate cortenforge-design 0.9.0
[INFO] finished tweaking crates.io crate cortenforge-design 0.9.0
[INFO] tweaked toml for crates.io crate cortenforge-design 0.9.0 written to /workspace/builds/worker-6-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate cortenforge-design 0.9.0 on toolchain 1.99.0-beta.8
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cortenforge-design 0.9.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded nalgebra-macros v0.3.0
[INFO] [stderr]   Downloaded cortenforge-sim-types v0.9.0
[INFO] [stderr]   Downloaded cortenforge-mesh-types v0.9.0
[INFO] [stderr]   Downloaded cortenforge-geometry v0.9.0
[INFO] [stderr]   Downloaded glam v0.22.0
[INFO] [stderr]   Downloaded cortenforge-mesh-sdf v0.9.0
[INFO] [stderr]   Downloaded glam v0.14.0
[INFO] [stderr]   Downloaded glam v0.16.0
[INFO] [stderr]   Downloaded glam v0.15.2
[INFO] [stderr]   Downloaded glam v0.19.0
[INFO] [stderr]   Downloaded glam v0.18.0
[INFO] [stderr]   Downloaded glam v0.21.3
[INFO] [stderr]   Downloaded parry3d v0.17.6
[INFO] [stderr]   Downloaded nalgebra v0.34.2
[INFO] [stderr]   Downloaded glam v0.27.0
[INFO] [stderr]   Downloaded nalgebra v0.33.3
[INFO] [stderr]   Downloaded glam v0.28.0
[INFO] [stderr]   Downloaded spade v2.15.1
[INFO] [stderr]   Downloaded cortenforge-sim-core v0.9.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d
[INFO] running `Command { std: "docker" "start" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.20
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling nalgebra v0.34.2
[INFO] [stderr]    Compiling cortenforge-geometry v0.9.0
[INFO] [stderr]    Compiling cortenforge-sim-types v0.9.0
[INFO] [stderr]    Compiling cortenforge-mesh-types v0.9.0
[INFO] [stderr]    Compiling cortenforge-sim-core v0.9.0
[INFO] [stderr]    Compiling cortenforge-design v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 32s
[INFO] running `Command { std: "docker" "inspect" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling heapless v0.8.0
[INFO] [stderr]    Compiling hash32 v0.3.1
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling robust v1.2.0
[INFO] [stderr]    Compiling num-derive v0.4.2
[INFO] [stderr]    Compiling ena v0.14.4
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling rustc-hash v2.1.1
[INFO] [stderr]    Compiling downcast-rs v1.2.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling arrayvec v0.7.6
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling ordered-float v4.6.0
[INFO] [stderr]    Compiling spade v2.15.1
[INFO] [stderr]    Compiling rstar v0.12.2
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling nalgebra v0.34.2
[INFO] [stderr]    Compiling nalgebra v0.33.3
[INFO] [stderr]    Compiling parry3d v0.17.6
[INFO] [stderr]    Compiling cortenforge-geometry v0.9.0
[INFO] [stderr]    Compiling cortenforge-sim-types v0.9.0
[INFO] [stderr]    Compiling cortenforge-mesh-types v0.9.0
[INFO] [stderr]    Compiling cortenforge-sim-core v0.9.0
[INFO] [stderr]    Compiling cortenforge-mesh-sdf v0.9.0
[INFO] [stderr]    Compiling cortenforge-design v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 2m 40s
[INFO] running `Command { std: "docker" "inspect" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.13s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/deps/cf_design-1fcf0afd354225dd)
[INFO] [stdout] 
[INFO] [stdout] running 844 tests
[INFO] [stdout] test adaptive_dc::tests::adaptive_cuboid_sharp_corners ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_cuboid_valid ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_sphere_volume ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_pin_hole_valid ... ok
[INFO] [stdout] test adaptive_dc::tests::bench_adaptive_sphere ... ignored, benchmark — run with --ignored
[INFO] [stdout] test adaptive_dc::tests::adaptive_sphere_valid ... ok
[INFO] [stdout] test adaptive_dc::tests::par_cuboid_valid ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_smooth_union_manifold ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_topology_manifold ... ok
[INFO] [stdout] test adaptive_dc::tests::par_sphere_valid ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_vs_uniform_dc_regression ... ok
[INFO] [stdout] test adaptive_dc::tests::par_pin_hole_valid ... ok
[INFO] [stdout] test adaptive_dc::tests::par_sphere_volume ... ok
[INFO] [stdout] test bounds::tests::bend_bounds_expands_xz ... ok
[INFO] [stdout] test bounds::tests::cuboid_bounds ... ok
[INFO] [stdout] test bounds::tests::elongate_expands_bounds ... ok
[INFO] [stdout] test bounds::tests::gyroid_bounds_is_none ... ok
[INFO] [stdout] test bounds::tests::helix_bounds ... ok
[INFO] [stdout] test bounds::tests::intersect_clips_bounds ... ok
[INFO] [stdout] test bounds::tests::intersect_with_plane_uses_finite_child ... ok
[INFO] [stdout] test bounds::tests::loft_constant_radius_bounds ... ok
[INFO] [stdout] test bounds::tests::loft_tapered_bounds_contains_max_radius ... ok
[INFO] [stdout] test bounds::tests::log_spiral_bounds_contains_endpoints ... ok
[INFO] [stdout] test bounds::tests::pipe_bounds ... ok
[INFO] [stdout] test bounds::tests::plane_bounds_is_none ... ok
[INFO] [stdout] test bounds::tests::repeat_bounded_bounds_2x2x1 ... ok
[INFO] [stdout] test adaptive_dc::tests::the_parallel_mesher_is_stable_too ... ok
[INFO] [stdout] test bounds::tests::repeat_bounded_bounds_3x1x1 ... ok
[INFO] [stdout] test bounds::tests::repeat_bounded_bounds_single_copy ... ok
[INFO] [stdout] test bounds::tests::repeat_bounds_is_none ... ok
[INFO] [stdout] test bounds::tests::schwarz_p_bounds_is_none ... ok
[INFO] [stdout] test bounds::tests::shell_expands_bounds ... ok
[INFO] [stdout] test bounds::tests::sphere_bounds ... ok
[INFO] [stdout] test bounds::tests::subtract_uses_first_child_bounds ... ok
[INFO] [stdout] test bounds::tests::superellipsoid_bounds ... ok
[INFO] [stdout] test bounds::tests::torus_bounds ... ok
[INFO] [stdout] test bounds::tests::translate_shifts_bounds ... ok
[INFO] [stdout] test bounds::tests::twist_bounds_expands_xy ... ok
[INFO] [stdout] test bounds::tests::union_merges_bounds ... ok
[INFO] [stdout] test bounds::tests::union_with_plane_is_none ... ok
[INFO] [stdout] test bounds::tests::user_fn_uses_explicit_bounds ... ok
[INFO] [stdout] test dual_contouring::tests::dc_cuboid_flat_faces ... ok
[INFO] [stdout] test bounds::tests::scale_uniform_bounds ... ok
[INFO] [stdout] test dual_contouring::tests::dc_cuboid_valid ... ok
[INFO] [stdout] test adaptive_dc::tests::the_mesher_numbers_its_vertices_the_same_way_every_run ... ok
[INFO] [stdout] test dual_contouring::tests::dc_cuboid_sharp_corners ... ok
[INFO] [stdout] test adaptive_dc::tests::par_topology_manifold ... ok
[INFO] [stdout] test adaptive_dc::tests::par_vs_seq_volume_match ... ok
[INFO] [stdout] test dual_contouring::tests::dc_pruning_ratio ... ok
[INFO] [stdout] test dual_contouring::tests::dc_pin_hole_valid ... ok
[INFO] [stdout] test dual_contouring::tests::dc_smooth_union_manifold ... ok
[INFO] [stdout] test dual_contouring::tests::dc_sphere_valid ... ok
[INFO] [stdout] test dual_contouring::tests::dc_sphere_volume ... ok
[INFO] [stdout] test evaluate::tests::bend_curves_z_into_x ... ok
[INFO] [stdout] test evaluate::tests::bend_zero_rate_is_identity ... ok
[INFO] [stdout] test dual_contouring::tests::dc_sphere_regression ... ok
[INFO] [stdout] test evaluate::tests::bend_at_origin_is_unchanged ... ok
[INFO] [stdout] test evaluate::tests::capsule_on_barrel_is_zero ... ok
[INFO] [stdout] test evaluate::tests::capsule_origin_is_negative_radius ... ok
[INFO] [stdout] test evaluate::tests::capsule_on_cap_is_zero ... ok
[INFO] [stdout] test evaluate::tests::cone_apex_is_zero ... ok
[INFO] [stdout] test evaluate::tests::cone_above_apex_is_positive ... ok
[INFO] [stdout] test evaluate::tests::cuboid_corner_distance ... ok
[INFO] [stdout] test evaluate::tests::cuboid_on_face_is_zero ... ok
[INFO] [stdout] test evaluate::tests::cuboid_origin_is_negative ... ok
[INFO] [stdout] test evaluate::tests::cylinder_on_barrel_is_zero ... ok
[INFO] [stdout] test evaluate::tests::cylinder_on_cap_is_zero ... ok
[INFO] [stdout] test evaluate::tests::cylinder_origin_is_negative ... ok
[INFO] [stdout] test evaluate::tests::ellipsoid_on_surface_is_near_zero ... ok
[INFO] [stdout] test evaluate::tests::ellipsoid_origin_is_negative ... ok
[INFO] [stdout] test evaluate::tests::ellipsoid_sphere_equivalence ... ok
[INFO] [stdout] test evaluate::tests::elongate_preserves_sdf ... ok
[INFO] [stdout] test evaluate::tests::elongate_sphere_becomes_capsule_like ... ok
[INFO] [stdout] test evaluate::tests::fold_repeat_bounded_clamps_at_edges ... ok
[INFO] [stdout] test evaluate::tests::fold_repeat_bounded_count_1_is_identity ... ok
[INFO] [stdout] test evaluate::tests::fold_repeat_maps_to_fundamental_domain ... ok
[INFO] [stdout] test evaluate::tests::intersect_is_commutative ... ok
[INFO] [stdout] test evaluate::tests::intersect_requires_both_inside ... ok
[INFO] [stdout] test evaluate::tests::loft_cap_distance ... ok
[INFO] [stdout] test evaluate::tests::loft_constant_radius_matches_cylinder ... ok
[INFO] [stdout] test evaluate::tests::loft_midpoint_radius_interpolation ... ok
[INFO] [stdout] test evaluate::tests::loft_tapered_sign_correctness ... ok
[INFO] [stdout] test evaluate::tests::mirror_positive_side_unchanged ... ok
[INFO] [stdout] test evaluate::tests::mirror_x_reflects_across_yz_plane ... ok
[INFO] [stdout] test evaluate::tests::offset_grow_sphere ... ok
[INFO] [stdout] test evaluate::tests::offset_shrink_sphere ... ok
[INFO] [stdout] test evaluate::tests::pipe_l_shaped_inside_outside ... ok
[INFO] [stdout] test evaluate::tests::pipe_multi_segment_continuity ... ok
[INFO] [stdout] test evaluate::tests::pipe_spline_inner_outer_radii ... ok
[INFO] [stdout] test evaluate::tests::pipe_spline_smooth_curvature ... ok
[INFO] [stdout] test evaluate::tests::pipe_spline_two_points_matches_capsule ... ok
[INFO] [stdout] test evaluate::tests::pipe_straight_matches_capsule ... ok
[INFO] [stdout] test evaluate::tests::plane_above_is_positive ... ok
[INFO] [stdout] test evaluate::tests::plane_below_is_negative ... ok
[INFO] [stdout] test evaluate::tests::plane_on_surface_is_zero ... ok
[INFO] [stdout] test evaluate::tests::plane_with_offset ... ok
[INFO] [stdout] test evaluate::tests::repeat_bounded_2_copies_straddle_origin ... ok
[INFO] [stdout] test evaluate::tests::repeat_bounded_3_copies_along_x ... ok
[INFO] [stdout] test evaluate::tests::repeat_bounded_beyond_array_uses_nearest_copy ... ok
[INFO] [stdout] test evaluate::tests::repeat_bounded_count_1_is_identity ... ok
[INFO] [stdout] test evaluate::tests::repeat_sphere_at_offset_copy ... ok
[INFO] [stdout] test evaluate::tests::repeat_sphere_at_origin_matches_child ... ok
[INFO] [stdout] test evaluate::tests::repeat_sphere_midpoint_between_copies ... ok
[INFO] [stdout] test evaluate::tests::rotate_90_degrees_around_z ... ok
[INFO] [stdout] test evaluate::tests::rotate_preserves_sphere ... ok
[INFO] [stdout] test evaluate::tests::rotate_then_scale ... ok
[INFO] [stdout] test evaluate::tests::round_cuboid_shifts_surface ... ok
[INFO] [stdout] test evaluate::tests::scale_doubles_size ... ok
[INFO] [stdout] test evaluate::tests::scale_preserves_sdf_property ... ok
[INFO] [stdout] test evaluate::tests::shell_sphere_wall_thickness ... ok
[INFO] [stdout] test evaluate::tests::smooth_intersect_matches_sharp_when_far ... ok
[INFO] [stdout] test evaluate::tests::smooth_intersect_removes_material_in_blend ... ok
[INFO] [stdout] test evaluate::tests::smooth_subtract_degenerates_to_sharp_when_far ... ok
[INFO] [stdout] test evaluate::tests::smooth_subtract_removes_with_blend ... ok
[INFO] [stdout] test evaluate::tests::smooth_union_adds_material_in_blend_region ... ok
[INFO] [stdout] test evaluate::tests::smooth_union_all_adds_material ... ok
[INFO] [stdout] test evaluate::tests::smooth_union_all_is_order_independent ... ok
[INFO] [stdout] test evaluate::tests::smooth_union_all_single_element ... ok
[INFO] [stdout] test evaluate::tests::smooth_union_far_from_blend_matches_sharp ... ok
[INFO] [stdout] test evaluate::tests::smooth_union_max_correction_is_k_over_4 ... ok
[INFO] [stdout] test evaluate::tests::sphere_on_surface_is_zero ... ok
[INFO] [stdout] test evaluate::tests::sphere_origin_is_negative_radius ... ok
[INFO] [stdout] test evaluate::tests::sphere_outside_is_positive ... ok
[INFO] [stdout] test evaluate::tests::subtract_is_not_commutative ... ok
[INFO] [stdout] test evaluate::tests::cone_base_center_is_negative ... ok
[INFO] [stdout] test evaluate::tests::cone_outside_is_positive ... ok
[INFO] [stdout] test evaluate::tests::subtract_removes_second ... ok
[INFO] [stdout] test evaluate::tests::torus_center_of_tube_is_zero ... ok
[INFO] [stdout] test evaluate::tests::subtract_then_translate ... ok
[INFO] [stdout] test evaluate::tests::torus_on_inner_surface_is_zero ... ok
[INFO] [stdout] test evaluate::tests::translate_moves_shape ... ok
[INFO] [stdout] test evaluate::tests::translate_preserves_sdf ... ok
[INFO] [stdout] test evaluate::tests::torus_on_outer_surface_is_zero ... ok
[INFO] [stdout] test evaluate::tests::twist_cuboid_rotates_cross_section ... ok
[INFO] [stdout] test evaluate::tests::torus_origin_is_positive ... ok
[INFO] [stdout] test evaluate::tests::twist_zero_rate_is_identity ... ok
[INFO] [stdout] test evaluate::tests::union_is_commutative ... ok
[INFO] [stdout] test evaluate::tests::union_of_translated_spheres ... ok
[INFO] [stdout] test evaluate::tests::union_picks_smaller_value ... ok
[INFO] [stdout] test evaluate::tests::user_fn_evaluates_closure ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_bend ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_capsule ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_composed_tree ... ok
[INFO] [stdout] test evaluate::tests::union_inside_either_is_inside ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_cone ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_sphere_cell_reduction ... ok
[INFO] [stdout] test evaluate::tests::twist_cylinder_is_unchanged ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_elongate ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_cuboid ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_cylinder ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_ellipsoid ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_loft ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_gyroid ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_intersect ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_helix ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_log_spiral ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_mirror ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_offset ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_nested_booleans ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_pipe_spline ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_plane ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_repeat ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_round ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_scale_uniform ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_pipe ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_repeat_bounded ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_smooth_intersect ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_schwarz_p ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_shell ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_smooth_subtract ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_smooth_union_all ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_smooth_union_variable ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_sphere ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_subtract ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_superellipsoid ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_translate ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_twist ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_union ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_user_fn ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_rotate ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_torus ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_cuboid ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_elongate ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_mirror ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_eval_smooth_union ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_rotate ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_repeat_bounded ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_shell ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_smooth_union ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_sphere ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_subtract ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_translate ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_user_fn ... ok
[INFO] [stdout] test gradient::tests::gradient_bend ... ok
[INFO] [stdout] test gradient::tests::gradient_capsule ... ok
[INFO] [stdout] test gradient::tests::gradient_cone ... ok
[INFO] [stdout] test gradient::tests::gradient_cuboid ... ok
[INFO] [stdout] test gradient::tests::gradient_cylinder ... ok
[INFO] [stdout] test gradient::tests::gradient_ellipsoid ... ok
[INFO] [stdout] test gradient::tests::gradient_elongate ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_bend ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_twist ... ok
[INFO] [stdout] test gradient::tests::gradient_helix ... ok
[INFO] [stdout] test gradient::tests::gradient_intersect ... ok
[INFO] [stdout] test evaluate_batch::tests::batch_grad_union ... ok
[INFO] [stdout] test gradient::tests::gradient_loft ... ok
[INFO] [stdout] test gradient::tests::gradient_log_spiral ... ok
[INFO] [stdout] test gradient::tests::gradient_mirror ... ok
[INFO] [stdout] test gradient::tests::gradient_pipe_spline ... ok
[INFO] [stdout] test gradient::tests::gradient_offset ... ok
[INFO] [stdout] test gradient::tests::gradient_pipe ... ok
[INFO] [stdout] test gradient::tests::gradient_plane ... ok
[INFO] [stdout] test gradient::tests::gradient_repeat ... ok
[INFO] [stdout] test gradient::tests::gradient_repeat_bounded ... ok
[INFO] [stdout] test gradient::tests::gradient_rotate ... ok
[INFO] [stdout] test gradient::tests::gradient_scale_uniform ... ok
[INFO] [stdout] test gradient::tests::gradient_schwarz_p ... ok
[INFO] [stdout] test gradient::tests::gradient_shell ... ok
[INFO] [stdout] test gradient::tests::gradient_smooth_intersect ... ok
[INFO] [stdout] test gradient::tests::gradient_smooth_union ... ok
[INFO] [stdout] test gradient::tests::gradient_smooth_union_all ... ok
[INFO] [stdout] test gradient::tests::gradient_smooth_subtract ... ok
[INFO] [stdout] test gradient::tests::gradient_sphere ... ok
[INFO] [stdout] test gradient::tests::gradient_sphere_singularity_fallback_is_unit_z ... ok
[INFO] [stdout] test gradient::tests::gradient_subtract ... ok
[INFO] [stdout] test gradient::tests::gradient_superellipsoid ... ok
[INFO] [stdout] test gradient::tests::gradient_torus ... ok
[INFO] [stdout] test gradient::tests::gradient_translate ... ok
[INFO] [stdout] test gradient::tests::gradient_twist ... ok
[INFO] [stdout] test gradient::tests::gradient_round ... ok
[INFO] [stdout] test gradient::tests::gradient_union ... ok
[INFO] [stdout] test gradient::tests::gradient_user_fn ... ok
[INFO] [stdout] test gradient::tests::pipe_spline_delegation_is_byte_identical ... ok
[INFO] [stdout] test interval::tests::bend_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::bend_moderate_rate_interval_contains_points ... ok
[INFO] [stdout] test gradient::tests::gradient_gyroid ... ok
[INFO] [stdout] test interval::tests::cone_interval_contains_points ... ok
[INFO] [stdout] test gradient::tests::gradient_smooth_union_variable ... ok
[INFO] [stdout] test interval::tests::cylinder_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::ellipsoid_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::elongate_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::gyroid_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::cuboid_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::elongate_3axis_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::helix_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_exact_sdf_primitives_are_1 ... ok
[INFO] [stdout] test interval::tests::capsule_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_bend_is_gt_1 ... ok
[INFO] [stdout] test dual_contouring::tests::dc_superellipsoid_manifold ... ok
[INFO] [stdout] test interval::tests::intersect_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_loft_constant_radius_is_1 ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_twist_is_gt_1 ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_undistorted_tree_is_1 ... ok
[INFO] [stdout] test interval::tests::loft_constant_radius_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::loft_multi_station_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::loft_tapered_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::log_spiral_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_propagates_through_transforms ... ok
[INFO] [stdout] test interval::tests::mirror_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_repeat_preserves_child ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_loft_tapered_is_gt_1 ... ok
[INFO] [stdout] test interval::tests::offset_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::offset_shrink_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::lipschitz_factor_propagates_through_booleans ... ok
[INFO] [stdout] test interval::tests::plane_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::plane_interval_exact_for_axis_aligned ... ok
[INFO] [stdout] test interval::tests::repeat_bounded_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::repeat_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::pipe_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::scale_uniform_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::rotate_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::round_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::schwarz_p_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::smooth_intersect_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::smooth_subtract_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::smooth_union_all_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::smooth_union_variable_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::sphere_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::sphere_interval_tight_inside ... ok
[INFO] [stdout] test interval::tests::sphere_interval_tight_outside ... ok
[INFO] [stdout] test interval::tests::subtract_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::subtract_then_scale_interval ... ok
[INFO] [stdout] test interval::tests::superellipsoid_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::smooth_union_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::pipe_spline_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::superellipsoid_octahedron_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::translate_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::twist_high_rate_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::torus_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::twist_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::union_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::user_fn_without_interval_returns_full_range ... ok
[INFO] [stdout] test loft::tests::catmull_rom_1d_endpoints ... ok
[INFO] [stdout] test loft::tests::catmull_rom_1d_linear_for_uniform_spacing ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_kind_is_copy ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_kind_variants ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_muscle_variant ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_new_valid ... ok
[INFO] [stdout] test interval::tests::union_translated_spheres_interval ... ok
[INFO] [stdout] test interval::tests::user_fn_with_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::shell_interval_contains_points ... ok
[INFO] [stdout] test interval::tests::shell_interval_prunes_interior ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_rejects_nan_ctrl_range - should panic ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_rejects_nan_force_range - should panic ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_rejects_empty_tendon - should panic ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_rejects_invalid_ctrl_range - should panic ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_rejects_invalid_force_range - should panic ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_rejects_equal_force_range - should panic ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::concave_effective_radius_is_none ... ok
[INFO] [stdout] test mechanism::actuator::tests::actuator_with_ctrl_range ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::convex_effective_radius_ray_march ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sdf_grid_available ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::cylinder_gradient_is_radial_on_barrel ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_bounds_correct ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_distance_at_origin ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_gradient_is_radial ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_distance_outside ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_effective_radius_is_constant ... ok
[INFO] [stdout] test mechanism::builder::tests::actuator_unknown_tendon ... ok
[INFO] [stdout] test mechanism::builder::tests::bio_gripper_builds ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_interval_inside_prunes ... ok
[INFO] [stdout] test mechanism::builder::tests::build_panics_on_a_part_with_two_parents - should panic ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_distance_at_surface ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_interval_contains_surface ... ok
[INFO] [stdout] test mechanism::builder::tests::build_panics_on_invalid - should panic ... ok
[INFO] [stdout] test mechanism::builder::tests::channels_subtracted_on_build ... ok
[INFO] [stdout] test mechanism::builder::tests::builds_without_print_profile ... ok
[INFO] [stdout] test mechanism::builder::tests::duplicate_actuator_name ... ok
[INFO] [stdout] test mechanism::builder::tests::duplicate_joint_name ... ok
[INFO] [stdout] test mechanism::builder::tests::duplicate_part_name ... ok
[INFO] [stdout] test mechanism::builder::tests::duplicate_tendon_name ... ok
[INFO] [stdout] test mechanism::builder::tests::empty_name_panics - should panic ... ok
[INFO] [stdout] test mechanism::builder::tests::joint_unknown_child ... ok
[INFO] [stdout] test mechanism::builder::tests::multiple_errors_collected ... ok
[INFO] [stdout] test mechanism::builder::tests::orphan_part_detected ... ok
[INFO] [stdout] test mechanism::builder::tests::single_part_no_joints_is_valid ... ok
[INFO] [stdout] test mechanism::builder::tests::tendon_unknown_part ... ok
[INFO] [stdout] test mechanism::builder::tests::unbounded_part_passes_validation ... ok
[INFO] [stdout] test mechanism::builder::tests::validate_refuses_two_parents_and_allows_a_cylindrical_joint ... ok
[INFO] [stdout] test mechanism::bushing::tests::a_bushing_with_no_length_is_rejected - should panic ... ok
[INFO] [stdout] test mechanism::bushing::tests::a_bushing_with_no_wall_is_rejected - should panic ... ok
[INFO] [stdout] test mechanism::bushing::tests::a_thinner_wall_is_dramatically_stiffer ... ok
[INFO] [stdout] test mechanism::bushing::tests::the_correlations_pole_is_out_of_bounds - should panic ... ok
[INFO] [stdout] test mechanism::bushing::tests::the_hardness_correlation_matches_and_stiffens_sharply ... ok
[INFO] [stdout] test mechanism::builder::tests::joint_unknown_parent ... ok
[INFO] [stdout] test mechanism::bushing::tests::the_rates_match_hand_computed_values ... ok
[INFO] [stdout] test mechanism::builder::tests::getters_return_correct_values ... ok
[INFO] [stdout] test mechanism::analytical_shape::tests::sphere_interval_outside_prunes ... ok
[INFO] [stdout] test mechanism::flex_split::tests::split_missing_youngs_modulus ... ok
[INFO] [stdout] test mechanism::flex_split::tests::split_multiple_zones ... ok
[INFO] [stdout] test mechanism::flex_split::tests::cross_section_circular ... ok
[INFO] [stdout] test mechanism::flex_split::tests::split_no_zones ... ok
[INFO] [stdout] test mechanism::flex_split::tests::cross_section_rectangular ... ok
[INFO] [stdout] test mechanism::joint::tests::a_weld_rejects_a_range - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::degrees_of_freedom_per_kind ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_ball_and_free ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_normalizes_axis ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_range_min_ge_max - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_range_rejects_nan - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_rejects_empty_child - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::flex_split::tests::split_single_zone_stiffness ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_range_min_eq_max - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_rejects_nan_stiffness - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_rejects_negative_damping - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_rejects_negative_stiffness - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_stiffness_damping ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_stiffness_damping_default_none ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_valid ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_with_range ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_zero_stiffness_allowed ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_kind_all_variants ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_rejects_empty_parent - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_kind_is_copy ... ok
[INFO] [stdout] test mechanism::joint::tests::only_fixed_is_a_weld ... ok
[INFO] [stdout] test mechanism::mass::tests::asymmetric_com_offset ... ok
[INFO] [stdout] test mechanism::mass::tests::cuboid_mass_within_2_percent ... ok
[INFO] [stdout] test mechanism::flex_split::tests::split_single_zone_geometry ... ok
[INFO] [stdout] test mechanism::mass::tests::rejects_zero_cell_size - should panic ... ok
[INFO] [stdout] test mechanism::joint::tests::joint_def_rejects_zero_axis - should panic ... ok
[INFO] [stdout] test mechanism::mass::tests::rejects_zero_density - should panic ... ok
[INFO] [stdout] test mechanism::mass::tests::shell_mass_less_than_solid ... ok
[INFO] [stdout] test mechanism::mass::tests::smooth_union_mass_between_one_and_two_spheres ... ok
[INFO] [stdout] test mechanism::mass::tests::sphere_center_of_mass_near_origin ... ok
[INFO] [stdout] test mechanism::mass::tests::sphere_inertia_within_2_percent ... ok
[INFO] [stdout] test mechanism::mass::tests::translated_solid_shifts_com ... ok
[INFO] [stdout] test mechanism::mass::tests::unbounded_solid_returns_none ... ok
[INFO] [stdout] test mechanism::mass::tests::sphere_mass_within_2_percent ... ok
[INFO] [stdout] test mechanism::material::tests::fdm_process_valid ... ok
[INFO] [stdout] test mechanism::material::tests::fdm_rejects_zero_infill - should panic ... ok
[INFO] [stdout] test mechanism::material::tests::fdm_rejects_zero_layer_height - should panic ... ok
[INFO] [stdout] test mechanism::material::tests::fdm_solid_infill ... ok
[INFO] [stdout] test mechanism::material::tests::material_new_valid ... ok
[INFO] [stdout] test mechanism::material::tests::material_rejects_inf_density - should panic ... ok
[INFO] [stdout] test mechanism::mass::tests::cuboid_inertia_within_2_percent ... ok
[INFO] [stdout] test mechanism::material::tests::material_rejects_negative_youngs_modulus - should panic ... ok
[INFO] [stdout] test mechanism::material::tests::material_rejects_zero_density - should panic ... ok
[INFO] [stdout] test mechanism::material::tests::material_rejects_negative_density - should panic ... ok
[INFO] [stdout] test mechanism::material::tests::material_with_all_optional_fields ... ok
[INFO] [stdout] test mechanism::material::tests::sla_process_valid ... ok
[INFO] [stdout] test mechanism::material::tests::sls_and_machined_constructible ... ok
[INFO] [stdout] test mechanism::material::tests::material_rejects_nan_density - should panic ... ok
[INFO] [stdout] test mechanism::material::tests::sla_rejects_zero_layer_height - should panic ... ok
[INFO] [stdout] test mechanism::material::tests::fdm_rejects_infill_above_one - should panic ... ok
[INFO] [stdout] test mechanism::mjcf::tests::a_linkage_becomes_an_equality_constraint ... ok
[INFO] [stdout] test mechanism::mjcf::tests::a_part_anchored_to_the_world_is_a_top_level_body ... ok
[INFO] [stdout] test mechanism::mjcf::tests::a_mechanism_without_linkages_emits_no_equality_block ... ok
[INFO] [stdout] test mechanism::bushing::tests::the_model_feels_the_rate_the_arithmetic_predicts ... ok
[INFO] [stdout] test mechanism::mjcf::tests::a_weld_emits_no_joint_element ... ok
[INFO] [stdout] test mechanism::mjcf::tests::a_welded_body_keeps_its_pose_in_mjcf ... ok
[INFO] [stdout] test mechanism::mjcf::tests::actuator_muscle ... ok
[INFO] [stdout] test mechanism::mjcf::tests::an_equality_names_bodies_the_file_defines ... ok
[INFO] [stdout] test mechanism::mjcf::tests::actuator_motor ... ok
[INFO] [stdout] test mechanism::mjcf::tests::joint_range_emitted ... ok
[INFO] [stdout] test mechanism::mjcf::tests::joint_stiffness_damping_emitted ... ok
[INFO] [stdout] test mechanism::mjcf::tests::joint_type_free_mapped ... ok
[INFO] [stdout] test mechanism::mjcf::tests::joint_types_mapped ... ok
[INFO] [stdout] test mechanism::mjcf::tests::single_part_mjcf ... ok
[INFO] [stdout] test mechanism::mjcf::tests::mesh_data_embedded ... ok
[INFO] [stdout] test mechanism::mjcf::tests::tendon_sites_on_bodies ... ok
[INFO] [stdout] test mechanism::mjcf::tests::joint_without_range_has_no_limited ... ok
[INFO] [stdout] test mechanism::mjcf::tests::tendon_spatial_element ... ok
[INFO] [stdout] test mechanism::mjcf::tests::joint_without_stiffness_damping_omits_attrs ... ok
[INFO] [stdout] test mechanism::mjcf::tests::the_file_and_the_model_agree_on_how_stiff_a_linkage_is ... ok
[INFO] [stdout] test mechanism::mjcf::tests::the_body_tree_matches_the_model ... ok
[INFO] [stdout] test mechanism::mjcf::tests::bio_gripper_round_trip ... ok
[INFO] [stdout] test mechanism::mjcf::tests::two_part_mjcf_structure ... ok
[INFO] [stdout] test mechanism::mjcf::tests::xml_well_formed ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_linkage_is_stiffer_than_a_contact ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_part_cannot_be_welded_and_articulated_at_once ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_part_welded_to_the_world_is_static ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_weld_adds_no_joint_and_no_degree_of_freedom ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_weld_does_not_shift_its_geometry ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_smooth_union_cell_reduction ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_linkage_emits_an_equality_constraint ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_linkage_holds_while_an_untied_pair_comes_apart ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_weld_is_cheaper_than_a_revolute_pinched_shut ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_weld_is_rigid_under_simulation_and_a_hinge_is_not ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_weld_still_places_the_body_at_its_anchor ... ok
[INFO] [stdout] test mechanism::model_builder::tests::cuboid_plane_multi_contact_via_octree ... ok
[INFO] [stdout] test mechanism::model_builder::tests::free_joint_to_world ... ok
[INFO] [stdout] test mechanism::model_builder::tests::joint_cycle_to_model_errors ... ok
[INFO] [stdout] test mechanism::model_builder::tests::forward_kinematics_runs ... ok
[INFO] [stdout] test mechanism::model_builder::tests::mesh_geoms_present ... ok
[INFO] [stdout] test mechanism::model_builder::tests::newton_csg_subtract_matches_solid_gradient ... ok
[INFO] [stdout] test mechanism::model_builder::tests::model_dimensions ... ok
[INFO] [stdout] test mechanism::model_builder::tests::octree_matches_grid_positions ... ok
[INFO] [stdout] test mechanism::model_builder::tests::octree_pin_in_socket ... ok
[INFO] [stdout] test mechanism::model_builder::tests::newton_cylinder_bore_radial_normals ... ok
[INFO] [stdout] test mechanism::model_builder::tests::octree_pruning_count ... ok
[INFO] [stdout] test mechanism::model_builder::tests::octree_sphere_in_bore ... ok
[INFO] [stdout] test mechanism::model_builder::tests::parent_child_collision_filtered ... ok
[INFO] [stdout] test mechanism::mjcf::tests::the_file_places_geometry_where_the_model_does ... ok
[INFO] [stdout] test mechanism::model_builder::tests::reference_origins_refuse_a_cycle ... ok
[INFO] [stdout] test mechanism::model_builder::tests::reference_origins_agree_with_forward_kinematics ... ok
[INFO] [stdout] test mechanism::model_builder::tests::sdf_geoms_present ... ok
[INFO] [stdout] test mechanism::model_builder::tests::octree_produces_sparse_contacts ... ok
[INFO] [stdout] test mechanism::model_builder::tests::shape_data_populated ... ok
[INFO] [stdout] test mechanism::model_builder::tests::single_part_model ... ok
[INFO] [stdout] test mechanism::model_builder::tests::sphere_plane_still_single_contact ... ok
[INFO] [stdout] test mechanism::model_builder::tests::tendon_actuator_model ... ok
[INFO] [stdout] test adaptive_dc::tests::adaptive_helix_manifold ... ok
[INFO] [stdout] test mechanism::model_builder::tests::a_weld_in_the_chain_does_not_decouple_the_mass_matrix ... ok
[INFO] [stdout] test mechanism::model_builder::tests::the_reference_pose_walk_agrees_with_forward_kinematics ... ok
[INFO] [stdout] test mechanism::model_builder::tests::tier3_exact_normals_vs_grid ... ok
[INFO] [stdout] test mechanism::model_builder::tests::tilted_cuboid_plane_edge_contacts ... ok
[INFO] [stdout] test mechanism::model_builder::tests::two_welds_on_different_children_are_fine ... ok
[INFO] [stdout] test mechanism::model_builder::tests::sdf_sphere_stacking ... ok
[INFO] [stdout] test mechanism::model_builder::tests::unbounded_part_is_reported_not_silently_exported ... ok
[INFO] [stdout] test mechanism::model_builder::tests::unbounded_part_to_model_errors ... ok
[INFO] [stdout] test mechanism::part::tests::a_flex_zone_cannot_be_a_weld - should panic ... ok
[INFO] [stdout] test mechanism::part::tests::flex_zone_normalizes_axis ... ok
[INFO] [stdout] test mechanism::part::tests::flex_zone_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::part::tests::flex_zone_rejects_zero_axis - should panic ... ok
[INFO] [stdout] test mechanism::part::tests::flex_zone_rejects_zero_width - should panic ... ok
[INFO] [stdout] test mechanism::part::tests::flex_zone_valid ... ok
[INFO] [stdout] test mechanism::model_builder::tests::welding_one_of_two_joints_leaves_the_other_counted ... ok
[INFO] [stdout] test mechanism::part::tests::part_joint_origin ... ok
[INFO] [stdout] test mechanism::part::tests::part_joint_origin_default_none ... ok
[INFO] [stdout] test mechanism::part::tests::part_new_valid ... ok
[INFO] [stdout] test mechanism::part::tests::part_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::part::tests::part_with_flex_zone ... ok
[INFO] [stdout] test mechanism::part::tests::plane_normalizes_normal ... ok
[INFO] [stdout] test mechanism::part::tests::part_solid_is_accessible ... ok
[INFO] [stdout] test mechanism::part::tests::plane_rejects_nan_offset - should panic ... ok
[INFO] [stdout] test mechanism::part::tests::plane_rejects_zero_normal - should panic ... ok
[INFO] [stdout] test mechanism::print::tests::print_profile_rejects_inf_min_wall - should panic ... ok
[INFO] [stdout] test mechanism::print::tests::print_profile_rejects_negative_clearance - should panic ... ok
[INFO] [stdout] test mechanism::print::tests::print_profile_rejects_nan - should panic ... ok
[INFO] [stdout] test mechanism::print::tests::print_profile_rejects_zero_clearance - should panic ... ok
[INFO] [stdout] test mechanism::print::tests::print_profile_rejects_negative_min_hole - should panic ... ok
[INFO] [stdout] test mechanism::print::tests::print_profile_valid ... ok
[INFO] [stdout] test mechanism::print::tests::print_profile_rejects_zero_min_wall - should panic ... ok
[INFO] [stdout] test mechanism::shapes::tests::mesh_mode_non_empty ... ok
[INFO] [stdout] test mechanism::shapes::tests::mesh_rejects_zero_tolerance - should panic ... ok
[INFO] [stdout] test mechanism::shapes::tests::sdf_finer_resolution_produces_different_shape ... ok
[INFO] [stdout] test mechanism::shapes::tests::sdf_mode_produces_sdf_shapes ... ok
[INFO] [stdout] test mechanism::shapes::tests::sdf_rejects_zero_resolution - should panic ... ok
[INFO] [stdout] test mechanism::shapes::tests::single_part_sdf ... ok
[INFO] [stdout] test mechanism::shapes::tests::mesh_mode_produces_triangle_mesh_shapes ... ok
[INFO] [stdout] test mechanism::stl::tests::clearance_offset_shrinks_bounding_box ... ok
[INFO] [stdout] test mechanism::stl::tests::generates_mesh_per_part ... ok
[INFO] [stdout] test mechanism::stl::tests::meshes_have_positive_volume ... ok
[INFO] [stdout] test mechanism::stl::tests::no_clearance_no_offset ... ok
[INFO] [stdout] test mechanism::stl::tests::clearance_shrinks_parts ... ok
[INFO] [stdout] test mechanism::stl::tests::rejects_zero_tolerance - should panic ... ok
[INFO] [stdout] test mechanism::stl::tests::single_part_stl ... ok
[INFO] [stdout] test mechanism::templates::tests::a_flexure_reaches_the_model_in_the_model_s_own_torque_units ... ok
[INFO] [stdout] test mechanism::templates::tests::bracket_no_flex_zones ... ok
[INFO] [stdout] test mechanism::templates::tests::bracket_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::templates::tests::bracket_rejects_zero_width - should panic ... ok
[INFO] [stdout] test mechanism::templates::tests::bracket_basic ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_four_phalanges ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_has_stiffness_with_youngs_modulus ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_rejects_one_phalanx - should panic ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_rejects_zero_length - should panic ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_sub_bodies_contain_expected_regions ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_three_phalanges ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_two_phalanges ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_zero_stiffness_without_youngs_modulus ... ok
[INFO] [stdout] test mechanism::templates::tests::finger_joints_are_revolute ... ok
[INFO] [stdout] test mechanism::templates::tests::link_infilled_has_lattice ... ok
[INFO] [stdout] test mechanism::templates::tests::link_no_flex_zones ... ok
[INFO] [stdout] test mechanism::templates::tests::link_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::channel_along_centerline_is_void_after_subtraction ... ok
[INFO] [stdout] test mechanism::tendon::tests::channel_solid_returns_none_for_single_waypoint ... ok
[INFO] [stdout] test mechanism::tendon::tests::channel_solid_returns_none_for_unknown_part ... ok
[INFO] [stdout] test mechanism::tendon::tests::channel_solid_returns_none_for_zero_radius ... ok
[INFO] [stdout] test mechanism::tendon::tests::channel_solid_returns_pipe_for_valid_part ... ok
[INFO] [stdout] test mechanism::tendon::tests::multiple_tendons_independent_channels ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_new_valid ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_rejects_empty_name - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_rejects_nan_radius - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_rejects_negative_radius - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_rejects_non_positive_damping - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_rejects_non_positive_stiffness - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_rejects_too_few_waypoints - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_with_stiffness_damping ... ok
[INFO] [stdout] test mechanism::tendon::tests::tendon_zero_radius_is_surface_routed ... ok
[INFO] [stdout] test mechanism::tendon::tests::waypoint_new_valid ... ok
[INFO] [stdout] test mechanism::tendon::tests::waypoint_rejects_empty_part - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::waypoint_rejects_inf_position - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::waypoint_rejects_nan_position - should panic ... ok
[INFO] [stdout] test mechanism::tendon::tests::with_tendon_channels_skips_irrelevant_tendons ... ok
[INFO] [stdout] test mechanism::units::tests::a_thousand_newton_millimetres_is_one_newton_metre ... ok
[INFO] [stdout] test mechanism::units::tests::the_bridges_do_not_clamp ... ok
[INFO] [stdout] test mechanism::units::tests::the_ratios_are_a_million_and_a_thousand ... ok
[INFO] [stdout] test mechanism::validate::tests::adequate_hole_passes ... ok
[INFO] [stdout] test mechanism::templates::tests::link_basic ... ok
[INFO] [stdout] test dual_contouring::tests::dc_helix_manifold ... ok
[INFO] [stdout] test mechanism::validate::tests::adjacent_parts_skip_clearance ... ok
[INFO] [stdout] test mechanism::validate::tests::clearance_sufficient_passes ... ok
[INFO] [stdout] test mechanism::validate::tests::bio_gripper_validates_clean ... ok
[INFO] [stdout] test mechanism::validate::tests::clearance_violation_detected ... ok
[INFO] [stdout] test mechanism::validate::tests::no_profile_only_checks_anchors ... ok
[INFO] [stdout] test mechanism::validate::tests::joint_anchor_inside_parent ... ok
[INFO] [stdout] test mechanism::model_builder::tests::sdf_geometry_hinge_simulation ... ok
[INFO] [stdout] test mechanism::validate::tests::joint_anchor_outside_parent ... ok
[INFO] [stdout] test mechanism::validate::tests::thin_wall_detected ... ok
[INFO] [stdout] test mechanism::validate::tests::thick_wall_passes ... ok
[INFO] [stdout] test mechanism::validate::tests::warning_hole_too_small ... ok
[INFO] [stdout] test mechanism::validate::tests::warning_insufficient_clearance ... ok
[INFO] [stdout] test mechanism::validate::tests::warning_joint_anchor_out_of_bounds ... ok
[INFO] [stdout] test mechanism::validate::tests::small_hole_detected ... ok
[INFO] [stdout] test mesher::tests::cuboid_mesh_valid ... ok
[INFO] [stdout] test mechanism::validate::tests::warning_feature_below_resolution ... ok
[INFO] [stdout] test mesher::tests::empty_bounds_returns_empty_mesh ... ok
[INFO] [stdout] test mesher::tests::cuboid_volume_approximation ... ok
[INFO] [stdout] test mesher::tests::interpolation_midpoint ... ok
[INFO] [stdout] test mechanism::validate::tests::warning_wall_too_thin ... ok
[INFO] [stdout] test mesher::tests::interpolation_quarter ... ok
[INFO] [stdout] test mesher::tests::sphere_pruning_ratio ... ok
[INFO] [stdout] test mesher::tests::sphere_mesh_valid ... ok
[INFO] [stdout] test mesher::tests::torus_mesh_valid ... ok
[INFO] [stdout] test mesher::tests::union_mesh_valid ... ok
[INFO] [stdout] test mesher::tests::sphere_volume_approximation ... ok
[INFO] [stdout] test mesher::tests::pipe_mesh_valid ... ok
[INFO] [stdout] test optim::tests::converges_on_flat_objective ... ok
[INFO] [stdout] test optim::tests::minimize_sphere_radius ... ok
[INFO] [stdout] test optim::tests::minimize_two_params ... ok
[INFO] [stdout] test optim::tests::no_params_returns_immediately ... ok
[INFO] [stdout] test optim::tests::respects_grad_tol ... ok
[INFO] [stdout] test param::tests::basic_add_get_set ... ok
[INFO] [stdout] test param::tests::clone_shares_store ... ok
[INFO] [stdout] test param::tests::duplicate_name_panics - should panic ... ok
[INFO] [stdout] test param::tests::multiple_params ... ok
[INFO] [stdout] test param::tests::set_nonexistent_panics - should panic ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_bend_passthrough ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_composed ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_elongate_passthrough ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_literal_zero ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_offset_two_params ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_repeat_passthrough ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_rotated ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_round_radius ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_scaled ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_shell_thickness ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_smooth_intersect_k ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_smooth_subtract_k ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_smooth_union_all_child ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_smooth_union_all_k ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_smooth_union_child_radius ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_smooth_union_k ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_sphere_radius ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_subtract ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_translated ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_twist_passthrough ... ok
[INFO] [stdout] test param_gradient::tests::param_grad_union_select ... ok
[INFO] [stdout] test param_gradient::tests::param_gradients_all ... ok
[INFO] [stdout] test sdf::tests::solid_csg_difference_eval_at_hollow_shell_probes ... ok
[INFO] [stdout] test sdf::tests::solid_sphere_eval_sign_convention ... ok
[INFO] [stdout] test sdf::tests::solid_sphere_grad_unit_outward_on_surface ... ok
[INFO] [stdout] test mesher_fidelity::dc_beats_mc_at_off_grid_sharp_convex_edges_but_not_exactly ... ok
[INFO] [stdout] test mechanism::model_builder::tests::the_model_carries_the_inertia_the_solid_has ... ok
[INFO] [stdout] test simplify::tests::simplify_already_small_is_noop ... ok
[INFO] [stdout] test simplify::tests::a_flat_solid_keeps_its_volume_through_tolerance_simplification ... ok
[INFO] [stdout] test mechanism::model_builder::tests::the_mass_matrix_is_complete_for_welds_and_for_multi_joint_bodies ... ok
[INFO] [stdout] test simplify::tests::simplify_dc_cuboid_preserves_corners ... ok
[INFO] [stdout] test mechanism::model_builder::tests::an_arm_released_into_a_bore_does_not_gain_energy ... ok
[INFO] [stdout] test simplify::tests::simplify_aggressive_90_percent ... ok
[INFO] [stdout] test simplify::tests::simplify_cuboid_preserves_sharp_corners ... ok
[INFO] [stdout] test mesher_fidelity::mc_wins_worst_case_dc_wins_average_on_smooth_surfaces ... ok
[INFO] [stdout] test mesher::tests::pipe_spline_mesh_valid ... ok
[INFO] [stdout] test mechanism::mjcf::tests::the_exported_mass_does_not_depend_on_the_mesh_resolution ... ok
[INFO] [stdout] test simplify::tests::simplify_composed_shape ... ok
[INFO] [stdout] test simplify::tests::simplify_sphere_preserves_topology ... ok
[INFO] [stdout] test solid::tests::bend_at_z_zero_matches_child ... ok
[INFO] [stdout] test simplify::tests::simplify_sphere_preserves_volume ... ok
[INFO] [stdout] test solid::tests::bend_center_stays_inside ... ok
[INFO] [stdout] test simplify::tests::simplify_sphere_reduces_face_count ... ok
[INFO] [stdout] test solid::tests::bend_bounds ... ok
[INFO] [stdout] test solid::tests::bend_rejects_infinity - should panic ... ok
[INFO] [stdout] test solid::tests::bend_zero_rate_identity ... ok
[INFO] [stdout] test solid::tests::capsule_zero_half_height_is_sphere ... ok
[INFO] [stdout] test solid::tests::capsule_rejects_bad_radius - should panic ... ok
[INFO] [stdout] test solid::tests::cone_rejects_bad_radius - should panic ... ok
[INFO] [stdout] test solid::tests::cuboid_rejects_zero_extent - should panic ... ok
[INFO] [stdout] test solid::tests::cylinder_rejects_bad_radius - should panic ... ok
[INFO] [stdout] test solid::tests::ellipsoid_rejects_bad_radii - should panic ... ok
[INFO] [stdout] test solid::tests::elongate_rejects_negative - should panic ... ok
[INFO] [stdout] test solid::tests::check_topology_separates_open_flipped_and_non_manifold ... ok
[INFO] [stdout] test solid::tests::from_sdf_composes_with_subtract ... ok
[INFO] [stdout] test solid::tests::from_sdf_plumbs_bounds_through_to_mesher ... ok
[INFO] [stdout] test solid::tests::from_sdf_preserves_sign_convention_of_wrapped_sdf ... ok
[INFO] [stdout] test simplify::tests::target_simplification_is_reproducible ... ok
[INFO] [stdout] test solid::tests::gyroid_infill_mesh_watertight ... ok
[INFO] [stdout] test solid::tests::bend_meshes_to_valid_geometry ... ok
[INFO] [stdout] test solid::tests::gyroid_is_infinite ... ok
[INFO] [stdout] test solid::tests::gyroid_known_zero_crossing ... ok
[INFO] [stdout] test solid::tests::gyroid_rejects_zero_scale - should panic ... ok
[INFO] [stdout] test solid::tests::gyroid_sign_correctness ... ok
[INFO] [stdout] test solid::tests::helix_bounds ... ok
[INFO] [stdout] test solid::tests::helix_known_interior_point ... ok
[INFO] [stdout] test solid::tests::gyroid_infill_cuboid_produces_mesh ... ok
[INFO] [stdout] test solid::tests::helix_rejects_zero_radius - should panic ... ok
[INFO] [stdout] test solid::tests::helix_rejects_zero_turns - should panic ... ok
[INFO] [stdout] test solid::tests::helix_sign_correctness ... ok
[INFO] [stdout] test solid::tests::infill_has_lattice_inside ... ok
[INFO] [stdout] test solid::tests::infill_preserves_outer_shell ... ok
[INFO] [stdout] test simplify::tests::tolerance_simplification_is_reproducible ... ok
[INFO] [stdout] test solid::tests::infill_rejects_nan_lattice_thickness - should panic ... ok
[INFO] [stdout] test solid::tests::infill_rejects_negative_wall - should panic ... ok
[INFO] [stdout] test solid::tests::infill_rejects_zero_scale - should panic ... ok
[INFO] [stdout] test solid::tests::integration_elongate_smooth_intersect_cuboid ... ok
[INFO] [stdout] test solid::tests::integration_multi_op_chain ... ok
[INFO] [stdout] test solid::tests::integration_pipe_union_sphere ... ok
[INFO] [stdout] test solid::tests::gyroid_intersected_with_cuboid_meshes ... ok
[INFO] [stdout] test solid::tests::integration_smooth_union_translated_spheres ... ok
[INFO] [stdout] test solid::tests::integration_subtract_rotated_cuboid_sphere ... ok
[INFO] [stdout] test solid::tests::integration_shell_mirror ... ok
[INFO] [stdout] test solid::tests::lipschitz_factor_sphere_is_1 ... ok
[INFO] [stdout] test solid::tests::lipschitz_factor_twisted_is_gt_1 ... ok
[INFO] [stdout] test simplify::tests::simplify_tolerance_stays_within_deviation ... ok
[INFO] [stdout] test solid::tests::loft_bounds ... ok
[INFO] [stdout] test solid::tests::loft_constant_radius_on_surface ... ok
[INFO] [stdout] test solid::tests::loft_constant_radius_sign ... ok
[INFO] [stdout] test solid::tests::lipschitz_factor_mesh_captures_twisted_features ... ok
[INFO] [stdout] test solid::tests::loft_rejects_single_station - should panic ... ok
[INFO] [stdout] test solid::tests::infill_volume_less_than_solid ... ok
[INFO] [stdout] test solid::tests::loft_rejects_unsorted_stations - should panic ... ok
[INFO] [stdout] test solid::tests::lipschitz_factor_used_in_mesh_resolution ... ok
[INFO] [stdout] test solid::tests::loft_rejects_zero_radius - should panic ... ok
[INFO] [stdout] test solid::tests::log_spiral_bounds ... ok
[INFO] [stdout] test solid::tests::loft_tapered_sign ... ok
[INFO] [stdout] test solid::tests::log_spiral_rejects_zero_a - should panic ... ok
[INFO] [stdout] test solid::tests::log_spiral_rejects_zero_turns - should panic ... ok
[INFO] [stdout] test solid::tests::log_spiral_sign_correctness ... ok
[INFO] [stdout] test solid::tests::mesh_simplified_reduces_faces ... ok
[INFO] [stdout] test simplify::tests::simplify_tolerance_preserves_topology ... ok
[INFO] [stdout] test solid::tests::loft_meshes_to_valid_geometry ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_perf_50mm_sphere ... ignored, benchmark — run with --ignored in release mode
[INFO] [stdout] test solid::tests::helix_meshes_to_valid_geometry ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_is_reproducible ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_keeps_its_faces_near_the_surface ... ok
[INFO] [stdout] test solid::tests::log_spiral_meshes_to_valid_geometry ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_is_watertight ... ok
[INFO] [stdout] test solid::tests::mirror_rejects_zero_normal - should panic ... ok
[INFO] [stdout] test solid::tests::offset_for_clearance ... ok
[INFO] [stdout] test solid::tests::offset_rejects_nan - should panic ... ok
[INFO] [stdout] test solid::tests::param_tests::literal_sphere_unchanged ... ok
[INFO] [stdout] test solid::tests::param_tests::multiple_params_same_store ... ok
[INFO] [stdout] test solid::tests::param_tests::param_blend_matches_literal ... ok
[INFO] [stdout] test solid::tests::param_tests::param_blend_radius ... ok
[INFO] [stdout] test solid::tests::param_tests::param_meshing ... ok
[INFO] [stdout] test solid::tests::param_tests::param_names_and_get ... ok
[INFO] [stdout] test solid::tests::param_tests::param_set_via_solid ... ok
[INFO] [stdout] test solid::tests::param_tests::param_sphere_batch ... ok
[INFO] [stdout] test solid::tests::param_tests::param_sphere_gradient ... ok
[INFO] [stdout] test solid::tests::param_tests::param_sphere_interval ... ok
[INFO] [stdout] test solid::tests::param_tests::param_sphere_matches_literal ... ok
[INFO] [stdout] test solid::tests::param_tests::param_sphere_radius ... ok
[INFO] [stdout] test solid::tests::param_tests::set_param_missing_panics - should panic ... ok
[INFO] [stdout] test solid::tests::pipe_rejects_empty - should panic ... ok
[INFO] [stdout] test solid::tests::pipe_rejects_nan_vertex - should panic ... ok
[INFO] [stdout] test solid::tests::pipe_rejects_negative_radius - should panic ... ok
[INFO] [stdout] test solid::tests::pipe_rejects_single_vertex - should panic ... ok
[INFO] [stdout] test solid::tests::pipe_rejects_zero_radius - should panic ... ok
[INFO] [stdout] test solid::tests::pipe_spline_rejects_inf_radius - should panic ... ok
[INFO] [stdout] test solid::tests::pipe_spline_rejects_single_point - should panic ... ok
[INFO] [stdout] test solid::tests::plane_rejects_zero_normal - should panic ... ok
[INFO] [stdout] test solid::tests::pruning_ratio_smooth_union_all_3_spheres ... ok
[INFO] [stdout] test solid::tests::pruning_ratio_subtract_spheres ... ok
[INFO] [stdout] test solid::tests::pruning_ratio_union_translated_spheres ... ok
[INFO] [stdout] test solid::tests::repeat_bounded_count_1_is_identity ... ok
[INFO] [stdout] test solid::tests::repeat_bounded_evaluates_all_copies ... ok
[INFO] [stdout] test solid::tests::repeat_bounded_has_finite_bounds ... ok
[INFO] [stdout] test solid::tests::repeat_bounded_meshes_to_valid_geometry ... ok
[INFO] [stdout] test solid::tests::repeat_bounded_rejects_zero_count - should panic ... ok
[INFO] [stdout] test solid::tests::repeat_bounded_rejects_zero_spacing - should panic ... ok
[INFO] [stdout] test solid::tests::repeat_evaluates_at_copy ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_preserves_volume ... ok
[INFO] [stdout] test solid::tests::repeat_is_infinite ... ok
[INFO] [stdout] test solid::tests::repeat_rejects_negative_spacing - should panic ... ok
[INFO] [stdout] test solid::tests::repeat_rejects_zero_spacing - should panic ... ok
[INFO] [stdout] test solid::tests::round_rejects_zero_radius - should panic ... ok
[INFO] [stdout] test solid::tests::scale_uniform_rejects_negative - should panic ... ok
[INFO] [stdout] test solid::tests::repeat_intersected_with_cuboid_meshes ... ok
[INFO] [stdout] test solid::tests::scale_uniform_rejects_zero - should panic ... ok
[INFO] [stdout] test solid::tests::schwarz_p_infill_mesh_watertight ... ok
[INFO] [stdout] test solid::tests::schwarz_p_infill_sphere_produces_mesh ... ok
[INFO] [stdout] test solid::tests::schwarz_p_is_infinite ... ok
[INFO] [stdout] test solid::tests::schwarz_p_known_zero_crossing ... ok
[INFO] [stdout] test solid::tests::schwarz_p_rejects_zero_thickness - should panic ... ok
[INFO] [stdout] test solid::tests::schwarz_p_sign_correctness ... ok
[INFO] [stdout] test solid::tests::sdf_grid_infinite_returns_none ... ok
[INFO] [stdout] test solid::tests::sdf_grid_matches_evaluate ... ok
[INFO] [stdout] test solid::tests::sdf_grid_rejects_resolution_1 - should panic ... ok
[INFO] [stdout] test solid::tests::sdf_grid_resolution_dimensions ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::capsule_returns_convex ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::cuboid_returns_convex ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::cylinder_returns_convex ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::intersect_of_convex_returns_convex ... ok
[INFO] [stdout] test solid::tests::schwarz_p_intersected_with_cuboid_meshes ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::shell_returns_concave ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::smooth_subtract_returns_concave ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::rotated_sphere_stays_sphere ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::smooth_union_of_spheres_returns_convex ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::sphere_returns_sphere_hint ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::subtract_returns_concave ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::translated_sphere_stays_sphere ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::translated_subtract_stays_concave ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::union_with_concave_child_returns_concave ... ok
[INFO] [stdout] test solid::tests::shell_rejects_negative_thickness - should panic ... ok
[INFO] [stdout] test solid::tests::shape_hint_tests::smooth_union_of_convex_returns_convex ... ok
[INFO] [stdout] test solid::tests::shell_then_translate ... ok
[INFO] [stdout] test solid::tests::shell_rejects_zero_thickness - should panic ... ok
[INFO] [stdout] test solid::tests::smooth_intersect_rejects_nan_k - should panic ... ok
[INFO] [stdout] test solid::tests::smooth_subtract_rejects_negative_k - should panic ... ok
[INFO] [stdout] test solid::tests::smooth_union_all_rejects_empty - should panic ... ok
[INFO] [stdout] test solid::tests::smooth_union_rejects_zero_k - should panic ... ok
[INFO] [stdout] test solid::tests::smooth_union_variable_constant_k_matches_smooth_union ... ok
[INFO] [stdout] test solid::tests::smooth_union_variable_far_from_blend_matches_sharp ... ok
[INFO] [stdout] test solid::tests::smooth_union_variable_is_cloneable ... ok
[INFO] [stdout] test solid::tests::smooth_union_variable_larger_k_adds_more_material ... ok
[INFO] [stdout] test solid::tests::smooth_union_variable_meshes ... ok
[INFO] [stdout] test solid::tests::smooth_union_variable_rejects_nan_max_k - should panic ... ok
[INFO] [stdout] test solid::tests::smooth_union_variable_rejects_zero_max_k - should panic ... ok
[INFO] [stdout] test solid::tests::solid_cuboid_evaluate ... ok
[INFO] [stdout] test solid::tests::solid_elongate_method ... ok
[INFO] [stdout] test solid::tests::solid_elongate_zero_is_identity ... ok
[INFO] [stdout] test solid::tests::solid_intersect_method ... ok
[INFO] [stdout] test solid::tests::solid_interval_for_scale ... ok
[INFO] [stdout] test solid::tests::solid_interval_for_shell ... ok
[INFO] [stdout] test solid::tests::solid_interval_for_translate ... ok
[INFO] [stdout] test solid::tests::solid_interval_for_union ... ok
[INFO] [stdout] test solid::tests::solid_method_chaining ... ok
[INFO] [stdout] test solid::tests::solid_mirror_method ... ok
[INFO] [stdout] test solid::tests::solid_mirror_normalizes ... ok
[INFO] [stdout] test solid::tests::solid_offset_method ... ok
[INFO] [stdout] test solid::tests::solid_pipe_composes_with_translate ... ok
[INFO] [stdout] test solid::tests::solid_pipe_evaluate ... ok
[INFO] [stdout] test solid::tests::solid_pipe_spline_evaluate ... ok
[INFO] [stdout] test solid::tests::solid_plane_normalizes ... ok
[INFO] [stdout] test solid::tests::solid_rotate_method ... ok
[INFO] [stdout] test solid::tests::solid_round_method ... ok
[INFO] [stdout] test solid::tests::solid_scale_uniform_method ... ok
[INFO] [stdout] test solid::tests::solid_shell_method ... ok
[INFO] [stdout] test solid::tests::solid_smooth_union_all_method ... ok
[INFO] [stdout] test solid::tests::solid_smooth_union_method ... ok
[INFO] [stdout] test solid::tests::solid_sphere_evaluate ... ok
[INFO] [stdout] test solid::tests::solid_sphere_interval ... ok
[INFO] [stdout] test solid::tests::solid_subtract_method ... ok
[INFO] [stdout] test solid::tests::solid_translate_method ... ok
[INFO] [stdout] test solid::tests::solid_union_method ... ok
[INFO] [stdout] test solid::tests::solid_user_fn_composes_with_booleans ... ok
[INFO] [stdout] test solid::tests::solid_user_fn_is_cloneable ... ok
[INFO] [stdout] test solid::tests::solid_user_fn_method ... ok
[INFO] [stdout] test solid::tests::solid_user_fn_with_interval_method ... ok
[INFO] [stdout] test solid::tests::sphere_rejects_infinity - should panic ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_smooth_union ... ok
[INFO] [stdout] test solid::tests::sphere_rejects_nan - should panic ... ok
[INFO] [stdout] test solid::tests::sphere_rejects_negative_radius - should panic ... ok
[INFO] [stdout] test solid::tests::superellipsoid_bounds ... ok
[INFO] [stdout] test solid::tests::sphere_rejects_zero_radius - should panic ... ok
[INFO] [stdout] test solid::tests::superellipsoid_octahedron_sign ... ok
[INFO] [stdout] test solid::tests::superellipsoid_on_surface ... ok
[INFO] [stdout] test solid::tests::superellipsoid_rejects_zero_n1 - should panic ... ok
[INFO] [stdout] test solid::tests::superellipsoid_rejects_zero_radii - should panic ... ok
[INFO] [stdout] test solid::tests::superellipsoid_sign_correctness ... ok
[INFO] [stdout] test solid::tests::torus_rejects_bad_major - should panic ... ok
[INFO] [stdout] test solid::tests::twist_bounds ... ok
[INFO] [stdout] test solid::tests::twist_meshes_to_valid_geometry ... ok
[INFO] [stdout] test solid::tests::twist_preserves_cylinder_symmetry ... ok
[INFO] [stdout] test solid::tests::twist_rejects_infinity - should panic ... ok
[INFO] [stdout] test solid::tests::twist_zero_rate_identity ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_accepts_arc_dyn_sdf_for_repeated_calls ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_cavity_floor_outline_shrunk_by_t ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_cavity_iso_zero_on_cap_plane_at_body_center ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_empty_caps_byte_identical_to_offset ... ok
[INFO] [stdout] test solid::tests::superellipsoid_meshes_to_valid_geometry ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_multi_cap_clips_all_caps ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_offset_zero_returns_body_clipped_by_caps ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_outer_floor_outline_extended_by_t ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_outer_iso_zero_on_cap_plane_at_body_center ... ok
[INFO] [stdout] test solid_layered::tests::unsigned_rind_sdf_eval_returns_unsigned_distance_minus_half_thickness ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_within_deviation ... ok
[INFO] [stdout] test solid::tests::a_box_whose_dimensions_are_not_round_numbers_still_simplifies ... ok
[INFO] [stdout] test solid_layered::tests::pinned_floor_shell_meshes_cleanly_via_solid_mesh ... ok
[INFO] [stdout] test solid::tests::simplification_never_adds_an_inverted_face ... ok
[INFO] [stdout] test solid::tests::every_bounded_primitive_simplifies_to_clean_geometry ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_subtract ... ok
[INFO] [stdout] test solid::tests::mesh_to_tolerance_winds_every_face_outward ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 842 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 42.70s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests cf_design
[INFO] [stdout] 
[INFO] [stdout] running 22 tests
[INFO] [stdout] test src/mechanism/builder.rs - mechanism::builder (line 9) ... ok
[INFO] [stdout] test src/mechanism/material.rs - mechanism::material::Material (line 80) ... ok
[INFO] [stdout] test src/mechanism/shapes.rs - mechanism::shapes::ShapeMode (line 24) ... ok
[INFO] [stdout] test src/mechanism/templates.rs - mechanism::templates::bracket (line 242) ... ok
[INFO] [stdout] test src/mechanism/joint.rs - mechanism::joint::JointDef (line 70) ... ok
[INFO] [stdout] test src/mechanism/print.rs - mechanism::print::PrintProfile (line 13) ... ok
[INFO] [stdout] test src/lib.rs - (line 10) ... ok
[INFO] [stdout] test src/mechanism/actuator.rs - mechanism::actuator::ActuatorDef (line 30) ... ok
[INFO] [stdout] test src/mechanism/linkage.rs - mechanism::linkage::LinkageDef (line 47) ... ok
[INFO] [stdout] test src/mechanism/templates.rs - mechanism::templates::finger (line 45) ... ok
[INFO] [stdout] test src/mechanism/templates.rs - mechanism::templates::link (line 150) ... ok
[INFO] [stdout] test src/mechanism/part.rs - mechanism::part::Part (line 164) ... ok
[INFO] [stdout] test src/mechanism/tendon.rs - mechanism::tendon::TendonDef (line 81) ... ok
[INFO] [stdout] test src/solid/ops.rs - solid::ops::Solid::repeat (line 441) ... ignored
[INFO] [stdout] test src/solid/primitives.rs - solid::primitives::Solid::gyroid (line 395) ... ignored
[INFO] [stdout] test src/solid/primitives.rs - solid::primitives::Solid::schwarz_p (line 425) ... ignored
[INFO] [stdout] test src/mechanism/units.rs - mechanism::units::model_stiffness_from_n_m_per_rad (line 49) ... ok
[INFO] [stdout] test src/mechanism/units.rs - mechanism::units::model_stiffness_from_n_mm_per_rad (line 64) ... ok
[INFO] [stdout] test src/param.rs - param::ParamStore (line 16) ... ok
[INFO] [stdout] test src/optim.rs - optim::minimize_fd (line 89) ... ok
[INFO] [stdout] test src/mechanism/templates.rs - mechanism::templates::link_infilled (line 190) ... ok
[INFO] [stdout] test src/mechanism/tendon.rs - mechanism::tendon::TendonWaypoint (line 27) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 19 passed; 0 failed; 3 ignored; 0 measured; 0 filtered out; finished in 0.02s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.73s; merged doctests compilation took 0.71s
[INFO] running `Command { std: "docker" "inspect" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d", kill_on_drop: false }`
[INFO] [stdout] 9f186f4c51e1bbb4a45dec62c1e81676c71181bcd76017afe6f64e503ff33d6d
