[INFO] fetching crate cortenforge-sim-ml-chassis 0.9.0...
[INFO] testing cortenforge-sim-ml-chassis-0.9.0 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate cortenforge-sim-ml-chassis 0.9.0 into /workspace/builds/worker-4-tc2/source
[INFO] started tweaking crates.io crate cortenforge-sim-ml-chassis 0.9.0
[INFO] finished tweaking crates.io crate cortenforge-sim-ml-chassis 0.9.0
[INFO] tweaked toml for crates.io crate cortenforge-sim-ml-chassis 0.9.0 written to /workspace/builds/worker-4-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate cortenforge-sim-ml-chassis 0.9.0 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate cortenforge-sim-ml-chassis 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.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091
[INFO] running `Command { std: "docker" "start" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091", 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" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091", 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" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unicode-ident v1.0.24
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling libc v0.2.183
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling zerocopy v0.8.47
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling typenum v1.20.1
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling serde_json v1.0.150
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling log v0.4.32
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling rand_core v0.9.5
[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 serde_derive v1.0.228
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.2
[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-sim-core v0.9.0
[INFO] [stderr]    Compiling cortenforge-sim-ml-chassis v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 04s
[INFO] running `Command { std: "docker" "inspect" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091", 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" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling nalgebra v0.34.2
[INFO] [stderr]    Compiling cortenforge-sim-types v0.9.0
[INFO] [stderr]    Compiling cortenforge-geometry v0.9.0
[INFO] [stderr]    Compiling cortenforge-sim-core v0.9.0
[INFO] [stderr]    Compiling cortenforge-sim-ml-chassis v0.9.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091", 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" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.12s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/cortenforge-sim-ml-chassis/7f5badde1073873d/out/sim_ml_chassis-7f5badde1073873d)
[INFO] [stdout] 
[INFO] [stdout] running 361 tests
[INFO] [stdout] test algorithm::tests::training_budget_copy ... ok
[INFO] [stdout] test artifact::tests::descriptor_autograd_value ... ok
[INFO] [stdout] test algorithm::tests::boxed_algorithm_is_send ... ok
[INFO] [stdout] test artifact::tests::descriptor_autograd_stochastic_policy ... ok
[INFO] [stdout] test artifact::tests::checkpoint_save_load_round_trip ... ok
[INFO] [stdout] test artifact::tests::descriptor_linear_value ... ok
[INFO] [stdout] test artifact::tests::descriptor_mlp_policy ... ok
[INFO] [stdout] test algorithm::tests::epoch_metrics_debug_clone ... ok
[INFO] [stdout] test artifact::tests::descriptor_linear_policy ... ok
[INFO] [stdout] test artifact::tests::descriptor_autograd_q ... ok
[INFO] [stdout] test artifact::tests::descriptor_linear_q ... ok
[INFO] [stdout] test artifact::tests::descriptor_linear_stochastic_policy ... ok
[INFO] [stdout] test artifact::tests::descriptor_autograd_policy ... ok
[INFO] [stdout] test artifact::tests::descriptor_mlp_value ... ok
[INFO] [stdout] test artifact::tests::network_snapshot_serde_round_trip ... ok
[INFO] [stdout] test artifact::tests::provenance_chain_round_trips ... ok
[INFO] [stdout] test artifact::tests::to_differentiable_policy_round_trip ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_linear_with_hidden_dims ... ok
[INFO] [stdout] test artifact::tests::policy_descriptor_to_network_descriptor ... ok
[INFO] [stdout] test artifact::tests::round_trip_mlp_policy ... ok
[INFO] [stdout] test artifact::tests::to_stochastic_policy_rejects_non_stochastic ... ok
[INFO] [stdout] test artifact::tests::descriptor_mlp_q ... ok
[INFO] [stdout] test artifact::tests::round_trip_autograd_stochastic_policy ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_obs_scale_mismatch ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_nan_final_reward ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_future_version ... ok
[INFO] [stdout] test artifact::tests::optimizer_snapshot_serde_round_trip ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_param_count_mismatch ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_nan_params ... ok
[INFO] [stdout] test artifact::tests::network_snapshot_to_q_function ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_mlp_empty_hidden ... ok
[INFO] [stdout] test artifact::tests::with_provenance_attaches ... ok
[INFO] [stdout] test autograd::layers::tests::linear_relu_gradient_matches_fd ... ok
[INFO] [stdout] test artifact::tests::network_kind_serializes_as_string ... ok
[INFO] [stdout] test artifact::tests::validate_rejects_mlp_stochastic ... ok
[INFO] [stdout] test autograd::layers::tests::linear_tanh_matches_mlp_forward ... ok
[INFO] [stdout] test autograd::layers::tests::gaussian_log_prob_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::layers::tests::linear_raw_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::layers::tests::gaussian_log_prob_matches_hand_coded ... ok
[INFO] [stdout] test autograd::layers::tests::linear_raw_output_unbounded ... ok
[INFO] [stdout] test autograd::layers::tests::linear_tanh_output_in_range ... ok
[INFO] [stdout] test autograd::layers::tests::mse_loss_batch_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::layers::tests::linear_tanh_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::layers::tests::mse_loss_value_correct ... ok
[INFO] [stdout] test artifact::tests::to_stochastic_policy_round_trip ... ok
[INFO] [stdout] test artifact::tests::network_snapshot_to_value_fn ... ok
[INFO] [stdout] test autograd::policy::tests::forward_vjp_matches_mlp ... ok
[INFO] [stdout] test artifact::tests::round_trip_save_load ... ok
[INFO] [stdout] test artifact::tests::round_trip_linear_stochastic_policy ... ok
[INFO] [stdout] test autograd::policy::tests::log_prob_gradient_matches_mlp ... ok
[INFO] [stdout] test autograd::policy::tests::forward_matches_mlp ... ok
[INFO] [stdout] test autograd::tape::tests::affine_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::policy::tests::stochastic_forward_stochastic_returns_log_std ... ok
[INFO] [stdout] test autograd::policy::tests::stochastic_log_prob_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::policy::tests::xavier_init_nonzero_weights ... ok
[INFO] [stdout] test artifact::tests::round_trip_linear_policy ... ok
[INFO] [stdout] test autograd::policy::tests::params_roundtrip ... ok
[INFO] [stdout] test artifact::tests::round_trip_autograd_policy ... ok
[INFO] [stdout] test autograd::policy::tests::n_params_matches_mlp ... ok
[INFO] [stdout] test autograd::policy::tests::stochastic_params_roundtrip ... ok
[INFO] [stdout] test autograd::tape::tests::custom_vjp_op_id ... ok
[INFO] [stdout] test autograd::tape::tests::custom_vjp_scale_by_k ... ok
[INFO] [stdout] test autograd::policy::tests::two_layer_log_prob_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::mean_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::mul_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::fan_out_mul_accumulates ... ok
[INFO] [stdout] test autograd::tape::tests::param_tensor_roundtrip ... ok
[INFO] [stdout] test autograd::tape::tests::custom_vjp_composes_with_primitives ... ok
[INFO] [stdout] test autograd::tape::tests::exp_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::neg_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::chain_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::constant_has_zero_grad ... ok
[INFO] [stdout] test autograd::tape::tests::fan_out_accumulates ... ok
[INFO] [stdout] test autograd::policy::tests::stochastic_entropy_positive ... ok
[INFO] [stdout] test autograd::policy::tests::relu_two_layer_log_prob_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::relu_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::scalar_sugar_agrees_with_tensor_api ... ok
[INFO] [stdout] test autograd::tape::tests::add_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::scalar_grad_panics_on_non_scalar - should panic ... ok
[INFO] [stdout] test autograd::tape::tests::ln_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::policy::tests::stochastic_reparameterized_vjp_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::scalar_value_panics_on_non_scalar - should panic ... ok
[INFO] [stdout] test autograd::tape::tests::sub_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::tensor_add_panics_on_shape_mismatch - should panic ... ok
[INFO] [stdout] test autograd::tape::tests::tensor_mul_elementwise_gradient ... ok
[INFO] [stdout] test autograd::value::tests::q_params_roundtrip ... ok
[INFO] [stdout] test autograd::value::tests::value_mse_gradient_matches_mlp ... ok
[INFO] [stdout] test autograd::value::tests::value_n_params_matches_mlp ... ok
[INFO] [stdout] test autograd::value::tests::value_params_roundtrip ... ok
[INFO] [stdout] test autograd::layers::tests::mse_loss_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::square_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::tape::tests::sum_gradient_matches_fd ... ok
[INFO] [stdout] test autograd::value::tests::q_action_gradient_matches_mlp ... ok
[INFO] [stdout] test best_tracker::tests::to_artifact_builds_correctly ... ok
[INFO] [stdout] test best_tracker::tests::maybe_update_skips_nan ... ok
[INFO] [stdout] test autograd::tape::tests::backward_only_reaches_ancestors ... ok
[INFO] [stdout] test autograd::value::tests::value_forward_matches_mlp ... ok
[INFO] [stdout] test autograd::tape::tests::tanh_gradient_matches_fd ... ok
[INFO] [stdout] test best_tracker::tests::from_checkpoint_with_none_params_falls_back ... ok
[INFO] [stdout] test best_tracker::tests::checkpoint_pre_training_maps_neg_infinity_to_none ... ok
[INFO] [stdout] test best_tracker::tests::from_checkpoint_with_mismatched_length_falls_back ... ok
[INFO] [stdout] test competition::tests::assert_finite_catches_nan - should panic ... ok
[INFO] [stdout] test competition::tests::assert_finite_passes ... ok
[INFO] [stdout] test competition::tests::assert_finite_catches_inf - should panic ... ok
[INFO] [stdout] test best_tracker::tests::maybe_update_improves ... ok
[INFO] [stdout] test competition::tests::competition_artifacts_have_provenance ... ok
[INFO] [stdout] test autograd::value::tests::q_forward_matches_mlp ... ok
[INFO] [stdout] test autograd::value::tests::q_mse_gradient_matches_mlp ... ok
[INFO] [stdout] test competition::tests::competition_empty_builders ... ok
[INFO] [stdout] test autograd::value::tests::q_n_params_matches_mlp ... ok
[INFO] [stdout] test best_tracker::tests::new_starts_at_neg_infinity ... ok
[INFO] [stdout] test competition::tests::describe_none_for_missing_pair ... ok
[INFO] [stdout] test competition::tests::competition_empty_tasks ... ok
[INFO] [stdout] test autograd::tape::tests::value_reads_forward_result ... ok
[INFO] [stdout] test best_tracker::tests::checkpoint_round_trip ... ok
[INFO] [stdout] test autograd::tape::tests::tensor_add_elementwise_gradient ... ok
[INFO] [stdout] test competition::tests::competition_runs_all_pairs ... ok
[INFO] [stdout] test competition::tests::competition_multiple_tasks ... ok
[INFO] [stdout] test competition::tests::provenance_best_fields_serde_round_trip ... ok
[INFO] [stdout] test competition::tests::competition_result_for_task ... ok
[INFO] [stdout] test competition::tests::competition_save_artifacts ... ok
[INFO] [stdout] test competition::tests::run_replicates_preserves_strict_gt_tie_breaking ... ok
[INFO] [stdout] test competition::tests::replicate_best_rewards_silent_filter_out ... ok
[INFO] [stdout] test competition::tests::run_result_empty_metrics ... ok
[INFO] [stdout] test competition::tests::run_result_final_reward ... ok
[INFO] [stdout] test competition::tests::run_result_best_reward_matches_manual_scan ... ok
[INFO] [stdout] test competition::tests::run_still_works_single_seed ... ok
[INFO] [stdout] test competition::tests::run_replicates_replicate_index_monotonic ... ok
[INFO] [stdout] test competition::tests::competition_result_for_algorithm ... ok
[INFO] [stdout] test competition::tests::save_artifacts_writes_best_files ... ok
[INFO] [stdout] test competition::tests::seed_summary_from_rewards_n1_returns_zero_stddev ... ok
[INFO] [stdout] test competition::tests::seed_summary_from_rewards_empty_returns_none ... ok
[INFO] [stdout] test competition::tests::validate_rejects_non_finite_best_reward ... ok
[INFO] [stdout] test env::tests::builder_missing_action_space ... ok
[INFO] [stdout] test competition::tests::replicate_final_rewards_flat_filter ... ok
[INFO] [stdout] test env::tests::builder_missing_done ... ok
[INFO] [stdout] test env::tests::builder_missing_reward ... ok
[INFO] [stdout] test env::tests::builder_missing_obs_space ... ok
[INFO] [stdout] test env::tests::builder_missing_truncated ... ok
[INFO] [stdout] test env::tests::model_and_data_accessible ... ok
[INFO] [stdout] test env::tests::builder_zero_sub_steps ... ok
[INFO] [stdout] test env::tests::done_triggers_at_threshold ... ok
[INFO] [stdout] test env::tests::reset_returns_initial_observation ... ok
[INFO] [stdout] test env::tests::on_reset_hook_modifies_state ... ok
[INFO] [stdout] test env::tests::reward_is_correct ... ok
[INFO] [stdout] test env::tests::early_termination_stops_sub_stepping ... ok
[INFO] [stdout] test env::tests::step_recomputes_sensordata ... ok
[INFO] [stdout] test competition::tests::replicate_best_rewards_flat_filter ... ok
[INFO] [stdout] test competition::tests::run_replicates_fresh_env_per_pair ... ok
[INFO] [stdout] test competition::tests::find_replicate_returns_specific_seed ... ok
[INFO] [stdout] test competition::tests::competition_best_for_task ... ok
[INFO] [stdout] test env::tests::truncated_triggers_at_time_limit ... ok
[INFO] [stdout] test gae::tests::gae_done_zeroes_bootstrap ... ok
[INFO] [stdout] test gae::tests::gae_empty_trajectory ... ok
[INFO] [stdout] test gae::tests::gae_lambda_one_matches_discounted_returns ... ok
[INFO] [stdout] test gae::tests::gae_lambda_zero_is_td_residual ... ok
[INFO] [stdout] test gae::tests::gae_mismatched_lengths_panics - should panic ... ok
[INFO] [stdout] test env::tests::sub_steps_advance_time_correctly ... ok
[INFO] [stdout] test gae::tests::gae_value_targets_are_advantages_plus_values ... ok
[INFO] [stdout] test linear::tests::linear_policy_forward_in_tanh_range ... ok
[INFO] [stdout] test linear::tests::linear_policy_forward_vjp_batch_matches_loop ... ok
[INFO] [stdout] test env::tests::observe_matches_extract ... ok
[INFO] [stdout] test env::tests::on_reset_forward_recomputes_derived ... ok
[INFO] [stdout] test linear::tests::linear_policy_forward_batch_matches_loop ... ok
[INFO] [stdout] test gae::tests::gae_single_step ... ok
[INFO] [stdout] test linear::tests::linear_policy_log_prob_gradient_matches_fd ... ok
[INFO] [stdout] test linear::tests::linear_policy_forward_vjp_matches_fd ... ok
[INFO] [stdout] test competition::tests::describe_returns_seed_summary ... ok
[INFO] [stdout] test gae::tests::gae_truncated_bootstraps ... ok
[INFO] [stdout] test linear::tests::batch_empty_returns_empty_or_zeros ... ok
[INFO] [stdout] test linear::tests::linear_policy_matches_ppo_example_math ... ok
[INFO] [stdout] test linear::tests::linear_q_action_gradient_batch_matches_loop ... ok
[INFO] [stdout] test linear::tests::linear_policy_n_params ... ok
[INFO] [stdout] test linear::tests::linear_policy_params_roundtrip ... ok
[INFO] [stdout] test competition::tests::run_replicates_verbose_smoke ... ok
[INFO] [stdout] test linear::tests::linear_q_mse_gradient_batch_matches_loop ... ok
[INFO] [stdout] test linear::tests::linear_q_n_params ... ok
[INFO] [stdout] test linear::tests::linear_q_set_params_wrong_length - should panic ... ok
[INFO] [stdout] test competition::tests::run_replicates_parallel_bit_identical_to_isolated ... ok
[INFO] [stdout] test linear::tests::linear_value_mse_gradient_matches_fd ... ok
[INFO] [stdout] test linear::tests::linear_q_action_gradient_matches_fd ... ok
[INFO] [stdout] test linear::tests::linear_q_params_roundtrip ... ok
[INFO] [stdout] test linear::tests::linear_q_mse_gradient_matches_fd ... ok
[INFO] [stdout] test linear::tests::linear_policy_set_params_wrong_length - should panic ... ok
[INFO] [stdout] test linear::tests::linear_value_forward_batch_matches_loop ... ok
[INFO] [stdout] test linear::tests::linear_value_mse_gradient_batch_matches_loop ... ok
[INFO] [stdout] test linear::tests::linear_value_n_params ... ok
[INFO] [stdout] test mlp::tests::mlp_batch_empty_returns_empty_or_zeros ... ok
[INFO] [stdout] test linear::tests::linear_q_forward_batch_matches_loop ... ok
[INFO] [stdout] test linear::tests::linear_value_params_roundtrip ... ok
[INFO] [stdout] test linear::tests::linear_value_set_params_wrong_length - should panic ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_n_params ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_log_prob_gradient_matches_fd ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_params_roundtrip ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_forward_batch_matches_loop ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_forward_in_tanh_range ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_set_params_wrong_length - should panic ... ok
[INFO] [stdout] test mlp::tests::mlp_q_action_gradient_matches_fd ... ok
[INFO] [stdout] test mlp::tests::mlp_q_mse_gradient_batch_matches_loop ... ok
[INFO] [stdout] test mlp::tests::mlp_q_mse_gradient_matches_fd ... ok
[INFO] [stdout] test mlp::tests::mlp_q_params_roundtrip ... ok
[INFO] [stdout] test mlp::tests::mlp_q_n_params ... ok
[INFO] [stdout] test mlp::tests::mlp_q_set_params_wrong_length - should panic ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_forward_vjp_batch_matches_loop ... ok
[INFO] [stdout] test mlp::tests::mlp_policy_forward_vjp_matches_fd ... ok
[INFO] [stdout] test mlp::tests::mlp_q_action_gradient_batch_matches_loop ... ok
[INFO] [stdout] test mlp::tests::mlp_value_n_params ... ok
[INFO] [stdout] test mlp::tests::mlp_value_params_roundtrip ... ok
[INFO] [stdout] test mlp::tests::mlp_value_set_params_wrong_length - should panic ... ok
[INFO] [stdout] test optimizer::tests::adam_ascent_and_descent_are_opposite ... ok
[INFO] [stdout] test optimizer::tests::adam_convenience_defaults ... ok
[INFO] [stdout] test optimizer::tests::adam_gradient_clipping ... ok
[INFO] [stdout] test optimizer::tests::adam_no_clipping_when_infinity ... ok
[INFO] [stdout] test mlp::tests::mlp_q_forward_batch_matches_loop ... ok
[INFO] [stdout] test mlp::tests::mlp_value_forward_batch_matches_loop ... ok
[INFO] [stdout] test optimizer::tests::adam_converges_on_quadratic ... ok
[INFO] [stdout] test optimizer::tests::adam_set_params_wrong_length_panics - should panic ... ok
[INFO] [stdout] test optimizer::tests::optimizer_snapshot_preserves_momentum ... ok
[INFO] [stdout] test optimizer::tests::optimizer_snapshot_round_trip ... ok
[INFO] [stdout] test optimizer::tests::step_in_place_converges_on_quadratic ... ok
[INFO] [stdout] test optimizer::tests::step_in_place_matches_step ... ok
[INFO] [stdout] test optimizer::tests::step_in_place_multi_step_momentum ... ok
[INFO] [stdout] test optimizer::tests::step_in_place_wrong_gradient_length_panics - should panic ... ok
[INFO] [stdout] test mlp::tests::mlp_value_mse_gradient_batch_matches_loop ... ok
[INFO] [stdout] test optimizer::tests::step_in_place_wrong_params_length_panics - should panic ... ok
[INFO] [stdout] test policy::tests::boxed_policy_is_send_sync ... ok
[INFO] [stdout] test optimizer::tests::adam_step_wrong_gradient_length_panics - should panic ... ok
[INFO] [stdout] test replay_buffer::tests::ring_buffer_wraps ... ok
[INFO] [stdout] test competition::tests::seed_summary_from_rewards_bessel_correction ... ok
[INFO] [stdout] test replay_buffer::tests::push_wrong_action_length_panics - should panic ... ok
[INFO] [stdout] test replay_buffer::tests::push_and_len ... ok
[INFO] [stdout] test replay_buffer::tests::sample_from_underfilled_panics - should panic ... ok
[INFO] [stdout] test optimizer::tests::adam_set_params_roundtrip ... ok
[INFO] [stdout] test optimizer::tests::adam_ascent_moves_away_from_zero ... ok
[INFO] [stdout] test env::tests::step_advances_time ... ok
[INFO] [stdout] test mlp::tests::mlp_value_mse_gradient_matches_fd ... ok
[INFO] [stdout] test optimizer::tests::boxed_optimizer_is_send ... ok
[INFO] [stdout] test replay_buffer::tests::push_wrong_obs_length_panics - should panic ... ok
[INFO] [stdout] test env::tests::step_returns_step_result ... ok
[INFO] [stdout] test optimizer::tests::adam_descent_moves_toward_zero ... ok
[INFO] [stdout] test replay_buffer::tests::sample_reproduces_pushed_data ... ok
[INFO] [stdout] test competition::tests::run_replicates_flat_shape ... ok
[INFO] [stdout] test replay_buffer::tests::sample_returns_correct_shape ... ok
[INFO] [stdout] test space::tests::action_ctrl_range_out_of_bounds ... ok
[INFO] [stdout] test rollout::tests::rollout_collects_all_envs ... ok
[INFO] [stdout] test rollout::tests::rollout_stops_on_done ... ok
[INFO] [stdout] test space::tests::action_mocap_pos_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::action_mocap_quat_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::action_qfrc_applied_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::action_spec_has_ctrl_bounds ... ok
[INFO] [stdout] test rollout::tests::act_fn_receives_correct_env_index ... ok
[INFO] [stdout] test space::tests::action_xfrc_applied_range_out_of_bounds ... ok
[INFO] [stdout] test rollout::tests::rollout_stores_terminal_obs ... ok
[INFO] [stdout] test rollout::tests::rollout_records_observations_and_actions ... ok
[INFO] [stdout] test competition::tests::run_replicates_returns_positionally_first_error ... ok
[INFO] [stdout] test env::tests::sub_steps_produce_same_final_state ... ok
[INFO] [stdout] test space::tests::all_qpos_expands_to_full_range ... ok
[INFO] [stdout] test optimizer::tests::optimizer_config_is_copy ... ok
[INFO] [stdout] test space::tests::apply_batch_clamps_ctrl ... ok
[INFO] [stdout] test rollout::tests::rollout_truncates_at_max_steps ... ok
[INFO] [stdout] test space::tests::apply_batch_matches_individual_applies ... ok
[INFO] [stdout] test space::tests::action_dim_sums_injectors ... ok
[INFO] [stdout] test space::tests::action_spec_non_ctrl_unbounded ... ok
[INFO] [stdout] test space::tests::apply_ctrl_clamping ... ok
[INFO] [stdout] test space::tests::apply_ctrl_within_range_not_clamped ... ok
[INFO] [stdout] test space::tests::all_qvel_expands_to_full_range ... ok
[INFO] [stdout] test space::tests::all_sensordata_expands_to_full_range ... ok
[INFO] [stdout] test space::tests::apply_mocap_pos_roundtrip ... ok
[INFO] [stdout] test space::tests::apply_mocap_quat_normalizes ... ok
[INFO] [stdout] test space::tests::apply_qfrc_applied_roundtrip ... ok
[INFO] [stdout] test space::tests::extract_batch_matches_individual_extracts ... ok
[INFO] [stdout] test space::tests::actuator_force_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::all_ctrl_expands_to_full_range ... ok
[INFO] [stdout] test space::tests::apply_ctrl_roundtrip ... ok
[INFO] [stdout] test space::tests::apply_mocap_quat_roundtrip ... ok
[INFO] [stdout] test space::tests::cvel_body_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::apply_xfrc_applied_roundtrip ... ok
[INFO] [stdout] test space::tests::extract_actuator_force ... ok
[INFO] [stdout] test space::tests::ctrl_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::extract_batch_shape_and_values ... ok
[INFO] [stdout] test space::tests::extract_qpos ... ok
[INFO] [stdout] test space::tests::extract_energy ... ok
[INFO] [stdout] test space::tests::extract_qvel ... ok
[INFO] [stdout] test space::tests::f64_to_f32_cast_matches_direct_access ... ok
[INFO] [stdout] test space::tests::extract_sensor_by_name ... ok
[INFO] [stdout] test space::tests::extract_contact_count ... ok
[INFO] [stdout] test space::tests::multiple_extractors_concatenate_in_order ... ok
[INFO] [stdout] test space::tests::f32_to_f64_cast_uses_from ... ok
[INFO] [stdout] test space::tests::extract_xpos ... ok
[INFO] [stdout] test space::tests::extract_cvel ... ok
[INFO] [stdout] test space::tests::extract_sensordata ... ok
[INFO] [stdout] test space::tests::extract_ctrl ... ok
[INFO] [stdout] test space::tests::qvel_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::qpos_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::extract_qacc ... ok
[INFO] [stdout] test space::tests::extract_site_xpos ... ok
[INFO] [stdout] test space::tests::extract_qfrc_constraint ... ok
[INFO] [stdout] test space::tests::extract_time ... ok
[INFO] [stdout] test space::tests::extract_xquat ... ok
[INFO] [stdout] test task::tests::builder_obs_scale_mismatch ... ok
[INFO] [stdout] test space::tests::segments_labels_offsets_dims ... ok
[INFO] [stdout] test stats::tests::diagonal_independence_sums_per_dim ... ok
[INFO] [stdout] test space::tests::site_xpos_range_out_of_bounds ... ok
[INFO] [stdout] test tensor::tests::as_mut_slice_modifies_data ... ok
[INFO] [stdout] test task::tests::task_config_debug_clone ... ok
[INFO] [stdout] test tensor::tests::from_f64_slice_casts_correctly ... ok
[INFO] [stdout] test task::tests::from_build_fn_propagates_env_error ... ok
[INFO] [stdout] test tensor::tests::clone_and_eq ... ok
[INFO] [stdout] test tensor::tests::from_slice_panics_on_mismatch - should panic ... ok
[INFO] [stdout] test space::tests::spec_matches_dim ... ok
[INFO] [stdout] test tensor::tests::from_f64_slice_panics_on_mismatch - should panic ... ok
[INFO] [stdout] test task::tests::task_config_is_send_sync ... ok
[INFO] [stdout] test space::tests::sensor_not_found_returns_error ... ok
[INFO] [stdout] test space::tests::xpos_body_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::sensordata_range_out_of_bounds ... ok
[INFO] [stdout] test space::tests::xquat_body_range_out_of_bounds ... ok
[INFO] [stdout] test stats::tests::zero_difference_matches_closed_form ... ok
[INFO] [stdout] test task::tests::builder_missing_obs_space ... ok
[INFO] [stdout] test task::tests::builder_roundtrip ... ok
[INFO] [stdout] test tensor::tests::from_f64_slice_precision ... ok
[INFO] [stdout] test task::tests::from_build_fn_metadata_roundtrip ... ok
[INFO] [stdout] test tensor::tests::try_from_f64_slice_ok ... ok
[INFO] [stdout] test tensor::tests::try_from_slice_err ... ok
[INFO] [stdout] test tensor::tests::from_slice_roundtrip ... ok
[INFO] [stdout] test tensor::tests::ne_different_data ... ok
[INFO] [stdout] test task::tests::from_build_fn_threads_seed_into_closure ... ok
[INFO] [stdout] test tensor::tests::row_panics_on_oob - should panic ... ok
[INFO] [stdout] test tensor::tests::row_access ... ok
[INFO] [stdout] test tensor::tests::try_from_f64_slice_err ... ok
[INFO] [stdout] test tensor::tests::try_from_slice_ok ... ok
[INFO] [stdout] test tensor::tests::ne_different_shape ... ok
[INFO] [stdout] test tensor::tests::zeros_creates_correct_shape_and_data ... ok
[INFO] [stdout] test tensor::tests::zeros_scalar_shape ... ok
[INFO] [stdout] test tensor::tests::row_mut_panics_on_3d - should panic ... ok
[INFO] [stdout] test tensor::tests::tensor_spec_unbounded ... ok
[INFO] [stdout] test tensor::tests::zeros_with_zero_dim ... ok
[INFO] [stdout] test value::tests::boxed_value_types_are_send_sync ... ok
[INFO] [stdout] test tensor::tests::row_mut_access ... ok
[INFO] [stdout] test tensor::tests::row_panics_on_1d - should panic ... ok
[INFO] [stdout] test vec_env::tests::n_envs_correct ... ok
[INFO] [stdout] test value::tests::soft_update_interpolates ... ok
[INFO] [stdout] test value::tests::soft_update_tau_zero_preserves ... ok
[INFO] [stdout] test vec_env::tests::builder_missing_obs_space ... ok
[INFO] [stdout] test vec_env::tests::builder_zero_sub_steps ... ok
[INFO] [stdout] test vec_env::tests::done_flag_correctness ... ok
[INFO] [stdout] test vec_env::tests::reset_all_returns_correct_shape ... ok
[INFO] [stdout] test vec_env::tests::per_env_action_isolation ... ok
[INFO] [stdout] test vec_env::tests::model_and_batch_accessible ... ok
[INFO] [stdout] test vec_env::tests::step_matches_sequential_sim_env ... ok
[INFO] [stdout] test tensor::tests::tensor_spec_bounded ... ok
[INFO] [stdout] test vec_env::tests::auto_reset_populates_terminal_observations ... ok
[INFO] [stdout] test value::tests::soft_update_tau_one_copies ... ok
[INFO] [stdout] test vec_env::tests::auto_reset_returns_initial_obs ... ok
[INFO] [stdout] test vec_env::tests::sub_steps_evaluate_at_end_not_per_step ... ok
[INFO] [stderr]    Doc-tests sim_ml_chassis
[INFO] [stdout] test vec_env::tests::wrong_action_dim_returns_error ... ok
[INFO] [stdout] test vec_env::tests::sub_steps_all_run ... ok
[INFO] [stdout] test vec_env::tests::step_returns_correct_shapes ... ok
[INFO] [stdout] test vec_env::tests::wrong_action_shape_returns_error ... ok
[INFO] [stdout] test vec_env::tests::truncated_flag_correctness ... ok
[INFO] [stdout] test vec_env::tests::on_reset_receives_env_index ... ok
[INFO] [stdout] test vec_env::tests::terminal_obs_differs_from_initial_obs ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 361 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.12s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test src/algorithm.rs - algorithm::Algorithm (line 66) ... ignored
[INFO] [stdout] test src/competition.rs - competition::Competition (line 419) ... ignored
[INFO] [stdout] test src/autograd/tape.rs - autograd::tape::Tape (line 177) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 2 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.46s; merged doctests compilation took 0.44s
[INFO] running `Command { std: "docker" "inspect" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091", kill_on_drop: false }`
[INFO] [stdout] 4c122d3e659a5937bb5aa5bfdf68e47747a593e677c2ac00f057d7559843b091
