[INFO] cloning repository https://github.com/Colin1860/rustytorch
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Colin1860/rustytorch" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FColin1860%2Frustytorch", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FColin1860%2Frustytorch'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 2a2aff01c8216a9ee8a64faf1986dd0618de1aa5
[INFO] testing Colin1860/rustytorch against 1.99.0-beta.8+cargoflags=--release for beta-release-1.100-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FColin1860%2Frustytorch" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Colin1860/rustytorch
[INFO] finished tweaking git repo https://github.com/Colin1860/rustytorch
[INFO] tweaked toml for git repo https://github.com/Colin1860/rustytorch written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Colin1860/rustytorch 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 git repo https://github.com/Colin1860/rustytorch 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]  Downloading crates ...
[INFO] [stderr]   Downloaded zerovec-derive v0.11.5
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-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] 814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b
[INFO] running `Command { std: "docker" "start" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b", 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" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b" "/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" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b", 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" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "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 libc v0.2.186
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy v0.8.54
[INFO] [stderr]    Compiling cfg-if v1.0.4
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling autocfg v1.5.1
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling zmij v1.0.23
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling eyre v0.6.12
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling indenter v0.3.4
[INFO] [stderr]    Compiling memchr v2.8.3
[INFO] [stderr]    Compiling itoa v1.0.18
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling rand_distr v0.5.1
[INFO] [stderr]    Compiling rustytorch v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 46.55s
[INFO] running `Command { std: "docker" "inspect" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b", 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" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b" "/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 syn v2.0.117
[INFO] [stderr]    Compiling syn v3.0.3
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling shlex v2.0.1
[INFO] [stderr]    Compiling writeable v0.6.4
[INFO] [stderr]    Compiling find-msvc-tools v0.1.11
[INFO] [stderr]    Compiling litemap v0.8.3
[INFO] [stderr]    Compiling icu_properties_data v2.3.0
[INFO] [stderr]    Compiling icu_normalizer_data v2.3.0
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling zeroize v1.9.0
[INFO] [stderr]    Compiling cc v1.4.3
[INFO] [stderr]    Compiling smallvec v1.15.2
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling crc32fast v1.5.0
[INFO] [stderr]    Compiling rustls-pki-types v1.15.1
[INFO] [stderr]    Compiling untrusted v0.9.0
[INFO] [stderr]    Compiling adler2 v2.0.1
[INFO] [stderr]    Compiling rustls v0.23.43
[INFO] [stderr]    Compiling simd-adler32 v0.3.10
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling log v0.4.33
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling base64 v0.22.1
[INFO] [stderr]    Compiling webpki-roots v1.0.9
[INFO] [stderr]    Compiling webpki-roots v0.26.11
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling zerovec-derive v0.11.5
[INFO] [stderr]    Compiling displaydoc v0.2.7
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerofrom v0.1.8
[INFO] [stderr]    Compiling yoke v0.8.3
[INFO] [stderr]    Compiling zerovec v0.11.8
[INFO] [stderr]    Compiling zerotrie v0.2.5
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tinystr v0.8.4
[INFO] [stderr]    Compiling potential_utf v0.1.6
[INFO] [stderr]    Compiling icu_collections v2.3.0
[INFO] [stderr]    Compiling icu_locale_core v2.3.0
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling rustytorch v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling icu_provider v2.3.0
[INFO] [stderr]    Compiling icu_properties v2.3.0
[INFO] [stderr]    Compiling icu_normalizer v2.3.0
[INFO] [stderr]    Compiling idna_adapter v1.2.2
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling rustls-webpki v0.103.14
[INFO] [stderr]    Compiling ureq v2.12.1
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1m 58s
[INFO] running `Command { std: "docker" "inspect" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b", 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" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b" "/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/rustytorch-7c72368c3a91a183)
[INFO] [stdout] 
[INFO] [stdout] running 303 tests
[INFO] [stdout] test activation::tests::test_activation_enum_softmax ... ok
[INFO] [stdout] test activation::tests::test_gelu_preserves_shape ... ok
[INFO] [stdout] test activation::tests::test_gelu_small_negative ... ok
[INFO] [stdout] test activation::tests::test_activation_enum_relu ... ok
[INFO] [stdout] test activation::tests::test_gelu_smooth_around_zero ... ok
[INFO] [stdout] test activation::tests::test_activation_enum_sigmoid ... ok
[INFO] [stdout] test activation::tests::test_all_activations_preserve_shape ... ok
[INFO] [stdout] test activation::tests::test_gelu_positive_value ... ok
[INFO] [stdout] test activation::tests::test_gelu_zero ... ok
[INFO] [stdout] test activation::tests::test_sigmoid_known_value ... ok
[INFO] [stdout] test activation::tests::test_relu_preserves_shape ... ok
[INFO] [stdout] test activation::tests::test_sigmoid_preserves_shape ... ok
[INFO] [stdout] test activation::tests::test_relu_mixed ... ok
[INFO] [stdout] test activation::tests::test_relu_preserves_positives ... ok
[INFO] [stdout] test activation::tests::test_relu_zero_stays_zero ... ok
[INFO] [stdout] test activation::tests::test_sigmoid_range ... ok
[INFO] [stdout] test activation::tests::test_sigmoid_zero ... ok
[INFO] [stdout] test activation::tests::test_softmax_2d_rows_sum_to_one ... ok
[INFO] [stdout] test activation::tests::test_softmax_dim0_cols_sum_to_one ... ok
[INFO] [stdout] test activation::tests::test_softmax_largest_input_largest_output ... ok
[INFO] [stdout] test activation::tests::test_relu_then_softmax_chain ... ok
[INFO] [stdout] test activation::tests::test_softmax_numerical_stability ... ok
[INFO] [stdout] test activation::tests::test_softmax_negative_dim_matches_positive ... ok
[INFO] [stdout] test activation::tests::test_relu_zeros_negatives ... ok
[INFO] [stdout] test activation::tests::test_sigmoid_extreme_values ... ok
[INFO] [stdout] test activation::tests::test_softmax_all_in_zero_one ... ok
[INFO] [stdout] test activation::tests::test_softmax_axis_out_of_bounds ... ok
[INFO] [stdout] test activation::tests::test_softmax_negative_axis_out_of_bounds ... ok
[INFO] [stdout] test activation::tests::test_softmax_sums_to_one_1d ... ok
[INFO] [stdout] test activation::tests::test_tanh_range ... ok
[INFO] [stdout] test dataloader::tensor::tests::test_get_batch_unchecked_non_contiguous_indices ... ok
[INFO] [stdout] test dataloader::tensor::tests::test_get_unchecked_correct_values ... ok
[INFO] [stdout] test dataloader::tensor::tests::test_get_unchecked_feature_shape ... ok
[INFO] [stdout] test dataloader::tensor::tests::test_get_batch_unchecked_shapes ... ok
[INFO] [stdout] test activation::tests::test_tanh_extreme_values ... ok
[INFO] [stdout] test activation::tests::test_tanh_preserves_shape ... ok
[INFO] [stdout] test activation::tests::test_tanh_symmetry ... ok
[INFO] [stdout] test activation::tests::test_tanh_zero ... ok
[INFO] [stdout] test dataloader::tensor::tests::test_get_batch_unchecked_single_index ... ok
[INFO] [stdout] test dataloader::tests::test_batch_count_exact ... ok
[INFO] [stdout] test dataloader::tests::test_batch_shapes ... ok
[INFO] [stdout] test dataloader::tests::test_all_samples_covered_no_shuffle ... ok
[INFO] [stdout] test dataloader::tests::test_batch_size_equals_dataset ... ok
[INFO] [stdout] test dataloader::tests::test_batch_size_one ... ok
[INFO] [stdout] test dataloader::tests::test_partial_last_batch ... ok
[INFO] [stdout] test layer::tests::test_dropout_accepts_boundary_values ... ok
[INFO] [stdout] test layer::tests::test_dropout_full_drop ... ok
[INFO] [stdout] test dataloader::tests::test_shuffle_covers_all_samples ... ok
[INFO] [stdout] test dataloader::tensor::tests::test_len ... ok
[INFO] [stdout] test layer::tests::test_dropout_survival_rate ... ok
[INFO] [stdout] test layer::tests::test_dropout_surviving_values_scaled ... ok
[INFO] [stdout] test layer::tests::test_dropout_inference_passthrough ... ok
[INFO] [stdout] test layer::tests::test_dropout_preserves_shape ... ok
[INFO] [stdout] test layer::tests::test_dropout_no_parameters ... ok
[INFO] [stdout] test layer::tests::test_dropout_rejects_negative_p ... ok
[INFO] [stdout] test layer::tests::test_linear_bias_zeros ... ok
[INFO] [stdout] test dataloader::tensor::tests::test_try_new_rejects_mismatched_lengths ... ok
[INFO] [stdout] test layer::tests::test_linear_forward_context_ignored ... ok
[INFO] [stdout] test layer::tests::test_linear_forward_no_bias_shape ... ok
[INFO] [stdout] test layer::tests::test_linear_bias_shape ... ok
[INFO] [stdout] test layer::tests::test_linear_forward_shape ... ok
[INFO] [stdout] test layer::tests::test_linear_no_bias ... ok
[INFO] [stdout] test layer::tests::test_linear_parameters_mut_no_bias ... ok
[INFO] [stdout] test layer::tests::test_linear_parameters_mut_writes_are_visible_on_the_real_layer ... ok
[INFO] [stdout] test layer::tests::test_linear_parameters_no_bias ... ok
[INFO] [stdout] test layer::tests::test_linear_parameters_mut_order_matches_parameters ... ok
[INFO] [stdout] test layer::tests::test_linear_parameters_mut_with_bias ... ok
[INFO] [stdout] test layer::tests::test_linear_forward_known_values ... ok
[INFO] [stdout] test loss::tests::test_bce_accuracy_boundary_at_0_5_counts_as_positive ... ok
[INFO] [stdout] test loss::tests::test_bce_accuracy_all_wrong ... ok
[INFO] [stdout] test layer::tests::test_dropout_rejects_p_above_one ... ok
[INFO] [stdout] test loss::tests::test_bce_accuracy_all_correct ... ok
[INFO] [stdout] test layer::tests::test_linear_weight_shape ... ok
[INFO] [stdout] test loss::tests::test_bce_perfect_predictions_low_loss ... ok
[INFO] [stdout] test loss::tests::test_bce_numerical_stability_at_boundaries ... ok
[INFO] [stdout] test loss::tests::test_bce_rejects_2d ... ok
[INFO] [stdout] test loss::tests::test_bce_accuracy_mixed ... ok
[INFO] [stdout] test loss::tests::test_bce_backward_matches_closed_form ... ok
[INFO] [stdout] test loss::tests::test_bce_worst_predictions_high_loss ... ok
[INFO] [stdout] test loss::tests::test_bce_uniform_predictions ... ok
[INFO] [stdout] test loss::tests::test_ce_accuracy_all_correct ... ok
[INFO] [stdout] test loss::tests::test_bce_non_negative ... ok
[INFO] [stdout] test loss::tests::test_ce_accuracy_all_wrong ... ok
[INFO] [stdout] test loss::tests::test_bce_rejects_shape_mismatch ... ok
[INFO] [stdout] test layer::tests::test_linear_parameters_with_bias ... ok
[INFO] [stdout] test loss::tests::test_ce_accuracy_mixed ... ok
[INFO] [stdout] test loss::tests::test_ce_confident_wrong_high_loss ... ok
[INFO] [stdout] test loss::tests::test_ce_rejects_non_2d ... ok
[INFO] [stdout] test loss::tests::test_ce_numerical_stability ... ok
[INFO] [stdout] test loss::tests::test_ce_rejects_mismatched_batch ... ok
[INFO] [stdout] test loss::tests::test_ce_non_negative ... ok
[INFO] [stdout] test loss::tests::test_ce_uniform_loss_equals_log_classes ... ok
[INFO] [stdout] test loss::tests::test_ce_confident_correct_low_loss ... ok
[INFO] [stdout] test loss::tests::test_mse_non_negative ... ok
[INFO] [stdout] test loss::tests::test_cross_entropy_backward_matches_closed_form ... ok
[INFO] [stdout] test loss::tests::test_mse_perfect_predictions ... ok
[INFO] [stdout] test loss::tests::test_mse_2d ... ok
[INFO] [stdout] test optimizer::tests::test_adam_skips_params_without_grad ... ok
[INFO] [stdout] test optimizer::tests::test_adam_weight_decay_is_coupled_into_the_gradient ... ok
[INFO] [stdout] test loss::tests::test_mse_backward_matches_closed_form ... ok
[INFO] [stdout] test loss::tests::test_mse_known_value ... ok
[INFO] [stdout] test loss::tests::test_mse_metric_is_always_none ... ok
[INFO] [stdout] test optimizer::tests::test_sgd_basic_step_no_momentum_no_decay ... ok
[INFO] [stdout] test optimizer::tests::test_sgd_momentum_and_weight_decay_compose ... ok
[INFO] [stdout] test layer::tests::test_linear_weight_scale ... ok
[INFO] [stdout] test optimizer::tests::test_sgd_skips_params_without_grad ... ok
[INFO] [stdout] test optimizer::tests::test_adamw_weight_decay_is_decoupled_from_the_gradient ... ok
[INFO] [stdout] test optimizer::tests::test_sgd_weight_decay ... ok
[INFO] [stdout] test optimizer::tests::test_update_moments_second_call_accumulates ... ok
[INFO] [stdout] test tensor::backward::tests::test_add_backward_broadcast_column_vector ... ok
[INFO] [stdout] test tensor::backward::tests::test_add_backward_broadcast_row_vector ... ok
[INFO] [stdout] test tensor::backward::tests::test_add_backward_no_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_add_backward_returns_saved_inputs ... ok
[INFO] [stdout] test loss::tests::test_mse_symmetric ... ok
[INFO] [stdout] test tensor::backward::tests::test_clamp_backward_all_in_range ... ok
[INFO] [stdout] test optimizer::tests::test_adam_constant_gradient_moves_by_roughly_lr_each_step ... ok
[INFO] [stdout] test optimizer::tests::test_adam_moment_buffers_init_lazily_per_param_on_first_use ... ok
[INFO] [stdout] test optimizer::tests::test_adamw_matches_adam_when_weight_decay_is_zero ... ok
[INFO] [stdout] test tensor::backward::tests::test_div_backward_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_div_backward_no_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_cross_entropy_backward_matches_closed_form ... ok
[INFO] [stdout] test optimizer::tests::test_sgd_momentum_accumulates_across_steps ... ok
[INFO] [stdout] test tensor::backward::tests::test_clamp_backward_boundary_values_pass_through ... ok
[INFO] [stdout] test optimizer::tests::test_sgd_momentum_buffers_are_positional ... ok
[INFO] [stdout] test tensor::backward::tests::test_clamp_backward_zeroes_out_of_range ... ok
[INFO] [stdout] test optimizer::tests::test_update_moments_first_call ... ok
[INFO] [stdout] test tensor::backward::tests::test_matmul_backward_2d ... ok
[INFO] [stdout] test tensor::backward::tests::test_mean_backward_axis_keepdims_false ... ok
[INFO] [stdout] test tensor::backward::tests::test_mean_backward_axis_none ... ok
[INFO] [stdout] test tensor::backward::tests::test_matmul_backward_batch_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_mean_backward_axis_keepdims_true ... ok
[INFO] [stdout] test tensor::backward::tests::test_exp_backward_uses_saved_output ... ok
[INFO] [stdout] test tensor::backward::tests::test_gelu_backward_matches_closed_form ... ok
[INFO] [stdout] test tensor::backward::tests::test_log_backward ... ok
[INFO] [stdout] test tensor::backward::tests::test_mul_backward_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_mul_backward_no_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_relu_backward_masks_negatives ... ok
[INFO] [stdout] test tensor::backward::tests::test_relu_backward_zero_is_excluded_not_included ... ok
[INFO] [stdout] test tensor::backward::tests::test_one_hot_encode ... ok
[INFO] [stdout] test tensor::backward::tests::test_softmax_backward_matches_closed_form ... ok
[INFO] [stdout] test tensor::backward::tests::test_sub_backward_no_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_sub_backward_broadcast ... ok
[INFO] [stdout] test tensor::backward::tests::test_sum_backward_axis_keepdims_false ... ok
[INFO] [stdout] test tensor::backward::tests::test_slice_backward_idx0_gets_nonzero_gradient ... ok
[INFO] [stdout] test tensor::backward::tests::test_reshape_backward_restores_original_shape ... ok
[INFO] [stdout] test tensor::backward::tests::test_sum_backward_axis_keepdims_true ... ok
[INFO] [stdout] test tensor::backward::tests::test_reshape_backward_restores_3d_shape ... ok
[INFO] [stdout] test tensor::backward::tests::test_transpose_backward_non_adjacent_axes_3d ... ok
[INFO] [stdout] test tensor::tests::test_2d_valid ... ok
[INFO] [stdout] test tensor::tests::test_3d_valid ... ok
[INFO] [stdout] test tensor::backward::tests::test_slice_backward_idx1_places_grad_in_row1_with_real_values ... ok
[INFO] [stdout] test tensor::backward::tests::test_transpose_backward_2d_values ... ok
[INFO] [stdout] test tensor::tests::test_1d_valid ... ok
[INFO] [stdout] test tensor::tests::test_add_broadcast_3d ... ok
[INFO] [stdout] test tensor::backward::tests::test_sum_backward_axis_none ... ok
[INFO] [stdout] test tensor::tests::test_add_broadcast_column_vector ... ok
[INFO] [stdout] test tensor::tests::test_add_broadcast_row_vector ... ok
[INFO] [stdout] test tensor::tests::test_add_completely_incompatible ... ok
[INFO] [stdout] test tensor::backward::tests::test_one_hot_encode_row_sums_to_one ... ok
[INFO] [stdout] test tensor::tests::test_add_grad_fn_computes_correct_gradients ... ok
[INFO] [stdout] test tensor::tests::test_add_incompatible_shapes ... ok
[INFO] [stdout] test tensor::tests::test_add_rhs_requires_grad_tracks ... ok
[INFO] [stdout] test tensor::tests::test_add_lhs_requires_grad_tracks ... ok
[INFO] [stdout] test tensor::tests::test_add_neither_requires_grad_no_tracking ... ok
[INFO] [stdout] test tensor::tests::test_argmax_axis_out_of_bounds ... ok
[INFO] [stdout] test tensor::tests::test_add_owned_and_ref_combinations_agree ... ok
[INFO] [stdout] test tensor::tests::test_argmax_keepdims ... ok
[INFO] [stdout] test tensor::tests::test_add_result_values_unaffected_by_grad_tracking ... ok
[INFO] [stdout] test tensor::tests::test_add_scalar ... ok
[INFO] [stdout] test tensor::tests::test_argmax_ties_break_to_first_occurrence ... ok
[INFO] [stdout] test tensor::tests::test_argmax_matches_max_value_at_returned_index ... ok
[INFO] [stdout] test tensor::tests::test_argmax_output_does_not_require_grad ... ok
[INFO] [stdout] test tensor::tests::test_argmax_ties_break_to_first_occurrence_per_axis ... ok
[INFO] [stdout] test tensor::tests::test_add_same_shape ... ok
[INFO] [stdout] test tensor::tests::test_backward_on_pre_built_graph_still_works_inside_no_grad ... ok
[INFO] [stdout] test tensor::tests::test_argmax_all ... ok
[INFO] [stdout] test tensor::tests::test_backward_shape_mismatch_errors ... ok
[INFO] [stdout] test tensor::tests::test_backward_accumulates_shared_tensor ... ok
[INFO] [stdout] test tensor::tests::test_backward_noop_when_not_requires_grad ... ok
[INFO] [stdout] test tensor::tests::test_backward_through_get ... ok
[INFO] [stdout] test tensor::tests::test_backward_broadcast_bias ... ok
[INFO] [stdout] test tensor::tests::test_backward_through_get_noop_when_not_requires_grad ... ok
[INFO] [stdout] test tensor::tests::test_backward_through_relu ... ok
[INFO] [stdout] test tensor::tests::test_argmax_axis0 ... ok
[INFO] [stdout] test tensor::tests::test_data_mut_does_not_mutate_other_clones_sharing_the_buffer ... ok
[INFO] [stdout] test tensor::tests::test_backward_simple_add ... ok
[INFO] [stdout] test tensor::tests::test_argmax_axis1 ... ok
[INFO] [stdout] test tensor::tests::test_data_mut_mutates_in_place_when_sole_owner ... ok
[INFO] [stdout] test tensor::tests::test_backward_through_gelu ... ok
[INFO] [stdout] test tensor::tests::test_data_mut_writes_all_elements ... ok
[INFO] [stdout] test tensor::tests::test_empty_shape_rejected ... ok
[INFO] [stdout] test tensor::tests::test_get_1d_returns_shape_1 ... ok
[INFO] [stdout] test tensor::tests::test_backward_through_softmax ... ok
[INFO] [stdout] test tensor::tests::test_div_scalar ... ok
[INFO] [stdout] test tensor::tests::test_get_2d_first_row ... ok
[INFO] [stdout] test tensor::tests::test_get_1d_via_sliced_tensor ... ok
[INFO] [stdout] test tensor::tests::test_get_2d_second_row ... ok
[INFO] [stdout] test tensor::tests::test_get_3d_reduces_rank ... ok
[INFO] [stdout] test tensor::tests::test_get_out_of_bounds ... ok
[INFO] [stdout] test tensor::tests::test_get_zero_copy_for_nd ... ok
[INFO] [stdout] test tensor::tests::test_grad_tracking_resumes_after_guard_drops ... ok
[INFO] [stdout] test tensor::tests::test_matmul_2d_non_square ... ok
[INFO] [stdout] test tensor::tests::test_matmul_batched_broadcast ... ok
[INFO] [stdout] test tensor::tests::test_matmul_inner_dim_mismatch ... ok
[INFO] [stdout] test tensor::tests::test_matmul_2d_square ... ok
[INFO] [stdout] test tensor::tests::test_matmul_batched ... ok
[INFO] [stdout] test tensor::tests::test_matmul_requires_2d ... ok
[INFO] [stdout] test tensor::tests::test_max_all ... ok
[INFO] [stdout] test tensor::tests::test_max_axis1 ... ok
[INFO] [stdout] test tensor::tests::test_max_axis0 ... ok
[INFO] [stdout] test tensor::tests::test_data_preserved ... ok
[INFO] [stdout] test tensor::tests::test_div_broadcast_row_vector ... ok
[INFO] [stdout] test tensor::tests::test_div_incompatible_shapes ... ok
[INFO] [stdout] test tensor::tests::test_div_same_shape ... ok
[INFO] [stdout] test tensor::tests::test_mean_all ... ok
[INFO] [stdout] test tensor::tests::test_mean_axis0 ... ok
[INFO] [stdout] test tensor::tests::test_mean_keepdims ... ok
[INFO] [stdout] test tensor::tests::test_mean_axis1 ... ok
[INFO] [stdout] test tensor::tests::test_mean_axis_out_of_bounds ... ok
[INFO] [stdout] test tensor::tests::test_misaligned_data_too_long ... ok
[INFO] [stdout] test tensor::tests::test_misaligned_data_too_short ... ok
[INFO] [stdout] test tensor::tests::test_mul_scalar ... ok
[INFO] [stdout] test tensor::tests::test_nested_no_grad_scopes_restore_correctly ... ok
[INFO] [stdout] test tensor::tests::test_no_grad_suppresses_grad_fn_construction ... ok
[INFO] [stdout] test tensor::tests::test_reshape_1d_to_2d ... ok
[INFO] [stdout] test tensor::tests::test_max_axis_out_of_bounds ... ok
[INFO] [stdout] test tensor::tests::test_reshape_2d_to_1d ... ok
[INFO] [stdout] test tensor::tests::test_reshape_2d_to_2d ... ok
[INFO] [stdout] test tensor::tests::test_reshape_shares_buffer ... ok
[INFO] [stdout] test tensor::tests::test_reshape_size_mismatch ... ok
[INFO] [stdout] test tensor::tests::test_mul_incompatible_shapes ... ok
[INFO] [stdout] test tensor::tests::test_mul_same_shape ... ok
[INFO] [stdout] test tensor::tests::test_stack_2d ... ok
[INFO] [stdout] test tensor::tests::test_reshape_to_3d ... ok
[INFO] [stdout] test tensor::tests::test_single_element ... ok
[INFO] [stdout] test tensor::tests::test_stack_rejects_empty ... ok
[INFO] [stdout] test tensor::tests::test_stack_1d ... ok
[INFO] [stdout] test tensor::tests::test_stack_transposed ... ok
[INFO] [stdout] test tensor::tests::test_sub_broadcast_row_vector ... ok
[INFO] [stdout] test tensor::tests::test_stack_single ... ok
[INFO] [stdout] test tensor::tests::test_sub_incompatible_shapes ... ok
[INFO] [stdout] test tensor::tests::test_sub_same_shape ... ok
[INFO] [stdout] test tensor::tests::test_sub_scalar ... ok
[INFO] [stdout] test tensor::tests::test_sum_axis1 ... ok
[INFO] [stdout] test tensor::tests::test_matmul_transposed_rhs ... ok
[INFO] [stdout] test tensor::tests::test_sum_axis2_3d ... ok
[INFO] [stdout] test tensor::tests::test_max_keepdims ... ok
[INFO] [stdout] test tensor::tests::test_sum_axis0 ... ok
[INFO] [stdout] test tensor::tests::test_sum_all ... ok
[INFO] [stdout] test tensor::tests::test_sum_axis_out_of_bounds ... ok
[INFO] [stdout] test tensor::tests::test_sum_keepdims ... ok
[INFO] [stdout] test tensor::tests::test_stack_rejects_shape_mismatch ... ok
[INFO] [stdout] test tensor::tests::test_sub_broadcast_column_vector ... ok
[INFO] [stdout] test tensor::tests::test_sub_mul_div_owned_combinations ... ok
[INFO] [stdout] test tensor::tests::test_transpose_3d_axes_0_2 ... ok
[INFO] [stdout] test tensor::tests::test_transpose_out_of_bounds ... ok
[INFO] [stdout] test tensor::tests::test_sum_keepdims_axis0 ... ok
[INFO] [stdout] test tensor::tests::test_sum_single_element ... ok
[INFO] [stdout] test tensor::tests::test_transpose_3d_axes_0_1 ... ok
[INFO] [stdout] test tensor::tests::test_transpose_same_axis_is_noop ... ok
[INFO] [stdout] test tensor::tests::test_transpose_2d ... ok
[INFO] [stdout] test tensor::tests::test_unbroadcast_3d_middle_axis ... ok
[INFO] [stdout] test tensor::tests::test_unbroadcast_collapses_singleton_dim ... ok
[INFO] [stdout] test tensor::tests::test_unbroadcast_drops_leading_dim ... ok
[INFO] [stdout] test tensor::tests::test_transpose_shares_buffer ... ok
[INFO] [stdout] test tensor::tests::test_unbroadcast_multiple_leading_dims ... ok
[INFO] [stdout] test tensor::tests::test_unbroadcast_multiple_singleton_dims_same_call ... ok
[INFO] [stdout] test tensor::tests::test_unbroadcast_noop_same_shape ... ok
[INFO] [stdout] test tensor::tests::test_zero_grad_on_tensor_with_no_gradient_yet_is_a_noop ... ok
[INFO] [stdout] test tests::it_works ... ok
[INFO] [stdout] test training::tests::test_clip_grad_norm_is_global_across_multiple_params ... ok
[INFO] [stdout] test tensor::tests::test_zero_grad_resets_accumulated_gradient ... ok
[INFO] [stdout] test training::tests::test_clip_grad_norm_exactly_at_max_is_not_clipped ... ok
[INFO] [stdout] test training::tests::test_clip_grad_norm_scales_down_when_over_max ... ok
[INFO] [stdout] test training::tests::test_cosine_schedule_is_monotonically_non_increasing ... ok
[INFO] [stdout] test training::tests::test_clip_grad_norm_skips_params_without_a_gradient ... ok
[INFO] [stdout] test training::tests::test_cosine_schedule_clamps_past_total_epochs ... ok
[INFO] [stdout] test training::tests::test_cosine_schedule_degenerate_constant_when_max_equals_min ... ok
[INFO] [stdout] test training::tests::test_cosine_schedule_end_is_min_lr ... ok
[INFO] [stdout] test training::tests::test_cosine_schedule_midpoint_is_exact_average ... ok
[INFO] [stdout] test training::tests::test_cosine_schedule_start_is_max_lr ... ok
[INFO] [stdout] test training::trainer::tests::test_evaluate_does_not_leave_gradients_behind ... ok
[INFO] [stdout] test training::trainer::tests::test_evaluate_reports_classification_accuracy ... ok
[INFO] [stdout] test training::trainer::tests::test_evaluate_returns_finite_loss_and_does_not_change_parameters ... ok
[INFO] [stdout] test training::tests::test_clip_grad_norm_empty_params_returns_zero ... ok
[INFO] [stdout] test training::tests::test_clip_grad_norm_leaves_small_gradients_untouched ... ok
[INFO] [stdout] test tensor::tests::test_unbroadcast_leading_and_singleton_combined ... ok
[INFO] [stdout] test training::trainer::tests::test_load_checkpoint_restores_epoch_step_and_history ... ok
[INFO] [stdout] test training::trainer::tests::test_load_checkpoint_rejects_shape_mismatch ... ok
[INFO] [stdout] test training::trainer::tests::test_optimizer_update_clips_gradients_when_grad_clip_norm_is_set ... ok
[INFO] [stdout] test training::trainer::tests::test_process_batch_populates_parameter_gradients ... ok
[INFO] [stdout] test training::trainer::tests::test_save_checkpoint_captures_current_parameter_values ... ok
[INFO] [stdout] test training::trainer::tests::test_save_checkpoint_writes_epoch_step_and_history ... ok
[INFO] [stdout] test training::trainer::tests::test_process_batch_returns_finite_nonnegative_loss ... ok
[INFO] [stdout] test training::trainer::tests::test_train_epoch_flushes_partial_leftover_window ... ok
[INFO] [stdout] test training::trainer::tests::test_load_checkpoint_restores_model_weights ... ok
[INFO] [stdout] test training::trainer::tests::test_save_then_load_round_trip_preserves_everything ... ok
[INFO] [stdout] test training::trainer::tests::test_new_initializes_state ... ok
[INFO] [stdout] test training::trainer::tests::test_train_epoch_accumulation_steps_reduces_update_count ... ok
[INFO] [stdout] test training::trainer::tests::test_process_batch_scales_loss_by_accumulation_steps ... ok
[INFO] [stdout] test training::trainer::tests::test_optimizer_update_changes_parameters_and_zeros_gradients ... ok
[INFO] [stdout] test training::trainer::tests::test_train_epoch_updates_history_and_counters ... ok
[INFO] [stdout] test training::trainer::tests::test_train_epoch_scheduler_records_epoch_zero_rate ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 303 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rustytorch
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test src/tensor/grad_mode.rs - tensor::grad_mode::no_grad (line 31) ... ignored
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.36s; merged doctests compilation took 0.35s
[INFO] running `Command { std: "docker" "inspect" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b", kill_on_drop: false }`
[INFO] [stdout] 814da4e14919a58fec6b5423143651575d174597183e55ed097a2f03a227925b
