[INFO] fetching crate rustyml 0.16.0...
[INFO] testing rustyml-0.16.0 against 1.100.0-beta.1 for beta-1.100-2
[INFO] extracting crate rustyml 0.16.0 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate rustyml 0.16.0
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate rustyml 0.16.0
[INFO] tweaked toml for crates.io crate rustyml 0.16.0 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate rustyml 0.16.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 rustyml 0.16.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-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:3111399a4047eeb3a02b7a90e478d715f38a8c6669b5c4b49d30a17385265909" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa
[INFO] running `Command { std: "docker" "start" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa", 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" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa" "/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" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa", 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" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde_core v1.0.229
[INFO] [stderr]    Compiling serde v1.0.229
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]    Compiling syn v3.0.6
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling matrixmultiply v0.3.11
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling either v1.18.0
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling rayon v1.12.0
[INFO] [stderr]    Compiling num-integer v0.1.47
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling heapless v0.7.17
[INFO] [stderr]    Compiling bitflags v2.13.2
[INFO] [stderr]    Compiling byteorder v1.5.0
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling hash32 v0.2.1
[INFO] [stderr]    Compiling raw-cpuid v11.6.0
[INFO] [stderr]    Compiling spin v0.9.9
[INFO] [stderr]    Compiling console v0.16.6
[INFO] [stderr]    Compiling unit-prefix v0.5.2
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling indicatif v0.18.6
[INFO] [stderr]    Compiling serde_derive v1.0.229
[INFO] [stderr]    Compiling thiserror-impl v2.0.20
[INFO] [stderr]    Compiling gemmkit v0.1.2
[INFO] [stderr]    Compiling thiserror v2.0.20
[INFO] [stderr]    Compiling cobs v0.3.0
[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 ndarray v0.17.2
[INFO] [stderr]    Compiling postcard v1.1.3
[INFO] [stderr]    Compiling gemmkit-ndarray v0.1.2
[INFO] [stderr]    Compiling ndarray-rand v0.16.0
[INFO] [stderr]    Compiling rustyml v0.16.0 (/opt/rustwide/workdir)
[INFO] [stderr] warning: unused dependency `indicatif`
[INFO] [stderr]   --> Cargo.toml:41:15
[INFO] [stderr]    |
[INFO] [stderr] 41 | [dependencies.indicatif]
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `indicatif`
[INFO] [stderr] warning: `rustyml` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa", 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" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.57
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling syn v2.0.119
[INFO] [stderr]    Compiling matrixmultiply v0.3.11
[INFO] [stderr]    Compiling find-msvc-tools v0.1.13
[INFO] [stderr]    Compiling bytemuck v1.25.2
[INFO] [stderr]    Compiling clap_lex v1.1.1
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]    Compiling cc v1.4.7
[INFO] [stderr]    Compiling safe_arch v1.2.0
[INFO] [stderr]    Compiling clap_builder v4.6.7
[INFO] [stderr]    Compiling serde_json v1.0.151
[INFO] [stderr]    Compiling wide v1.7.1
[INFO] [stderr]    Compiling num-integer v0.1.47
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling gemmkit v0.1.2
[INFO] [stderr]    Compiling ndarray v0.17.2
[INFO] [stderr]    Compiling regex-automata v0.4.18
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling clap v4.6.7
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling zerocopy-derive v0.8.57
[INFO] [stderr]    Compiling nalgebra-macros v0.3.0
[INFO] [stderr]    Compiling regex v1.13.1
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling gemmkit-ndarray v0.1.2
[INFO] [stderr]    Compiling simba v0.10.2
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand v0.9.5
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling rand_distr v0.5.1
[INFO] [stderr]    Compiling ndarray-rand v0.16.0
[INFO] [stderr]    Compiling rustyml v0.16.0 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling nalgebra v0.35.0
[INFO] [stderr] warning: unused dependency `indicatif`
[INFO] [stderr]   --> Cargo.toml:41:15
[INFO] [stderr]    |
[INFO] [stderr] 41 | [dependencies.indicatif]
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `indicatif`
[INFO] [stderr] warning: `rustyml` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 52s
[INFO] running `Command { std: "docker" "inspect" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa", 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" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused dependency `indicatif`
[INFO] [stderr]   --> Cargo.toml:41:15
[INFO] [stderr]    |
[INFO] [stderr] 41 | [dependencies.indicatif]
[INFO] [stderr]    |               ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `indicatif`
[INFO] [stderr] warning: `rustyml` (manifest) generated 1 warning
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/build/rustyml/ffce73d152c4021d/out/rustyml-ffce73d152c4021d)
[INFO] [stdout] 
[INFO] [stdout] running 547 tests
[INFO] [stdout] test error::tests::display_dimension_mismatch ... ok
[INFO] [stdout] test error::tests::display_empty_input ... ok
[INFO] [stdout] test error::tests::display_invalid_parameter ... ok
[INFO] [stdout] test error::tests::context_is_passthrough_on_ok ... ok
[INFO] [stdout] test error::tests::display_not_fitted ... ok
[INFO] [stdout] test error::tests::computation_constructor_has_no_source ... ok
[INFO] [stdout] test error::tests::rustyml_result_is_result_alias ... ok
[INFO] [stdout] test error::tests::display_shape_mismatch ... ok
[INFO] [stdout] test error::tests::non_finite_constructor_carries_context ... ok
[INFO] [stdout] test error::tests::with_context_closure_runs_only_on_err ... ok
[INFO] [stdout] test error::tests::context_wraps_err_as_computation_preserving_source ... ok
[INFO] [stdout] test error::tests::invalid_input_constructor_carries_message ... ok
[INFO] [stdout] test error::tests::context_exposes_wrapped_error_via_std_source ... ok
[INFO] [stdout] test machine_learning::ensemble::isolation_forest::tests::test_average_path_length_factor_monotone_across_branch_boundary ... ok
[INFO] [stdout] test machine_learning::discriminant_analysis::lda::tests::ledoit_wolf_shrinkage_in_unit_interval ... ok
[INFO] [stdout] test machine_learning::ensemble::isolation_forest::tests::test_average_path_length_factor_n0 ... ok
[INFO] [stdout] test machine_learning::clustering::mean_shift::tests::resolve_shifted_center_normalizes_when_weights_present ... ok
[INFO] [stdout] test machine_learning::ensemble::isolation_forest::tests::test_average_path_length_factor_n2 ... ok
[INFO] [stdout] test machine_learning::discriminant_analysis::lda::tests::lsqr_solve_matches_direct_solution ... ok
[INFO] [stdout] test machine_learning::ensemble::isolation_forest::tests::test_average_path_length_factor_n3 ... ok
[INFO] [stdout] test machine_learning::error::tests::display_tree_transparent_forwards_inner ... ok
[INFO] [stdout] test machine_learning::ensemble::isolation_forest::tests::test_average_path_length_factor_matches_exact_harmonic_within_tolerance ... ok
[INFO] [stdout] test machine_learning::ensemble::isolation_forest::tests::test_average_path_length_factor_monotone ... ok
[INFO] [stdout] test machine_learning::ensemble::isolation_forest::tests::test_average_path_length_factor_n1 ... ok
[INFO] [stdout] test machine_learning::linalg::iterative_tests::lanczos_k_zero_returns_empty ... ok
[INFO] [stdout] test machine_learning::linalg::iterative_tests::lanczos_matches_dense_reference ... ok
[INFO] [stdout] test machine_learning::linalg::iterative_tests::power_iteration_eigenvalues_descending_order ... ok
[INFO] [stdout] test machine_learning::linalg::iterative_tests::lanczos_rank_one_invariant_subspace_early_exit ... ok
[INFO] [stdout] test machine_learning::linalg::tests::qr_q_orthonormal_and_spanning ... ok
[INFO] [stdout] test machine_learning::linalg::tests::svd_pseudo_inverse_identity ... ok
[INFO] [stdout] test machine_learning::linalg::iterative_tests::power_iteration_eigenvectors_mutually_orthogonal ... ok
[INFO] [stdout] test machine_learning::linalg::tests::svd_solve_least_squares ... ok
[INFO] [stdout] test machine_learning::linalg::iterative_tests::power_iteration_k_zero_returns_empty ... ok
[INFO] [stdout] test machine_learning::linalg::tests::svd_square_reconstructs ... ok
[INFO] [stdout] test machine_learning::linalg::tests::svd_pseudo_inverse_rank_deficient ... ok
[INFO] [stdout] test machine_learning::linalg::iterative_tests::power_iteration_matches_dense_reference ... ok
[INFO] [stdout] test machine_learning::linalg::tests::svd_tall_matches_nalgebra ... ok
[INFO] [stdout] test machine_learning::linalg::tests::svd_wide_reconstructs ... ok
[INFO] [stdout] test machine_learning::linalg::tests::symmetric_eigen_diagonal ... ok
[INFO] [stdout] test machine_learning::linalg::tests::symmetric_eigen_one_by_one ... ok
[INFO] [stdout] test machine_learning::linalg::tests::symmetric_eigen_pairs_are_valid_and_orthonormal ... ok
[INFO] [stdout] test machine_learning::parallel::tests::map_collect_empty ... ok
[INFO] [stdout] test machine_learning::clustering::dbscan::tests::region_query_out_of_bounds_index_gives_computation ... ok
[INFO] [stdout] test machine_learning::clustering::mean_shift::tests::resolve_shifted_center_keeps_center_when_weights_underflow ... ok
[INFO] [stdout] test machine_learning::spatial::tests::handles_duplicate_points_deterministically ... ok
[INFO] [stdout] test machine_learning::parallel::tests::map_collect_seq_and_par_match_index_order ... ok
[INFO] [stdout] test machine_learning::spatial::tests::single_point_tree ... ok
[INFO] [stdout] test machine_learning::svm::svc::tests::predict_non_finite_decision_value_returns_non_finite ... ok
[INFO] [stdout] test machine_learning::manifold::t_sne::tests::sp_tree_root_aggregates_all_points ... ok
[INFO] [stdout] test machine_learning::linalg::tests::symmetric_eigen_eigenvalues_match_nalgebra ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::category_key_collapses_subkey_noise_but_separates_distinct_values ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::get_probabilities_categorical_no_match_no_fallback_is_corrupt_structure ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::select_best_split_ignores_nan_and_picks_finite_best ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::selection_score_c45_none_on_degenerate_split_info ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::split_information_even_two_way_is_one_bit_and_single_branch_is_zero ... ok
[INFO] [stdout] test machine_learning::manifold::t_sne::tests::binary_search_sigma_distribution_and_perplexity ... ok
[INFO] [stdout] test machine_learning::manifold::t_sne::tests::neighbor_probabilities_are_symmetric_and_normalized ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::traverse_tree_missing_right_child_is_corrupt_structure ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::select_best_split_all_nan_scores_is_none ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::get_probabilities_leaf_without_probabilities_is_corrupt_structure ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::traverse_tree_categorical_no_match_no_fallback_is_corrupt_structure ... ok
[INFO] [stdout] test machine_learning::tree::decision_tree::tests::traverse_tree_missing_left_child_is_corrupt_structure ... ok
[INFO] [stdout] test machine_learning::types::tests::compute_matrix_cosine_zero_row_guard ... ok
[INFO] [stdout] test machine_learning::types::tests::compute_matrix_matches_pairwise ... ok
[INFO] [stdout] test machine_learning::types::tests::gamma_scale_errors_on_zero_variance ... ok
[INFO] [stdout] test machine_learning::types::tests::gamma_value_resolves_to_itself ... ok
[INFO] [stdout] test machine_learning::types::tests::gamma_auto_resolves_to_inverse_features ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_cosine_orthogonal_vectors ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_cosine_zero_vector ... ok
[INFO] [stdout] test machine_learning::types::tests::compute_matrix_rbf_diagonal_is_one ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_cosine_identical_vectors ... ok
[INFO] [stdout] test machine_learning::types::tests::gamma_scale_resolves_to_inverse_features_times_variance ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_rbf_identical_vectors ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_poly_degree3_general ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_linear_general_vectors ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_linear_orthogonal_vectors ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_poly_degree2_orthogonal ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_rbf_orthogonal_unit_vectors ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_resolve_gamma_produces_value_variant ... ok
[INFO] [stdout] test machine_learning::types::tests::kernel_sigmoid_unit_vector ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_finite_nan_gives_non_finite ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_finite_inf_gives_non_finite ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_is_fitted_false_gives_not_fitted ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_min_samples_too_few_gives_invalid_input ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_is_fitted_true_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_finite_all_finite_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_min_samples_exactly_min_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::preliminary_check_valid_x_and_y_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::preliminary_check_empty_x_gives_empty_input ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_non_empty_non_empty_array_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::preliminary_check_valid_x_no_y_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::check_non_empty_empty_array_gives_empty_input ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_fit_matrix_valid_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_fit_matrix_zero_cols_gives_empty_input ... ok
[INFO] [stdout] test machine_learning::validation::tests::preliminary_check_x_with_inf_gives_non_finite ... ok
[INFO] [stdout] test machine_learning::validation::tests::preliminary_check_x_with_nan_gives_non_finite ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_learning_rate_positive_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_learning_rate_nan_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_learning_rate_negative_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_learning_rate_zero_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_max_iterations_one_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_predict_input_ncols_mismatch_gives_dimension_mismatch ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_predict_input_nan_gives_non_finite ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_max_iterations_zero_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_predict_input_valid_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_predict_input_empty_gives_empty_input ... ok
[INFO] [stdout] test machine_learning::validation::tests::preliminary_check_y_len_mismatch_gives_dimension_mismatch ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_regularization_type_l1_negative_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_learning_rate_inf_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_regularization_type_l1_zero_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_regularization_type_none_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_tolerance_negative_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_tolerance_positive_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_tolerance_zero_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_transform_matrix_match_gives_ok ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_tolerance_inf_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_transform_matrix_ncols_mismatch_gives_dimension_mismatch ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_tolerance_nan_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_regularization_type_l1_inf_gives_invalid_parameter ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_regularization_type_l1_nan_gives_invalid_parameter ... ok
[INFO] [stdout] test math::distance::tests::distance_manhattan_symmetry ... ok
[INFO] [stdout] test math::distance::tests::distance_manhattan_345 ... ok
[INFO] [stdout] test math::distance::tests::distance_euclidean_symmetry ... ok
[INFO] [stdout] test math::distance::tests::distance_minkowski_p3 ... ok
[INFO] [stdout] test math::matmul::tests::dot_edge_cases ... ok
[INFO] [stdout] test math::distance::tests::distance_euclidean_345_triangle ... ok
[INFO] [stdout] test math::distance::tests::distance_euclidean_identical_vectors ... ok
[INFO] [stdout] test machine_learning::validation::tests::validate_regularization_type_l2_positive_gives_ok ... ok
[INFO] [stdout] test machine_learning::spatial::tests::knn_matches_brute_force ... ok
[INFO] [stdout] test math::matmul::tests::dot_strided_operands ... ok
[INFO] [stdout] test math::matmul::tests::dot_par_dimension_mismatch_panics - should panic ... ok
[INFO] [stdout] test math::matmul::tests::gemm_fused_bias_relu_bitwise_matches_unfused ... ok
[INFO] [stdout] test math::matmul::tests::dot_matches_reference_f64 ... ok
[INFO] [stdout] test math::matmul::tests::dot_run_to_run_deterministic ... ok
[INFO] [stdout] test math::matmul::tests::dot_matches_reference_f32 ... ok
[INFO] [stdout] test math::reduction::tests::det_reduce_matches_serial_blocked_fold ... ok
[INFO] [stdout] test math::reduction::tests::det_reduce_range_compound_accumulator ... ok
[INFO] [stdout] test math::reduction::tests::det_reduce_range_matches_serial_blocked_fold ... ok
[INFO] [stdout] test math::reduction::tests::parallel_flag_does_not_change_bits ... ok
[INFO] [stdout] test metrics::classification::tests::test_aggregate_macro_empty_per_class_is_zero ... ok
[INFO] [stdout] test metrics::classification::tests::test_aggregate_weighted_zero_support_is_zero ... ok
[INFO] [stdout] test metrics::clustering::tests::test_cluster_centroids_known_means_and_sizes ... ok
[INFO] [stdout] test metrics::clustering::tests::test_contingency_matrix_identical_labels ... ok
[INFO] [stdout] test metrics::clustering::tests::test_contingency_matrix_uniform ... ok
[INFO] [stdout] test metrics::clustering::tests::test_entropy_nats_four_equal_clusters ... ok
[INFO] [stdout] test metrics::clustering::tests::test_entropy_nats_single_cluster ... ok
[INFO] [stdout] test metrics::clustering::tests::test_entropy_nats_two_equal_clusters ... ok
[INFO] [stdout] test metrics::clustering::tests::test_entropy_nats_unequal_clusters ... ok
[INFO] [stdout] test metrics::clustering::tests::test_entropy_nats_zero_count_skipped ... ok
[INFO] [stdout] test metrics::clustering::tests::test_expected_mutual_information_symmetric_2x2 ... ok
[INFO] [stdout] test metrics::clustering::tests::test_homogeneity_completeness_identical ... ok
[INFO] [stdout] test metrics::clustering::tests::test_homogeneity_completeness_pure_clusters ... ok
[INFO] [stdout] test metrics::clustering::tests::test_homogeneity_completeness_swapped_roles ... ok
[INFO] [stdout] test metrics::clustering::tests::test_label_index_all_distinct ... ok
[INFO] [stdout] test metrics::clustering::tests::test_label_index_first_appearance_order ... ok
[INFO] [stdout] test metrics::clustering::tests::test_label_index_single_label ... ok
[INFO] [stdout] test metrics::clustering::tests::test_ln_factorial_table_known_values ... ok
[INFO] [stdout] test metrics::clustering::tests::test_mutual_information_identical ... ok
[INFO] [stdout] test metrics::clustering::tests::test_mutual_information_independent ... ok
[INFO] [stdout] test metrics::clustering::tests::test_mutual_information_pure_clusters ... ok
[INFO] [stdout] test math::matmul::tests::matvec_matches_reference ... ok
[INFO] [stdout] test math::matmul::tests::matvec_run_to_run_deterministic ... ok
[INFO] [stdout] test metrics::clustering::tests::test_pairwise_cluster_distances_serial_matches_full_scan_bitwise ... ok
[INFO] [stdout] test math::matmul::tests::matvec_serial_and_auto_agree_bitwise ... ok
[INFO] [stdout] test neural_network::ctx::tests::a_cache_of_another_type_is_refused ... ok
[INFO] [stdout] test neural_network::ctx::tests::a_cache_of_another_layer_is_refused ... ok
[INFO] [stdout] test neural_network::ctx::tests::a_hand_driven_pass_advances_the_random_stream ... ok
[INFO] [stdout] test neural_network::ctx::tests::take_grads_empties_the_store ... ok
[INFO] [stdout] test neural_network::ctx::tests::an_empty_stack_reports_a_missing_forward_pass ... ok
[INFO] [stdout] test neural_network::error::tests::display_neural_network_transparent_forwards_inner ... ok
[INFO] [stdout] test neural_network::error::tests::forward_pass_not_run_constructor_names_layer ... ok
[INFO] [stdout] test neural_network::error::tests::display_neural_network_transparent_forwards_parameterized_inner ... ok
[INFO] [stdout] test neural_network::graph::tests::a_built_graph_is_send_and_sync ... ok
[INFO] [stdout] test neural_network::graph::tests::a_graph_with_no_inlet_is_refused ... ok
[INFO] [stdout] test neural_network::graph::tests::a_node_that_reaches_no_output_is_refused ... ok
[INFO] [stdout] test neural_network::graph::tests::a_shared_layer_holds_one_set_of_paths ... ok
[INFO] [stdout] test neural_network::initializer::tests::a_draw_stays_inside_the_range ... ok
[INFO] [stdout] test neural_network::initializer::tests::an_orthogonal_draw_has_orthonormal_columns ... ok
[INFO] [stdout] test neural_network::initializer::tests::an_orthogonal_draw_of_size_1_is_a_sign ... ok
[INFO] [stdout] test neural_network::initializer::tests::conv_1d_draws_the_plain_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::conv_1d_transpose_draws_the_transposed_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::conv_2d_draws_the_plain_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::conv_2d_transpose_draws_the_transposed_layout ... ok
[INFO] [stdout] test neural_network::graph::tests::a_chain_graph_agrees_with_the_sequential_model ... ok
[INFO] [stdout] test neural_network::initializer::tests::conv_3d_transpose_draws_the_transposed_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::conv_3d_draws_the_plain_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::dense_draws_the_dense_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::depthwise_conv_1d_draws_the_depthwise_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::depthwise_conv_2d_draws_the_depthwise_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::embedding_draws_the_fixed_range ... ok
[INFO] [stdout] test neural_network::initializer::tests::fans_of_the_dense_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::fans_of_the_depthwise_layouts ... ok
[INFO] [stdout] test neural_network::initializer::tests::fans_of_the_plain_convolution_layouts ... ok
[INFO] [stdout] test neural_network::initializer::tests::fans_of_the_separable_pointwise_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::fans_of_the_transposed_convolution_layout ... ok
[INFO] [stdout] test neural_network::initializer::tests::gru_draws_the_fused_layouts_from_1_stream ... ok
[INFO] [stdout] test neural_network::initializer::tests::lstm_draws_the_fused_layouts_from_1_stream ... ok
[INFO] [stdout] test neural_network::initializer::tests::separable_conv_1d_draws_both_layouts_from_1_stream ... ok
[INFO] [stdout] test neural_network::initializer::tests::simple_rnn_draws_both_layouts_from_1_stream ... ok
[INFO] [stdout] test neural_network::initializer::tests::the_draw_order_of_1_generator_is_fixed ... ok
[INFO] [stdout] test neural_network::initializer::tests::the_fan_free_layouts_ignore_the_pair ... ok
[INFO] [stdout] test neural_network::initializer::tests::the_glorot_range_reads_the_sum_of_the_fans ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::activation_softmax_backward_via_enum ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::activation_softmax_forward_via_enum ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::elu_half_alpha_matches_reference ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::elu_matches_reference ... ok
[INFO] [stdout] test neural_network::initializer::tests::separable_conv_2d_draws_both_layouts_from_1_stream ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::exponential_matches_reference ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::leaky_relu_matches_reference ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::selu_matches_reference ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_backward_jacobian_vector_product ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::hard_sigmoid_matches_reference ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_backward_rejects_a_mismatched_grad_output ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_backward_row_sums_to_zero ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_accepts_1d_input ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_accepts_input_that_is_not_in_c_order ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_lane_path_agrees_with_the_fold_path ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_large_equal_values_stable ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_rejects_0d_input ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_basic_row ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_rejects_out_of_range_axis ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_single_element_row ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_resolves_a_negative_axis_at_call_time ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softmax_forward_sums_to_one ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softplus_matches_reference ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softplus_backward_keeps_the_far_negative_tail ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::softsign_matches_reference ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::validate_rejects_unusable_elu_alpha ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::validate_accepts_usable_activations ... ok
[INFO] [stdout] test neural_network::layers::activation::tests::validate_rejects_unusable_leaky_relu_slope ... ok
[INFO] [stdout] test neural_network::layers::conv_op_helpers::tests::tap_offset_keeps_the_stride_and_the_dilation_independent ... ok
[INFO] [stdout] test neural_network::layers::conv_op_helpers::tests::tap_offset_skips_padding_on_both_edges ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_conv_transpose_forward_1d_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_conv_transpose_forward_gap_positions_hold_only_the_bias ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_conv_transpose_forward_filter_axis_is_innermost ... ok
[INFO] [stdout] test metrics::clustering::tests::test_pairwise_cluster_distances_parallel_run_to_run_deterministic ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_geometry_same_even_kernel ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_geometry_rejects_empty_axis ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_conv_transpose_forward_is_the_adjoint_of_conv_forward ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_geometry_same_stride_one ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_geometry_valid_needs_no_crop ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_output_length_dilated ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_output_length_valid_stride_one ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_output_length_valid_strided ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_build_padded_1d ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_output_length_valid_kernel_below_stride ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_build_padded_keeps_channels_contiguous ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_build_padded_no_padding ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_build_padded_2x2_into_4x4 ... ok
[INFO] [stdout] test neural_network::layers::convolution::conv_transpose_engine::tests::test_transpose_output_length_same ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_build_padded_two_items ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_forward_2d_filter_axis_is_innermost ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_causal_pads_only_the_leading_edge ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_causal_strided ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_same_1d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_same_2d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_same_dilated_keeps_the_length ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_valid_1d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_valid_dilated_uses_the_effective_kernel ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_valid_input_smaller_than_kernel_errors ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_geometry_valid_rejects_a_dilated_kernel_longer_than_the_input ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_crop_padded_1d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_crop_padded_roundtrip ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_crop_padded_roundtrip_multichannel ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_im2col_offsets_1d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_im2col_offsets_1d_dilated ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_im2col_offsets_1d_multichannel ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_im2col_offsets_stride_and_dilation_do_not_multiply ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_increment_index_1d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_increment_index_2d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_forward_1d_same_padding_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_spatial_strides_1d ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_conv_forward_2d_two_channels_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_spatial_strides_single_channel ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_spatial_strides_3d ... ok
[INFO] [stdout] test neural_network::layers::convolution::depthwise_conv_1d::tests::depthwise_1d_depth_multiplier_output_channel_order ... ok
[INFO] [stdout] test neural_network::layers::convolution::depthwise_conv_1d::tests::depthwise_1d_forward_keeps_channels_separate_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::convolution_engine::tests::test_spatial_strides_empty ... ok
[INFO] [stdout] test neural_network::layers::convolution::depthwise_conv_2d::tests::depthwise_forward_keeps_channels_separate_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::depthwise_conv_2d::tests::depthwise_depth_multiplier_output_channel_order ... ok
[INFO] [stdout] test neural_network::layers::convolution::separable_conv_1d::tests::separable_1d_length_pass_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::separable_conv_2d::tests::separable_stage_channel_order_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::separable_conv_1d::tests::separable_1d_stage_channel_order_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::convolution::separable_conv_2d::tests::separable_spatial_pass_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::a_second_build_for_other_shapes_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::a_gradient_of_another_shape_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::an_extent_of_one_broadcasts_and_its_gradient_reduces ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::an_inference_pass_parks_no_cache ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::rank_alignment_inserts_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::the_backward_pass_gives_the_gradient_to_every_input ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::the_batch_axis_does_not_broadcast ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::one_input_alone_comes_back_unchanged ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::the_forward_pass_sums_every_input ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::the_layer_holds_no_array_and_reports_every_build_shape ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::the_layer_takes_one_input_at_least ... ok
[INFO] [stdout] test neural_network::layers::merge::add::tests::two_extents_that_neither_hold_one_are_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::a_backward_pass_without_a_forward_pass_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::a_broadcast_input_takes_the_summed_gradient ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::a_second_build_for_other_shapes_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::an_axis_that_cannot_broadcast_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::a_gradient_of_another_shape_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::a_single_input_comes_back_unchanged ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::no_input_at_all_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::rank_alignment_inserts_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::the_backward_pass_splits_the_gradient_by_the_input_count ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::the_batch_axis_does_not_broadcast ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::the_layer_holds_no_array ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::the_forward_pass_divides_by_the_input_count ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::a_free_axis_agrees_with_any_extent ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::a_free_extent_on_the_joined_axis_frees_the_output ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::a_gradient_of_another_shape_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::a_negative_axis_counts_from_the_end ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::a_second_build_for_other_shapes_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::average::tests::the_layer_reports_its_build ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::no_axis_broadcasts ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::the_backward_pass_slices_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::the_backward_pass_slices_the_gradient_in_input_order ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::one_input_alone_comes_back_unchanged ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::the_forward_pass_joins_along_the_last_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::the_layer_holds_no_array_and_reports_every_build_shape ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::the_layer_takes_one_input_at_least ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::two_ranks_that_differ_are_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::a_gradient_of_another_shape_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::a_nan_wins_its_position ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::a_second_build_for_other_shapes_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::a_single_input_comes_back_unchanged ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::an_axis_that_cannot_broadcast_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::each_side_broadcasts_into_the_other ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::no_input_at_all_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::rank_alignment_inserts_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::the_batch_axis_does_not_broadcast ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::the_build_records_every_input_shape ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::the_forward_pass_joins_along_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::the_winner_takes_the_whole_gradient ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::tie_routes_the_gradient_to_the_first_input ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::a_nan_wins_its_position ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::a_second_build_for_other_shapes_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::a_shorter_input_aligns_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::an_axis_of_one_position_broadcasts ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::an_axis_that_cannot_broadcast_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::backward_gives_a_tie_to_the_first_input ... ok
[INFO] [stdout] test neural_network::layers::merge::concatenate::tests::an_axis_outside_the_rank_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::maximum::tests::the_fold_takes_the_larger_value ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::forward_accepts_a_single_input ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::backward_routes_the_whole_gradient_to_the_winner ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::the_batch_axis_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::a_cache_reaches_the_context_in_training_alone ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::a_second_build_for_other_shapes_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::a_single_input_passes_through ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::a_zero_in_an_input_gives_a_finite_gradient ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::an_axis_of_one_position_broadcasts ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::each_input_takes_the_product_of_the_others ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::no_input_at_all_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::rank_alignment_inserts_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::forward_takes_the_smallest_value ... ok
[INFO] [stdout] test neural_network::layers::merge::minimum::tests::no_input_at_all_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::the_layer_holds_no_array ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::two_extents_that_cannot_broadcast_are_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::a_backward_pass_without_a_forward_pass_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::a_gradient_of_another_shape_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::an_axis_of_one_position_broadcasts_and_sums_back ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::an_axis_that_cannot_broadcast_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::backward_negates_the_gradient_of_the_second_input ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::the_batch_axis_does_not_broadcast ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::forward_subtracts_the_second_input_from_the_first ... ok
[INFO] [stdout] test neural_network::layers::merge::multiply::tests::the_output_is_the_product_of_every_input ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::rank_alignment_inserts_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::the_batch_axis_does_not_broadcast ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::the_layer_takes_exactly_two_inputs ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::the_layer_reports_the_shapes_it_built_for ... ok
[INFO] [stdout] test neural_network::layers::merge::subtract::tests::the_order_of_the_two_inputs_decides_the_sign ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::a_shape_without_a_batch_axis_is_refused ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::a_single_input_gives_its_own_shape ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::an_axis_after_the_batch_axis_broadcasts ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::broadcast_input_inserts_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::equal_shapes_merge_unchanged ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::rank_alignment_inserts_after_the_batch_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::reduce_to_drops_the_inserted_axes ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::a_free_axis_frees_the_output_axis ... ok
[INFO] [stdout] test machine_learning::spatial::tests::radius_search_matches_brute_force ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::reduce_to_handles_both_kinds_of_axis ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::reduce_to_sums_an_axis_of_one_position ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::the_rule_folds_over_every_input ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_decode_index_matches_increment ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_global_pool_backward_avg ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_global_pool_backward_max ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_global_pool_forward_avg_two_channels ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::reduce_to_keeps_a_gradient_that_never_broadcast ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_global_pool_forward_max_all_negative_infinity_channel ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_global_pool_forward_max_tie_breaks_to_first ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_global_pool_forward_max_two_channels ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::a_free_batch_axis_takes_the_other_extent ... ok
[INFO] [stdout] test neural_network::layers::merge::tests::the_batch_axis_does_not_broadcast ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_increment_index_exhausted ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_increment_index_normal ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_row_major_strides_2d ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_row_major_strides_3d ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_row_major_strides_empty ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_backward_1d_avg_nonoverlapping ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_backward_1d_avg_overlapping ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_backward_1d_max_nonoverlapping ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_backward_1d_max_two_channels ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_1d_avg ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_1d_avg_same_padding_excludes_pad ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_1d_max ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_row_major_strides_1d ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_1d_max_all_negative_infinity_window ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_2d_max ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_2d_max_tie_breaks_to_first ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_1d_max_two_channels ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_output_shapes ... ok
[INFO] [stdout] test neural_network::layers::pooling::validation::tests::test_validate_pool_size_3d_all_fitting_ok ... ok
[INFO] [stdout] test neural_network::layers::pooling::validation::tests::test_validate_pool_size_3d_oversized_height ... ok
[INFO] [stdout] test neural_network::layers::pooling::validation::tests::test_validate_pool_size_3d_oversized_width ... ok
[INFO] [stdout] test neural_network::layers::recurrent::gate::tests::fused_gates_new_bias_blocks ... ok
[INFO] [stdout] test neural_network::layers::recurrent::gate::tests::fused_gates_new_recurrent_blocks_orthogonal ... ok
[INFO] [stdout] test neural_network::layers::recurrent::gate::tests::fused_gates_new_rejects_zero_dims ... ok
[INFO] [stdout] test neural_network::layers::recurrent::gate::tests::fused_gates_new_shapes ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_2d_avg ... ok
[INFO] [stdout] test neural_network::layers::recurrent::gate::tests::parameters_mut_decay_flags ... ok
[INFO] [stdout] test neural_network::layers::recurrent::gate::tests::parameters_mut_three_named_entries ... ok
[INFO] [stdout] test neural_network::layers::recurrent::gate::tests::project_input_matches_per_timestep_gemm ... ok
[INFO] [stdout] test neural_network::layers::recurrent::tests::apply_sigmoid_large_negative_approaches_zero ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_increment_index_carry ... ok
[INFO] [stdout] test neural_network::layers::recurrent::tests::apply_sigmoid_large_positive_approaches_one ... ok
[INFO] [stdout] test neural_network::layers::recurrent::tests::apply_sigmoid_large_positive_inputs_saturate_equally ... ok
[INFO] [stdout] test neural_network::layers::recurrent::tests::input_step_backward_reverses_the_time_axis ... ok
[INFO] [stdout] test neural_network::layers::recurrent::tests::apply_sigmoid_zero_gives_half ... ok
[INFO] [stdout] test neural_network::layers::recurrent::tests::input_step_forward_is_the_identity ... ok
[INFO] [stdout] test neural_network::layers::regularization::dropout::tests::spatial_dropout_scale_drops_whole_channels ... ok
[INFO] [stdout] test neural_network::layers::regularization::dropout::tests::spatial_dropout_scale_masks_are_per_batch_item ... ok
[INFO] [stdout] test neural_network::layers::recurrent::tests::apply_sigmoid_no_nan_or_inf ... ok
[INFO] [stdout] test neural_network::layers::pooling::pooling_engine::tests::test_windowed_pool_forward_parallel_matches_serial ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::batch_normalization::tests::spatial_forward_normalizes_per_channel_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::batch_normalization::tests::spatial_pass_matches_the_equivalent_two_d_pass_bitwise ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::multiple_identity_perm_matches_default_on_reshaped_input ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::multiple_nontrivial_perm_matches_default_on_merged_input ... ok
[INFO] [stdout] test neural_network::layers::regularization::dropout::tests::spatial_dropout_scale_parallel_flag_invariant ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::row_path_exact_on_integer_data_matches_broadcast_reference ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_normalized_axes_duplicate_axes_error ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_normalized_axes_empty_axes_error ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_normalized_axes_out_of_bounds_error ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_normalized_axes_perm ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_normalized_axes_permuted_shape ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_normalized_axes_shape ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_unmerge_round_trip ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::test_merge_unmerge_round_trip_nontrivial_perm ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::batch_normalization::tests::par_col_folds_exact_on_integer_data ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::tests::group_norm_backward_matches_finite_difference ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::tests::group_norm_forward_hand_derived ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::tests::group_norm_group_count_extremes ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::tests::group_stats_parallel_matches_serial_bitwise ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::tests::group_norm_variance_survives_a_large_mean ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_height_and_weight_same ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_height_and_weight_same_stride_one ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_height_and_weight_valid ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_shape_1d_pooling_full_window ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_shape_2d_pooling ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_shape_2d_valid ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_shape_1d_pooling ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adagrad_step_accumulation_across_steps ... ok
[INFO] [stdout] test neural_network::layers::shape_helpers::tests::test_calculate_output_shape_3d_pooling ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adagrad_step_negative_gradient ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adagrad_step_parallel_path ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adam_step_parallel_path ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adagrad_step_single_element ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adam_step_t1_from_zero ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adam_step_t2_moment_accumulation ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::adam_step_zero_gradient ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::l2_regularized_grad_adds_weight_decay_times_param ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::rmsprop_step_nonzero_initial_cache ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::rmsprop_step_parallel_path ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::rmsprop_step_single_element ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::rmsprop_step_two_elements ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::scaled_grad_nonunit_scale_multiplies ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::scaled_grad_unit_scale_borrows_unchanged ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::sgd_momentum_step_accumulates ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::sgd_momentum_step_nesterov ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::sgd_step_parallel_path ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::sgd_step_small_path ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::sgd_step_zero_lr ... ok
[INFO] [stdout] test neural_network::sequential::tests::a_built_model_is_send_and_sync ... ok
[INFO] [stdout] test neural_network::shape::tests::check_min_rank_accepts_a_higher_rank ... ok
[INFO] [stdout] test neural_network::shape::tests::check_rank_reports_the_rank_it_wanted ... ok
[INFO] [stdout] test neural_network::shape::tests::dims_needs_every_axis_fixed ... ok
[INFO] [stdout] test neural_network::shape::tests::display_keeps_both_rank_1_forms ... ok
[INFO] [stdout] test neural_network::shape::tests::display_prints_a_fixed_shape ... ok
[INFO] [stdout] test neural_network::shape::tests::display_prints_a_free_batch_axis ... ok
[INFO] [stdout] test neural_network::shape::tests::display_prints_a_rank_0_shape ... ok
[INFO] [stdout] test neural_network::shape::tests::display_prints_two_free_axes ... ok
[INFO] [stdout] test neural_network::optimizers::kernels::tests::apply_weight_decay_scales_param ... ok
[INFO] [stdout] test neural_network::shape::tests::from_batch_rejoins_the_batch_axis ... ok
[INFO] [stdout] test neural_network::shape::tests::split_batch_keeps_the_batch_axis ... ok
[INFO] [stdout] test neural_network::shape::tests::split_batch_refuses_a_free_axis ... ok
[INFO] [stdout] test neural_network::shape::tests::split_batch_refuses_a_rank_0_shape ... ok
[INFO] [stdout] test neural_network::shape::tests::with_free_batch_accepts_an_empty_list ... ok
[INFO] [stdout] test neural_network::shape::tests::with_free_batch_frees_only_axis_0 ... ok
[INFO] [stdout] test neural_network::shape::tests::free_batch_frees_only_axis_0 ... ok
[INFO] [stdout] test traits::tests::transformers_through_traits ... ok
[INFO] [stdout] test traits::utils_tests::scaler_through_traits ... ok
[INFO] [stdout] test traits::tests::fit_and_predict_through_traits ... ok
[INFO] [stdout] test tuning::tests::matmul_chunk_elems_gate_roundtrips ... ok
[INFO] [stdout] test utils::scaler::max_abs_scaler::tests::all_zero_feature_stays_zero ... ok
[INFO] [stdout] test utils::scaler::max_abs_scaler::tests::divides_by_column_magnitude ... ok
[INFO] [stdout] test utils::scaler::max_abs_scaler::tests::inverse_transform_round_trips ... ok
[INFO] [stdout] test utils::scaler::max_abs_scaler::tests::partial_fit_keeps_the_larger_magnitude ... ok
[INFO] [stdout] test utils::scaler::max_abs_scaler::tests::transform_before_fit_gives_not_fitted ... ok
[INFO] [stdout] test utils::scaler::max_abs_scaler::tests::training_values_stay_within_unit_magnitude ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::constant_feature_maps_to_range_start ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::custom_feature_range ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::clip_bounds_out_of_range_values ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::invalid_feature_range_is_rejected ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::inverse_transform_round_trips ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::default_range_maps_training_extrema_to_unit_interval ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::partial_fit_widens_the_interval ... ok
[INFO] [stdout] test utils::scaler::normalizer::tests::honours_the_configured_order ... ok
[INFO] [stdout] test utils::scaler::normalizer::tests::invalid_lp_order_is_rejected ... ok
[INFO] [stdout] test utils::scaler::normalizer::tests::scales_rows_to_unit_l2_norm ... ok
[INFO] [stdout] test utils::scaler::normalizer::tests::transform_before_fit_gives_not_fitted ... ok
[INFO] [stdout] test utils::scaler::normalizer::tests::transform_is_independent_of_the_batch ... ok
[INFO] [stdout] test utils::scaler::normalizer::tests::zero_row_is_left_untouched ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::constant_feature_maps_to_zeros ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::custom_quantile_range ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::flags_control_what_transform_applies ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::invalid_quantile_range_is_rejected ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::inverse_transform_round_trips ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::learns_median_and_iqr ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::matches_scikit_learn_reference_example ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::resists_an_outlier ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::single_sample_fit ... ok
[INFO] [stdout] test utils::scaler::robust_scaler::tests::transform_before_fit_gives_not_fitted ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::constant_feature_maps_to_zeros ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::fit_transform_matches_standardize_column ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::flags_control_what_transform_applies ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::inverse_transform_round_trips ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::non_finite_input_is_rejected ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::partial_fit_matches_single_fit ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::transform_before_fit_gives_not_fitted ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::transform_feature_mismatch_gives_dimension_mismatch ... ok
[INFO] [stdout] test utils::scaler::standard_scaler::tests::transform_reuses_training_statistics ... ok
[INFO] [stdout] test utils::scaler::min_max_scaler::tests::transform_before_fit_gives_not_fitted ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::layer_normalization::tests::row_passes_parallel_flag_invariant ... ok
[INFO] [stdout] test math::matmul::tests::dot_thin_output ... ok
[INFO] [stdout] test math::matmul::tests::dot_par_thread_count_independent_f32 ... ok
[INFO] [stdout] test neural_network::layers::regularization::normalization::batch_normalization::tests::par_col_folds_match_serial_blocked_reference ... ok
[INFO] [stdout] test metrics::clustering::tests::test_pairwise_cluster_distances_parallel_matches_full_scan ... ok
[INFO] [stdout] test math::matmul::tests::dot_par_thread_count_independent_f64 ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 547 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 9.32s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/machine_learning/main.rs (/opt/rustwide/target/debug/build/rustyml/ded7c3fc6fd7159c/out/machine_learning-ded7c3fc6fd7159c)
[INFO] [stdout] 
[INFO] [stdout] running 582 tests
[INFO] [stdout] test dbscan::all_three_metric_variants_stored_correctly ... ok
[INFO] [stdout] test dbscan::constructor_default_values ... ok
[INFO] [stdout] test dbscan::constructor_rejects_min_samples_zero ... ok
[INFO] [stdout] test dbscan::constructor_rejects_invalid_minkowski_p ... ok
[INFO] [stdout] test dbscan::constructor_rejects_invalid_eps ... ok
[INFO] [stdout] test dbscan::constructor_valid_stores_parameters ... ok
[INFO] [stdout] test dbscan::default_constructor_model_is_usable ... ok
[INFO] [stdout] test dbscan::all_noise_when_eps_tiny ... ok
[INFO] [stdout] test dbscan::fit_euclidean_correct_labels_two_blobs_noise ... ok
[INFO] [stdout] test dbscan::all_connected_single_cluster ... ok
[INFO] [stdout] test dbscan::fit_high_dimensional_falls_back_to_brute_force ... ok
[INFO] [stdout] test dbscan::fit_euclidean_core_indices_sorted_and_non_noise ... ok
[INFO] [stdout] test dbscan::fit_rejects_non_finite_in_data ... ok
[INFO] [stdout] test dbscan::minkowski_p1_same_structure_as_manhattan ... ok
[INFO] [stdout] test dbscan::minkowski_p2_same_structure_as_euclidean ... ok
[INFO] [stdout] test dbscan::predict_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test dbscan::fit_predict_equals_fit_then_get_labels ... ok
[INFO] [stdout] test dbscan::fit_rejects_empty_data ... ok
[INFO] [stdout] test dbscan::clustering_euclidean_metric_two_blobs_noise ... ok
[INFO] [stdout] test dbscan::clustering_minkowski_p3_metric_two_blobs_noise ... ok
[INFO] [stdout] test dbscan::predict_assigns_nearest_core_label_not_arbitrary ... ok
[INFO] [stdout] test dbscan::predict_core_training_points_return_fit_labels ... ok
[INFO] [stdout] test dbscan::clustering_manhattan_metric_two_blobs_noise ... ok
[INFO] [stdout] test dbscan::predict_empty_new_data_returns_empty_array ... ok
[INFO] [stdout] test dbscan::predict_new_point_near_blob_a_returns_label_0 ... ok
[INFO] [stdout] test dbscan::predict_far_point_returns_noise ... ok
[INFO] [stdout] test dbscan::predict_point_at_eps_boundary_inclusive ... ok
[INFO] [stdout] test dbscan::predict_new_point_near_blob_b_returns_label_1 ... ok
[INFO] [stdout] test dbscan::save_load_round_trip_preserves_state_and_predictions ... ok
[INFO] [stdout] test dbscan::predict_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test dbscan::single_point_min_samples_1_is_core_cluster_0 ... ok
[INFO] [stdout] test dbscan::predict_label_values_canonical_three_cases ... ok
[INFO] [stdout] test dbscan::predict_nearest_core_outside_eps_returns_noise ... ok
[INFO] [stdout] test dbscan::predict_non_finite_in_new_data_returns_non_finite ... ok
[INFO] [stdout] test dbscan::predict_point_just_beyond_eps_is_noise ... ok
[INFO] [stdout] test decision_tree::random_state_none_is_deterministic ... ok
[INFO] [stdout] test decision_tree::random_state_same_seed_is_reproducible ... ok
[INFO] [stdout] test decision_tree::global_seed_makes_none_tree_tie_breaking_reproducible ... ok
[INFO] [stdout] test decision_tree::min_samples_leaf_does_not_suppress_a_valid_categorical_split ... ok
[INFO] [stdout] test decision_tree::min_samples_leaf_does_not_suppress_a_valid_numeric_split ... ok
[INFO] [stdout] test decision_tree::test_c45_classifier_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_c45_multiclass_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_cart_classifier_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_cart_multiclass_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_c45_categorical_multiway_split_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_cart_fit_predict_equals_fit_then_predict ... ok
[INFO] [stdout] test decision_tree::min_impurity_decrease_uses_sklearn_node_weight_scaling ... ok
[INFO] [stdout] test decision_tree::test_cart_regression_memorizes_unique_samples ... ok
[INFO] [stdout] test decision_tree::test_cart_ignores_categorical_feature_designation ... ok
[INFO] [stdout] test decision_tree::test_constructor_custom_params_stored_correctly ... ok
[INFO] [stdout] test decision_tree::test_categorical_unseen_value_falls_back_without_error ... ok
[INFO] [stdout] test decision_tree::test_cart_regression_step_function_leaf_means ... ok
[INFO] [stdout] test decision_tree::random_state_varies_tie_breaking ... ok
[INFO] [stdout] test decision_tree::test_constructor_id3_c45_regression_returns_invalid_input ... ok
[INFO] [stdout] test decision_tree::test_constructor_invalid_min_impurity_decrease ... ok
[INFO] [stdout] test decision_tree::test_fit_negative_labels_rejected ... ok
[INFO] [stdout] test decision_tree::test_fit_nan_in_x_rejected ... ok
[INFO] [stdout] test decision_tree::test_fit_too_few_samples_for_min_samples_split ... ok
[INFO] [stdout] test decision_tree::test_generate_tree_structure_before_fit_not_fitted ... ok
[INFO] [stdout] test decision_tree::test_generate_tree_structure_returns_nonempty_string_after_fit ... ok
[INFO] [stdout] test decision_tree::test_get_categorical_features_reflects_set ... ok
[INFO] [stdout] test decision_tree::test_id3_categorical_multiway_split_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_constructor_min_samples_out_of_range ... ok
[INFO] [stdout] test decision_tree::test_id3_classifier_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_constructor_default_params_cart_classifier ... ok
[INFO] [stdout] test decision_tree::test_fit_fractional_labels_rejected ... ok
[INFO] [stdout] test decision_tree::test_id3_multiclass_zero_training_error ... ok
[INFO] [stdout] test decision_tree::test_max_depth_1_cannot_perfectly_fit_xor ... ok
[INFO] [stdout] test decision_tree::test_max_depth_1_suffices_for_linearly_separable_data ... ok
[INFO] [stdout] test decision_tree::test_min_samples_leaf_constrains_split_search ... ok
[INFO] [stdout] test decision_tree::test_min_samples_split_stops_recursion_shallower_tree ... ok
[INFO] [stdout] test decision_tree::test_multiclass_predict_outputs_in_valid_domain ... ok
[INFO] [stdout] test decision_tree::test_predict_before_fit_not_fitted ... ok
[INFO] [stdout] test decision_tree::test_max_depth_zero_root_is_leaf_predicts_global_majority ... ok
[INFO] [stdout] test decision_tree::test_min_samples_leaf_greater_than_split_rejected_at_fit ... ok
[INFO] [stdout] test decision_tree::test_min_impurity_decrease_prunes_root_split_at_half ... ok
[INFO] [stdout] test decision_tree::test_predict_one_before_fit_not_fitted ... ok
[INFO] [stdout] test decision_tree::test_predict_one_wrong_n_features_dimension_mismatch ... ok
[INFO] [stdout] test decision_tree::test_predict_outputs_are_valid_class_labels ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_exact_impure_leaf_distribution ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_on_regressor_returns_not_classification_tree ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_before_fit_not_fitted ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_one_before_fit_not_fitted ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_one_on_unfitted_regressor_returns_not_classification_tree ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_one_sum_and_argmax ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_pure_leaf_gives_one_hot ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_rows_sum_to_one_and_argmax_matches_predict ... ok
[INFO] [stdout] test decision_tree::test_pure_training_set_creates_pure_root_leaf ... ok
[INFO] [stdout] test decision_tree::test_save_load_c45_classifier_round_trip ... ok
[INFO] [stdout] test decision_tree::test_save_load_cart_regressor_round_trip ... ok
[INFO] [stdout] test decision_tree::test_predict_proba_wrong_n_features_dimension_mismatch ... ok
[INFO] [stdout] test decision_tree::test_save_load_categorical_multiway_round_trip_identical_predictions ... ok
[INFO] [stdout] test decision_tree::test_save_load_round_trip_identical_predictions ... ok
[INFO] [stdout] test decision_tree::test_predict_wrong_n_features_dimension_mismatch ... ok
[INFO] [stdout] test decision_tree::test_pure_regression_set_creates_pure_root_leaf ... ok
[INFO] [stdout] test isolation_forest::contamination_auto_uses_paper_threshold ... ok
[INFO] [stdout] test isolation_forest::contamination_fraction_offset_is_the_training_score_percentile ... ok
[INFO] [stdout] test isolation_forest::predict_handles_non_contiguous_input ... ok
[INFO] [stdout] test isolation_forest::predict_count_matches_contamination ... ok
[INFO] [stdout] test isolation_forest::offset_survives_save_load_round_trip ... ok
[INFO] [stdout] test isolation_forest::predict_flags_obvious_outlier ... ok
[INFO] [stdout] test isolation_forest::test_default_has_expected_parameter_values ... ok
[INFO] [stdout] test isolation_forest::test_fit_and_predict_on_single_sample ... ok
[INFO] [stdout] test isolation_forest::test_fit_and_predict_with_single_feature ... ok
[INFO] [stdout] test isolation_forest::test_fit_empty_data_returns_empty_input ... ok
[INFO] [stdout] test isolation_forest::test_different_seeds_may_produce_different_scores ... ok
[INFO] [stdout] test isolation_forest::samples_exactly_on_the_cutoff_are_inliers ... ok
[INFO] [stdout] test isolation_forest::test_fit_non_finite_returns_non_finite ... ok
[INFO] [stdout] test isolation_forest::predict_on_single_sample_is_not_forced_to_outlier ... ok
[INFO] [stdout] test isolation_forest::test_fit_sets_n_features ... ok
[INFO] [stdout] test isolation_forest::test_fit_stores_exactly_n_estimators_trees ... ok
[INFO] [stdout] test isolation_forest::test_fit_with_constant_feature_column_does_not_panic ... ok
[INFO] [stdout] test isolation_forest::test_fit_with_fewer_rows_than_max_samples_succeeds ... ok
[INFO] [stdout] test isolation_forest::test_identical_points_score_matches_closed_form_when_sample_size_below_max_samples ... ok
[INFO] [stdout] test isolation_forest::test_identical_points_score_equals_one_half_when_sample_size_equals_max_samples ... ok
[INFO] [stdout] test isolation_forest::test_load_from_nonexistent_path_returns_io_error ... ok
[INFO] [stdout] test isolation_forest::test_new_auto_max_depth_ceil_log2_max_samples ... ok
[INFO] [stdout] test isolation_forest::test_new_auto_max_depth_ceil_log2_non_power_of_two ... ok
[INFO] [stdout] test isolation_forest::test_new_auto_max_depth_ceil_log2_one ... ok
[INFO] [stdout] test isolation_forest::test_new_auto_max_depth_ceil_log2_two ... ok
[INFO] [stdout] test isolation_forest::test_fit_and_predict_high_dimensional ... ok
[INFO] [stdout] test isolation_forest::test_new_valid_explicit_max_depth_succeeds ... ok
[INFO] [stdout] test isolation_forest::test_new_rejects_invalid_scalar_arguments ... ok
[INFO] [stdout] test isolation_forest::test_n_features_reflects_training_data_columns ... ok
[INFO] [stdout] test isolation_forest::test_predict_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test isolation_forest::test_outlier_score_exceeds_all_inlier_scores ... ok
[INFO] [stdout] test isolation_forest::test_fit_predict_matches_fit_then_predict ... ok
[INFO] [stdout] test isolation_forest::test_outlier_score_sample_is_below_inlier_via_single_sample_api ... ok
[INFO] [stdout] test isolation_forest::test_predict_empty_data_returns_empty_input ... ok
[INFO] [stdout] test isolation_forest::test_predict_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test isolation_forest::test_predict_nan_returns_non_finite ... ok
[INFO] [stdout] test isolation_forest::test_score_sample_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test isolation_forest::test_identical_points_have_equal_scores ... ok
[INFO] [stdout] test isolation_forest::test_same_seed_produces_identical_scores ... ok
[INFO] [stdout] test isolation_forest::with_contamination_rejects_invalid_fraction ... ok
[INFO] [stdout] test isolation_forest::test_save_load_roundtrip_yields_identical_predictions ... ok
[INFO] [stdout] test isolation_forest::test_score_sample_wrong_dim_returns_dimension_mismatch ... ok
[INFO] [stdout] test kernel_pca::test_cosine_kernel_known_value ... ok
[INFO] [stdout] test isolation_forest::test_scores_are_in_negative_unit_interval ... ok
[INFO] [stdout] test kernel_pca::test_determinism_dense_solver ... ok
[INFO] [stdout] test kernel_pca::test_centering_training_output_has_near_zero_column_means ... ok
[INFO] [stdout] test kernel_pca::test_all_three_solvers_produce_finite_shapes ... ok
[INFO] [stdout] test kernel_pca::test_eigenvalues_are_positive_after_fit ... ok
[INFO] [stdout] test kernel_pca::test_eigensolver_dense_vs_lanczos_agree ... ok
[INFO] [stdout] test kernel_pca::test_eigensolver_dense_vs_power_iteration_agree ... ok
[INFO] [stdout] test kernel_pca::test_fit_empty_input_returns_empty_input ... ok
[INFO] [stdout] test kernel_pca::test_fit_one_sample_returns_invalid_input ... ok
[INFO] [stdout] test kernel_pca::test_fit_indefinite_kernel_negative_eigenvalue_is_tolerated ... ok
[INFO] [stdout] test isolation_forest::predict_label_is_independent_of_batching ... ok
[INFO] [stdout] test kernel_pca::test_fit_transform_cosine_kernel ... ok
[INFO] [stdout] test kernel_pca::test_fit_transform_poly_kernel ... ok
[INFO] [stdout] test kernel_pca::test_fit_transform_rbf_kernel ... ok
[INFO] [stdout] test kernel_pca::test_fit_transform_sigmoid_kernel ... ok
[INFO] [stdout] test kernel_pca::test_fit_non_finite_in_input_returns_non_finite ... ok
[INFO] [stdout] test kernel_pca::test_linear_kernel_known_value ... ok
[INFO] [stdout] test kernel_pca::test_load_from_nonexistent_path_returns_io_error ... ok
[INFO] [stdout] test kernel_pca::test_new_cosine_kernel ... ok
[INFO] [stdout] test kernel_pca::test_new_default_values ... ok
[INFO] [stdout] test kernel_pca::test_new_linear_kernel ... ok
[INFO] [stdout] test kernel_pca::test_fit_transform_equals_fit_then_transform ... ok
[INFO] [stdout] test kernel_pca::test_new_n_components_zero_returns_invalid_parameter ... ok
[INFO] [stdout] test kernel_pca::test_new_poly_invalid_param_returns_invalid_parameter ... ok
[INFO] [stdout] test kernel_pca::test_new_poly_kernel ... ok
[INFO] [stdout] test kernel_pca::test_n_components_equals_n_samples_boundary ... ok
[INFO] [stdout] test kernel_pca::test_fit_transform_linear_kernel ... ok
[INFO] [stdout] test kernel_pca::test_new_sigmoid_kernel ... ok
[INFO] [stdout] test kernel_pca::test_new_sigmoid_gamma_zero_accepted ... ok
[INFO] [stdout] test kernel_pca::test_fit_n_components_greater_than_n_samples_returns_invalid_parameter ... ok
[INFO] [stdout] test kernel_pca::test_new_sigmoid_non_finite_param_returns_invalid_parameter ... ok
[INFO] [stdout] test kernel_pca::test_poly_kernel_known_value ... ok
[INFO] [stdout] test kernel_pca::test_rbf_kernel_known_value ... ok
[INFO] [stdout] test kernel_pca::test_save_load_round_trip ... ok
[INFO] [stdout] test isolation_forest::test_score_sample_is_in_negative_unit_interval ... ok
[INFO] [stdout] test kernel_pca::test_sigmoid_kernel_known_value ... ok
[INFO] [stdout] test kernel_pca::test_single_feature_data_fits_and_transforms ... ok
[INFO] [stdout] test kernel_pca::test_rbf_separates_radial_clusters_better_than_linear ... ok
[INFO] [stdout] test kernel_pca::test_transform_nan_in_input_returns_error ... ok
[INFO] [stdout] test kernel_pca::test_transform_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test kernel_pca::test_two_samples_is_valid ... ok
[INFO] [stdout] test kernel_pca::test_new_rbf_invalid_gamma_returns_invalid_parameter ... ok
[INFO] [stdout] test kernel_pca::test_new_rbf_kernel ... ok
[INFO] [stdout] test kernel_pca::test_transform_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test kmeans::constructor_invalid_params_are_rejected ... ok
[INFO] [stdout] test kmeans::default_constructor_has_documented_defaults ... ok
[INFO] [stdout] test kmeans::constructor_valid_stores_params ... ok
[INFO] [stdout] test kmeans::fit_empty_data_is_error ... ok
[INFO] [stdout] test kernel_pca::test_transform_empty_input_returns_empty_input ... ok
[INFO] [stdout] test kmeans::converged_centroids_equal_their_cluster_means ... ok
[INFO] [stdout] test kmeans::fit_fewer_samples_than_clusters_is_error ... ok
[INFO] [stdout] test kmeans::fit_k3_centroids_near_true_blob_means ... ok
[INFO] [stdout] test kmeans::fit_non_finite_data_is_error ... ok
[INFO] [stdout] test kmeans::different_seeds_still_converge_to_same_partition_on_blob_data ... ok
[INFO] [stdout] test kmeans::fit_k3_labels_respect_blob_structure ... ok
[INFO] [stdout] test kmeans::actual_iterations_is_in_valid_range_after_fit ... ok
[INFO] [stdout] test kmeans::fit_predict_equals_fit_then_get_labels ... ok
[INFO] [stdout] test kmeans::k1_all_labels_are_zero ... ok
[INFO] [stdout] test kmeans::inertia_is_positive_on_blob_data ... ok
[INFO] [stdout] test kmeans::k1_centroid_equals_global_mean ... ok
[INFO] [stdout] test kmeans::load_from_nonexistent_path_is_io_error ... ok
[INFO] [stdout] test kmeans::predict_before_fit_is_not_fitted ... ok
[INFO] [stdout] test kmeans::predict_empty_input_after_fit_is_empty_input ... ok
[INFO] [stdout] test kmeans::predict_nan_input_is_non_finite ... ok
[INFO] [stdout] test kmeans::k_equals_n_samples_boundary ... ok
[INFO] [stdout] test kmeans::inertia_decreases_as_k_grows ... ok
[INFO] [stdout] test kmeans::predict_new_points_near_blob_centres ... ok
[INFO] [stdout] test kmeans::predict_wrong_feature_count_is_dimension_mismatch ... ok
[INFO] [stdout] test kmeans::predict_on_training_data_matches_fit_labels ... ok
[INFO] [stdout] test kmeans::test_labels_agree_with_predict_when_max_iter_is_hit ... ok
[INFO] [stdout] test kmeans::test_n_init_defaults_to_ten ... ok
[INFO] [stdout] test kmeans::same_seed_gives_identical_results ... ok
[INFO] [stdout] test knn::constructor_default_values ... ok
[INFO] [stdout] test knn::constructor_k_one_succeeds ... ok
[INFO] [stdout] test knn::constructor_k_zero_returns_invalid_parameter ... ok
[INFO] [stdout] test knn::constructor_rejects_minkowski_p_below_one ... ok
[INFO] [stdout] test knn::constructor_stores_parameters ... ok
[INFO] [stdout] test knn::fit_empty_x_returns_empty_input ... ok
[INFO] [stdout] test knn::fit_fewer_samples_than_k_returns_invalid_input ... ok
[INFO] [stdout] test kmeans::save_load_round_trip_preserves_predictions ... ok
[INFO] [stdout] test knn::fit_mismatched_y_length_returns_dimension_mismatch ... ok
[INFO] [stdout] test knn::fit_non_finite_in_x_returns_non_finite ... ok
[INFO] [stdout] test knn::predict_and_predict_parallel_agree_distance_weights ... ok
[INFO] [stdout] test knn::fit_predict_returns_training_labels ... ok
[INFO] [stdout] test knn::predict_and_predict_parallel_agree_small_k ... ok
[INFO] [stdout] test knn::predict_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test knn::predict_distance_zero_exact_match_returns_immediately ... ok
[INFO] [stdout] test knn::predict_distance_weighting_closer_wins ... ok
[INFO] [stdout] test knn::predict_empty_x_test_returns_empty_input ... ok
[INFO] [stdout] test knn::predict_high_dimensional_falls_back_to_brute_force ... ok
[INFO] [stdout] test knn::predict_k1_manhattan_correctness ... ok
[INFO] [stdout] test knn::predict_k1_euclidean_correctness ... ok
[INFO] [stdout] test knn::predict_k3_majority_clean ... ok
[INFO] [stdout] test kmeans::test_n_init_restarts_never_worsen_inertia ... ok
[INFO] [stdout] test knn::predict_minkowski_p2_equals_euclidean ... ok
[INFO] [stdout] test knn::predict_minkowski_p3_correct_nearest_neighbour ... ok
[INFO] [stdout] test knn::predict_k3_majority_two_to_one_split ... ok
[INFO] [stdout] test knn::predict_minkowski_p1_equals_manhattan ... ok
[INFO] [stdout] test knn::predict_parallel_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test knn::predict_nan_in_x_test_returns_non_finite ... ok
[INFO] [stdout] test knn::predict_string_labels ... ok
[INFO] [stdout] test knn::predict_parallel_large_k_distance_weighting_exercises_parallel_weight_branch ... ok
[INFO] [stdout] test knn::save_and_load_preserves_model_metadata ... ok
[INFO] [stdout] test knn::predict_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test knn::predict_parallel_large_k_exercises_parallel_voting_branch ... ok
[INFO] [stdout] test knn::save_and_load_produces_identical_predictions ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_classes_sorted_after_fit ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_class_means_correct_2class_1d ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_all_solvers_classify_correctly ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_decision_function_shape_and_argmax_matches_predict ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_decision_function_and_predict_proba_not_fitted_error ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_default_fits_binary_data_via_auto_n_components ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_default_impl ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_class_with_single_sample_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_empty_rows_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_n_components_exceeds_max_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_n_samples_le_n_classes_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_non_finite_in_x_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_determinism_svd_same_data ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_predict_holdout_svd ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_default_auto_caps_multiclass_components ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_single_class_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_predict_train_100pct_svd ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_transform_equals_fit_then_transform ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_x_y_length_mismatch_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_transform_sets_projection ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_new_default_values ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_new_explicit_solver_and_shrinkage ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_new_shrinkage_boundary_one_succeeds ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_load_preserves_fit_state ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_new_shrinkage_boundary_zero_succeeds ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_new_zero_components_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_predict_before_fit_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_predict_labels_are_i32_domain ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_new_shrinkage_manual_invalid_alpha_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_fit_predict_large_separable_parallel_paths ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_predict_proba_confident_on_separated_data ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_predict_proba_rows_are_distributions ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_predict_wrong_feature_count_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_priors_equal_for_balanced_classes ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_priors_sum_to_one ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_projection_whitens_within_class_covariance_eigen ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_predict_proba_equals_softmax_of_decision_function ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_save_load_preserves_hyperparameters ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_projection_whitens_within_class_covariance_lsqr ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_shrinkage_auto_classifies_correctly ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_save_load_round_trip ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_projection_whitens_within_class_covariance_svd ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_shrinkage_manual_half_classifies_correctly ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_shrinkage_manual_boundary_one_produces_finite_output ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_axes_whiten_the_within_class_covariance ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_before_fit_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_n_components_1 ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_shrinkage_manual_zero_matches_no_shrinkage ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_output_finite ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_output_shape_2d_3class ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_single_sample ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_wrong_feature_count_errors ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_two_class_1d_projected_class_separation ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_transform_projected_training_data_is_mean_zero ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_two_class_1d_classification_correctness ... ok
[INFO] [stdout] test linear_discriminant_analysis::test_two_class_1d_projection_is_the_whitening_scale ... ok
[INFO] [stdout] test linear_regression::constructor_getters_round_trip ... ok
[INFO] [stdout] test linear_regression::constructor_invalid_regularization_alpha_is_invalid ... ok
[INFO] [stdout] test linear_regression::constructor_valid_parameters_succeeds ... ok
[INFO] [stdout] test linear_regression::default_constructor_can_fit_and_predict ... ok
[INFO] [stdout] test linear_regression::default_constructor_has_expected_hyperparameters ... ok
[INFO] [stdout] test linear_regression::default_solver_is_exact_ols_matching_scikit_learn ... ok
[INFO] [stdout] test linear_regression::fit_empty_x_returns_empty_input ... ok
[INFO] [stdout] test linear_regression::fit_huge_learning_rate_diverges_returns_non_finite ... ok
[INFO] [stdout] test linear_regression::fit_non_finite_in_x_returns_non_finite ... ok
[INFO] [stdout] test linear_regression::clone_of_fitted_model_makes_identical_predictions ... ok
[INFO] [stdout] test kmeans::fit_parallel_branch_k3_centroids_near_true_means_1200 ... ok
[INFO] [stdout] test linear_regression::fit_sets_n_iter ... ok
[INFO] [stdout] test linear_regression::fit_y_length_mismatch_returns_dimension_mismatch ... ok
[INFO] [stdout] test linear_regression::fit_predict_values_match_known_true_values ... ok
[INFO] [stdout] test linear_regression::determinism_same_data_identical_predictions ... ok
[INFO] [stdout] test kernel_pca::test_parallel_path_n_samples_200 ... ok
[INFO] [stdout] test linear_regression::fit_predict_matches_fit_then_predict ... ok
[INFO] [stdout] test linear_regression::l1_regularization_many_features_recovers_informative_feature ... ok
[INFO] [stdout] test linear_regression::l2_regularization_intercept_within_reasonable_range ... ok
[INFO] [stdout] test linear_regression::l1_regularization_produces_exact_zeros ... ok
[INFO] [stdout] test linear_regression::no_intercept_coefficient_converges_to_slope ... ok
[INFO] [stdout] test linear_regression::no_intercept_getter_returns_false ... ok
[INFO] [stdout] test linear_regression::no_intercept_stored_intercept_is_zero ... ok
[INFO] [stdout] test linear_regression::l1_regularization_shrinks_coefficient ... ok
[INFO] [stdout] test linear_regression::normal_solver_no_intercept_matches_normal_equation ... ok
[INFO] [stdout] test linear_regression::normal_solver_recovers_exact_coefficients ... ok
[INFO] [stdout] test linear_regression::normal_solver_rejects_l1_regularization ... ok
[INFO] [stdout] test linear_regression::normal_solver_ridge_shrinks_coefficients ... ok
[INFO] [stdout] test linear_regression::normal_solver_l2_matches_gradient_descent ... ok
[INFO] [stdout] test linear_regression::ols_sanity_y_equals_3x_plus_2_parameters ... ok
[INFO] [stdout] test linear_regression::predict_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test linear_regression::l2_regularization_shrinks_coefficient_norm ... ok
[INFO] [stdout] test linear_regression::ols_sanity_y_equals_3x_plus_2_predictions ... ok
[INFO] [stdout] test linear_regression::predict_empty_matrix_returns_empty_input ... ok
[INFO] [stdout] test linear_regression::save_load_preserves_model_state ... ok
[INFO] [stdout] test linear_regression::multivariate_y_equals_2x1_plus_3x2_plus_1_coefficients ... ok
[INFO] [stdout] test linear_regression::predict_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test linear_regression::multivariate_predictions_match_closed_form ... ok
[INFO] [stdout] test linear_regression::score_is_one_on_perfectly_linear_data ... ok
[INFO] [stdout] test linear_regression::score_not_fitted_errors ... ok
[INFO] [stdout] test linear_regression::score_y_length_mismatch_errors ... ok
[INFO] [stdout] test linear_regression::predict_non_finite_in_x_returns_non_finite ... ok
[INFO] [stdout] test linear_regression::save_load_round_trip_identical_predictions ... ok
[INFO] [stdout] test linear_regression::with_solver_rejects_invalid_learning_rate ... ok
[INFO] [stdout] test linear_regression::with_solver_rejects_invalid_tolerance ... ok
[INFO] [stdout] test linear_regression::with_solver_rejects_zero_max_iter ... ok
[INFO] [stdout] test dbscan::fit_parallel_branch_three_blobs_1200_correct_structure ... ok
[INFO] [stdout] test linear_svc::convergence_stops_before_max_iter_on_separable_data ... ok
[INFO] [stdout] test linear_regression::univariate_y_equals_2x_plus_1_coefficient_and_intercept ... ok
[INFO] [stdout] test linear_regression::univariate_y_equals_2x_plus_1_predictions ... ok
[INFO] [stdout] test linear_svc::decision_function_not_fitted_returns_not_fitted_error ... ok
[INFO] [stdout] test linear_regression::score_matches_r2_definition ... ok
[INFO] [stdout] test linear_svc::default_constructor_has_documented_defaults ... ok
[INFO] [stdout] test linear_svc::class_one_samples_score_positive_class_zero_samples_score_negative ... ok
[INFO] [stdout] test linear_svc::fit_huge_learning_rate_on_large_finite_data_returns_non_finite ... ok
[INFO] [stdout] test linear_svc::decision_function_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test linear_svc::fit_intercept_false_bias_stays_zero ... ok
[INFO] [stdout] test linear_svc::decision_function_returns_finite_values ... ok
[INFO] [stdout] test linear_svc::fit_rejects_dimension_mismatch_xy ... ok
[INFO] [stdout] test linear_svc::fit_rejects_empty_x ... ok
[INFO] [stdout] test linear_svc::fit_rejects_empty_y ... ok
[INFO] [stdout] test linear_svc::fit_rejects_non_finite_in_x ... ok
[INFO] [stdout] test linear_svc::different_random_state_changes_result ... ok
[INFO] [stdout] test linear_svc::fit_predict_agrees_with_fit_then_predict ... ok
[INFO] [stdout] test linear_svc::fit_intercept_false_decision_function_equals_dot_product ... ok
[INFO] [stdout] test linear_svc::load_from_nonexistent_path_returns_io_error ... ok
[INFO] [stdout] test linear_svc::loss_default_is_hinge_and_builder_sets_squared ... ok
[INFO] [stdout] test linear_svc::l1_and_l2_penalties_produce_different_weights ... ok
[INFO] [stdout] test linear_svc::new_accepts_zero_penalty_lambda ... ok
[INFO] [stdout] test linear_svc::new_rejects_invalid_learning_rate ... ok
[INFO] [stdout] test linear_svc::new_rejects_invalid_penalty_lambda ... ok
[INFO] [stdout] test linear_svc::new_rejects_invalid_tol ... ok
[INFO] [stdout] test linear_svc::new_rejects_max_iter_zero ... ok
[INFO] [stdout] test linear_svc::new_stores_parameters ... ok
[INFO] [stdout] test linear_svc::getters_are_some_after_fit ... ok
[INFO] [stdout] test linear_svc::decision_function_applies_nonzero_fitted_bias ... ok
[INFO] [stdout] test linear_svc::predict_not_fitted_returns_not_fitted_error ... ok
[INFO] [stdout] test linear_svc::predict_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test linear_svc::n_iter_is_in_valid_range ... ok
[INFO] [stdout] test linear_svc::predict_labels_are_in_zero_one_domain ... ok
[INFO] [stdout] test linear_svc::predict_empty_input_after_fit_returns_error ... ok
[INFO] [stdout] test linear_svc::save_load_preserves_hyperparameters ... ok
[INFO] [stdout] test dbscan::predict_parallel_branch_large_heldout_matches_blobs ... ok
[INFO] [stdout] test linear_svc::l1_sparsity_irrelevant_feature_closer_to_zero ... ok
[INFO] [stdout] test linear_svc::squared_hinge_classifies_separable_data ... ok
[INFO] [stdout] test linear_svc::save_load_round_trip_yields_identical_predictions ... ok
[INFO] [stdout] test linear_svc::sign_consistency_on_training_data ... ok
[INFO] [stdout] test linear_svc::same_random_state_is_reproducible ... ok
[INFO] [stdout] test logistic_regression::default_model_has_correct_params ... ok
[INFO] [stdout] test linear_svc::sign_consistency_on_new_points ... ok
[INFO] [stdout] test logistic_regression::deterministic_fit_produces_identical_predictions_on_unseen_data ... ok
[INFO] [stdout] test logistic_regression::deterministic_fit_produces_identical_weights ... ok
[INFO] [stdout] test logistic_regression::fit_empty_x_returns_empty_input ... ok
[INFO] [stdout] test logistic_regression::fit_huge_learning_rate_on_finite_data_returns_non_finite ... ok
[INFO] [stdout] test logistic_regression::fit_no_intercept_weight_count_equals_features ... ok
[INFO] [stdout] test logistic_regression::fit_non_binary_label_returns_invalid_input ... ok
[INFO] [stdout] test logistic_regression::fit_non_finite_in_x_returns_non_finite ... ok
[INFO] [stdout] test logistic_regression::fit_accepts_mixed_storage_for_x_and_y ... ok
[INFO] [stdout] test linear_svc::predicts_all_training_samples_correctly_on_separable_data ... ok
[INFO] [stdout] test logistic_regression::fit_sets_n_iter ... ok
[INFO] [stdout] test logistic_regression::fit_xy_dimension_mismatch_returns_dimension_mismatch ... ok
[INFO] [stdout] test logistic_regression::fit_predict_agrees_with_fit_then_predict ... ok
[INFO] [stdout] test logistic_regression::l2_regularization_shrinks_weight_norm ... ok
[INFO] [stdout] test logistic_regression::fit_with_intercept_weight_count_equals_features_plus_one ... ok
[INFO] [stdout] test logistic_regression::new_invalid_learning_rate_is_invalid ... ok
[INFO] [stdout] test logistic_regression::new_invalid_regularization_alpha_is_invalid ... ok
[INFO] [stdout] test logistic_regression::new_invalid_tolerance_is_invalid ... ok
[INFO] [stdout] test logistic_regression::new_valid_params_succeeds_getters_correct ... ok
[INFO] [stdout] test logistic_regression::new_zero_max_iterations_is_invalid ... ok
[INFO] [stdout] test logistic_regression::poly_features_degree1_returns_x_unchanged ... ok
[INFO] [stdout] test logistic_regression::poly_features_multiple_samples_each_row_correct ... ok
[INFO] [stdout] test logistic_regression::poly_features_one_feature_degree2_gives_x_and_x_squared ... ok
[INFO] [stdout] test logistic_regression::l1_regularization_shrinks_weight_norm ... ok
[INFO] [stdout] test logistic_regression::poly_features_three_features_degree3_gives_nineteen_columns ... ok
[INFO] [stdout] test logistic_regression::poly_features_two_features_degree2_gives_five_columns ... ok
[INFO] [stdout] test logistic_regression::predict_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test logistic_regression::poly_features_pipeline_makes_circular_data_separable ... ok
[INFO] [stdout] test logistic_regression::l2_regularization_strength_is_sample_count_invariant ... ok
[INFO] [stdout] test logistic_regression::predict_nan_input_returns_non_finite ... ok
[INFO] [stdout] test logistic_regression::predict_proba_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test logistic_regression::predict_linearly_separable_classifies_correctly ... ok
[INFO] [stdout] test logistic_regression::predict_labels_feed_metrics_and_refit_without_conversion ... ok
[INFO] [stdout] test logistic_regression::predict_wrong_feature_count_returns_dimension_mismatch ... ok
[INFO] [stdout] test logistic_regression::predict_proba_range_and_consistency_with_predict ... ok
[INFO] [stdout] test logistic_regression::save_load_preserves_hyperparameters ... ok
[INFO] [stdout] test mean_shift::test_actual_iterations_bounded_by_max_iter ... ok
[INFO] [stdout] test mean_shift::test_bin_seeding_is_deterministic_across_runs ... ok
[INFO] [stdout] test linear_svc::weights_have_correct_dimensionality ... ok
[INFO] [stdout] test mean_shift::test_bin_seeding_produces_valid_centers ... ok
[INFO] [stdout] test mean_shift::test_cluster_all_false_outlier_label_is_n_clusters ... ok
[INFO] [stdout] test mean_shift::test_cluster_all_true_never_produces_outlier_label ... ok
[INFO] [stdout] test mean_shift::test_default_constructor_values ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_deterministic_with_seed ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_different_seeds_both_positive ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_degenerate_neighbourhood_is_zero ... ok
[INFO] [stdout] test linear_regression::score_mean_predictor_is_about_zero ... ok
[INFO] [stdout] test logistic_regression::save_load_round_trip_identical_predictions ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_n_samples_larger_than_rows ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_invalid_quantile_is_invalid ... ok
[INFO] [stdout] test mean_shift::test_fit_empty_data_returns_error ... ok
[INFO] [stdout] test mean_shift::test_fit_labels_cluster_all_true_all_assigned ... ok
[INFO] [stdout] test mean_shift::test_fit_labels_match_known_cluster_structure ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_matches_scikit_learn ... ok
[INFO] [stdout] test mean_shift::test_fit_predict_consistent_with_fit_then_labels ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_returns_positive ... ok
[INFO] [stdout] test mean_shift::test_fit_produces_two_centers_near_true_means ... ok
[INFO] [stdout] test mean_shift::test_fit_single_point_produces_one_center ... ok
[INFO] [stdout] test mean_shift::test_getters_return_none_before_fit ... ok
[INFO] [stdout] test mean_shift::test_matches_scikit_learn_reference_clustering ... ok
[INFO] [stdout] test mean_shift::test_estimate_bandwidth_same_seed_same_result ... ok
[INFO] [stdout] test mean_shift::test_n_samples_per_center_sums_equal_seeds_processed ... ok
[INFO] [stdout] test mean_shift::test_new_invalid_bandwidth_is_invalid_parameter ... ok
[INFO] [stdout] test mean_shift::test_new_invalid_tol_is_invalid_parameter ... ok
[INFO] [stdout] test mean_shift::test_new_valid_parameters_succeeds ... ok
[INFO] [stdout] test mean_shift::test_no_bin_seeding_produces_valid_centers ... ok
[INFO] [stdout] test mean_shift::test_predict_assigns_points_to_correct_cluster ... ok
[INFO] [stdout] test mean_shift::test_new_zero_max_iter_is_invalid_parameter ... ok
[INFO] [stdout] test mean_shift::test_predict_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test mean_shift::test_save_load_round_trip_identical_predictions ... ok
[INFO] [stdout] test mean_shift::test_predict_wrong_feature_dimension_returns_dimension_mismatch ... ok
[INFO] [stdout] test ml_infra::decision_tree_predict_accepts_plain_data_storage ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_dbscan_outputs_isize_labels ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_decision_tree_outputs_f64_labels ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_knn_outputs_generic_labels ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_lda_outputs_i32_labels ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_isolation_forest_outputs_i32_labels ... ok
[INFO] [stdout] test mean_shift::test_fit_parallel_branch_three_blobs_1200 ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_svc_outputs_zero_one_labels ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_mean_shift_outputs_usize_labels ... ok
[INFO] [stdout] test ml_infra::generic_fit_trait_with_kmeans_unsupervised ... ok
[INFO] [stdout] test ml_infra::isolation_forest_predict_before_fit_is_not_fitted ... ok
[INFO] [stdout] test ml_infra::kmeans_predict_before_fit_is_not_fitted ... ok
[INFO] [stdout] test ml_infra::kmeans_save_load_preserves_hyperparameters ... ok
[INFO] [stdout] test ml_infra::linear_regression_predict_before_fit_is_not_fitted ... ok
[INFO] [stdout] test ml_infra::linear_regression_score_accepts_mixed_storage ... ok
[INFO] [stdout] test ml_infra::supervised_fit_accepts_mixed_storage_for_x_and_y ... ok
[INFO] [stdout] test mean_shift::non_bin_seeding_fit_is_deterministic ... ok
[INFO] [stdout] test mean_shift::test_non_bin_seeding_fit_is_reproducible ... ok
[INFO] [stdout] test pca::test_all_solvers_agree_on_component_signs ... ok
[INFO] [stdout] test pca::test_all_solvers_agree_on_singular_value ... ok
[INFO] [stdout] test pca::test_all_solvers_capture_full_variance_on_collinear_data ... ok
[INFO] [stdout] test pca::test_anisotropic_get_explained_variance ... ok
[INFO] [stdout] test pca::test_all_solvers_produce_correct_output_shape ... ok
[INFO] [stdout] test pca::test_anisotropic_get_mean_is_zero ... ok
[INFO] [stdout] test pca::test_components_orthonormal_full ... ok
[INFO] [stdout] test pca::test_anisotropic_projection_values_full ... ok
[INFO] [stdout] test pca::test_explained_variance_ratio_sums_to_one ... ok
[INFO] [stdout] test pca::test_fit_empty_input_is_empty_input ... ok
[INFO] [stdout] test pca::test_fit_n_components_exceeds_n_features_is_invalid_parameter ... ok
[INFO] [stdout] test pca::test_fit_non_finite_input_is_non_finite ... ok
[INFO] [stdout] test pca::test_fit_single_sample_is_invalid_input ... ok
[INFO] [stdout] test pca::test_fit_transform_equals_fit_then_transform_full ... ok
[INFO] [stdout] test pca::test_full_collinear_component_direction ... ok
[INFO] [stdout] test pca::test_full_collinear_component_is_unit_norm ... ok
[INFO] [stdout] test pca::test_full_collinear_explained_variance_ratio ... ok
[INFO] [stdout] test pca::test_full_collinear_get_explained_variance ... ok
[INFO] [stdout] test pca::test_full_collinear_get_mean ... ok
[INFO] [stdout] test pca::test_full_collinear_inverse_transform_reconstruction ... ok
[INFO] [stdout] test pca::test_full_collinear_singular_value ... ok
[INFO] [stdout] test pca::test_inverse_transform_before_fit_is_not_fitted ... ok
[INFO] [stdout] test pca::test_inverse_transform_output_shape ... ok
[INFO] [stdout] test pca::test_load_nonexistent_path_is_error ... ok
[INFO] [stdout] test pca::test_new_valid_n_components ... ok
[INFO] [stdout] test pca::test_power_iteration_component_unit_norm ... ok
[INFO] [stdout] test pca::test_power_iteration_inverse_transform_recovers_collinear ... ok
[INFO] [stdout] test pca::test_randomized_components_orthonormal ... ok
[INFO] [stdout] test pca::test_randomized_determinism_same_seed ... ok
[INFO] [stdout] test pca::test_new_n_components_zero_is_invalid_parameter ... ok
[INFO] [stdout] test pca::test_singular_values_descending_full ... ok
[INFO] [stdout] test pca::test_save_load_roundtrip_preserves_transform ... ok
[INFO] [stdout] test pca::test_transform_before_fit_is_not_fitted ... ok
[INFO] [stdout] test pca::test_transform_nan_is_non_finite ... ok
[INFO] [stdout] test pca::test_transform_output_shape ... ok
[INFO] [stdout] test pca::test_transform_wrong_feature_count_is_dimension_mismatch ... ok
[INFO] [stdout] test svc::actual_iterations_in_valid_range ... ok
[INFO] [stdout] test svc::cosine_kernel_zero_vector_does_not_panic ... ok
[INFO] [stdout] test svc::all_kernels_fit_and_predict_without_error ... ok
[INFO] [stdout] test svc::decision_function_and_bias_match_closed_form_linear_kernel ... ok
[INFO] [stdout] test svc::decision_function_empty_input_returns_error ... ok
[INFO] [stdout] test svc::decision_function_wrong_feature_dim_returns_dimension_mismatch ... ok
[INFO] [stdout] test svc::default_has_expected_params ... ok
[INFO] [stdout] test svc::decision_function_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test svc::fit_predict_agrees_with_fit_then_predict ... ok
[INFO] [stdout] test svc::fit_rejects_fractional_labels ... ok
[INFO] [stdout] test svc::fit_rejects_plus_minus_one_labels ... ok
[INFO] [stdout] test svc::fit_single_class_data_returns_not_converged ... ok
[INFO] [stdout] test svc::linear_kernel_classifies_separable_data_perfectly ... ok
[INFO] [stdout] test svc::linear_kernel_fit_populates_state ... ok
[INFO] [stdout] test svc::new_rejects_invalid_c ... ok
[INFO] [stdout] test svc::new_rejects_invalid_tol ... ok
[INFO] [stdout] test svc::new_rejects_zero_max_iter ... ok
[INFO] [stdout] test svc::new_valid_parameters_round_trip ... ok
[INFO] [stdout] test svc::poly_kernel_classifies_separable_data_correctly ... ok
[INFO] [stdout] test svc::predict_before_fit_returns_not_fitted ... ok
[INFO] [stdout] test svc::predict_empty_input_returns_error ... ok
[INFO] [stdout] test svc::predict_output_domain_is_zero_one ... ok
[INFO] [stdout] test svc::predict_wrong_feature_dim_returns_dimension_mismatch ... ok
[INFO] [stdout] test svc::rbf_gamma_auto_resolves_to_inverse_n_features ... ok
[INFO] [stdout] test svc::rbf_gamma_scale_resolves_and_matches_explicit_equivalent ... ok
[INFO] [stdout] test svc::rbf_kernel_classifies_concentric_rings_perfectly ... ok
[INFO] [stdout] test svc::same_seed_produces_identical_results ... ok
[INFO] [stdout] test svc::save_load_round_trip_linear_kernel ... ok
[INFO] [stdout] test svc::save_load_round_trip_yields_identical_predictions ... ok
[INFO] [stdout] test svc::sigmoid_kernel_sign_consistency ... ok
[INFO] [stdout] test svc::sign_consistency_linear_kernel ... ok
[INFO] [stdout] test svc::sign_consistency_rbf_kernel ... ok
[INFO] [stdout] test t_sne::default_tsne_uses_barnes_hut ... ok
[INFO] [stdout] test t_sne::fit_transform_all_elements_finite ... ok
[INFO] [stdout] test svc::fit_accepts_the_same_labels_as_linear_svc ... ok
[INFO] [stdout] test t_sne::fit_transform_barnes_hut_shape_and_finite ... ok
[INFO] [stdout] test t_sne::fit_transform_barnes_hut_deterministic_same_seed ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_with_linear_regression ... ok
[INFO] [stdout] test t_sne::fit_transform_column_mean_zero_n_components_one ... ok
[INFO] [stdout] test t_sne::fit_transform_deterministic_same_seed_gives_identical_results ... ok
[INFO] [stdout] test ml_infra::generic_fit_predict_linear_svc_outputs_f64_labels ... ok
[INFO] [stdout] test t_sne::fit_transform_empty_input_returns_empty_input ... ok
[INFO] [stdout] test t_sne::fit_transform_infinity_input_returns_non_finite ... ok
[INFO] [stdout] test ml_infra::trait_predictions_match_inherent_method_predictions ... ok
[INFO] [stdout] test t_sne::fit_transform_column_means_are_zero ... ok
[INFO] [stdout] test t_sne::fit_transform_nan_input_returns_non_finite ... ok
[INFO] [stdout] test t_sne::fit_transform_output_shape_n_components_one ... ok
[INFO] [stdout] test t_sne::fit_transform_perplexity_not_below_n_samples_returns_invalid_parameter ... ok
[INFO] [stdout] test t_sne::fit_transform_single_sample_returns_invalid_input ... ok
[INFO] [stdout] test t_sne::fit_transform_output_shape_matches_n_samples_n_components ... ok
[INFO] [stdout] test t_sne::getter_random_state_none ... ok
[INFO] [stdout] test t_sne::getters_return_construction_values ... ok
[INFO] [stdout] test t_sne::min_grad_norm_default_and_builder ... ok
[INFO] [stdout] test t_sne::fit_transform_different_seeds_produce_different_results ... ok
[INFO] [stdout] test t_sne::new_barnes_hut_accepts_three_components ... ok
[INFO] [stdout] test t_sne::new_barnes_hut_rejects_angle_out_of_range ... ok
[INFO] [stdout] test t_sne::new_barnes_hut_rejects_more_than_three_components ... ok
[INFO] [stdout] test t_sne::new_learning_rate_invalid_returns_invalid_parameter ... ok
[INFO] [stdout] test t_sne::new_perplexity_invalid_returns_invalid_parameter ... ok
[INFO] [stdout] test t_sne::new_valid_params_returns_ok ... ok
[INFO] [stdout] test t_sne::new_zero_integer_param_returns_invalid_parameter ... ok
[INFO] [stdout] test t_sne::fit_transform_pca_init_is_seed_independent ... ok
[INFO] [stdout] test t_sne::min_grad_norm_early_stop_and_disable_produce_valid_output ... ok
[INFO] [stdout] test t_sne::fit_transform_barnes_hut_well_separated_clusters_remain_separated ... ok
[INFO] [stdout] test kmeans::fit_parallel_accumulate_matches_serial_means_exactly ... ok
[INFO] [stdout] test t_sne::fit_transform_well_separated_clusters_remain_separated ... ok
[INFO] [stdout] test linear_svc::squared_hinge_differs_from_hinge ... ok
[INFO] [stdout] test linear_svc::squared_hinge_minimizes_its_objective has been running for over 60 seconds
[INFO] [stdout] test linear_svc::squared_hinge_minimizes_its_objective ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 582 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 89.73s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/math.rs (/opt/rustwide/target/debug/build/rustyml/ad09d13caf102cd0/out/math-ad09d13caf102cd0)
[INFO] [stdout] 
[INFO] [stdout] running 15 tests
[INFO] [stdout] test test_manhattan_from_origin ... ok
[INFO] [stdout] test test_manhattan_identical ... ok
[INFO] [stdout] test test_minkowski_p2_equals_euclidean ... ok
[INFO] [stdout] test test_manhattan_basic ... ok
[INFO] [stdout] test test_manhattan_symmetry ... ok
[INFO] [stdout] test test_minkowski_p2_pythagorean ... ok
[INFO] [stdout] test test_minkowski_p3_hand_calc ... ok
[INFO] [stdout] test test_squared_euclidean_basic ... ok
[INFO] [stdout] test test_minkowski_identical ... ok
[INFO] [stdout] test test_squared_euclidean_identical ... ok
[INFO] [stdout] test test_squared_euclidean_non_negative ... ok
[INFO] [stdout] test test_squared_euclidean_symmetry ... ok
[INFO] [stdout] test test_minkowski_p1_equals_manhattan ... ok
[INFO] [stdout] test test_squared_euclidean_three_dim ... ok
[INFO] [stdout] test test_minkowski_symmetry ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/metrics/main.rs (/opt/rustwide/target/debug/build/rustyml/f6174ff1e37daeb6/out/metrics-f6174ff1e37daeb6)
[INFO] [stdout] 
[INFO] [stdout] running 255 tests
[INFO] [stdout] test classification::accuracy_range_invariant ... ok
[INFO] [stdout] test classification::accuracy_perfect ... ok
[INFO] [stdout] test classification::accuracy_all_wrong ... ok
[INFO] [stdout] test classification::accuracy_partial ... ok
[INFO] [stdout] test classification::accuracy_symmetry ... ok
[INFO] [stdout] test classification::average_precision_known_value ... ok
[INFO] [stdout] test classification::average_precision_range_invariant ... ok
[INFO] [stdout] test classification::average_precision_perfect ... ok
[INFO] [stdout] test classification::average_precision_single_positive ... ok
[INFO] [stdout] test classification::cm_accuracy_all_wrong ... ok
[INFO] [stdout] test classification::average_precision_single_positive_worst_rank ... ok
[INFO] [stdout] test classification::cm_accuracy_partial ... ok
[INFO] [stdout] test classification::cm_accuracy_perfect ... ok
[INFO] [stdout] test classification::cm_accuracy_plus_error_rate_equals_one ... ok
[INFO] [stdout] test classification::cm_balanced_accuracy_partial ... ok
[INFO] [stdout] test classification::cm_balanced_accuracy_vs_accuracy_imbalanced ... ok
[INFO] [stdout] test classification::cm_f1_partial ... ok
[INFO] [stdout] test classification::cm_f1_zero_precision_and_recall ... ok
[INFO] [stdout] test classification::cm_mcc_degenerate_all_predicted_negative ... ok
[INFO] [stdout] test classification::cm_mcc_degenerate_all_predicted_positive ... ok
[INFO] [stdout] test classification::cm_mcc_partial ... ok
[INFO] [stdout] test classification::cm_mcc_perfect ... ok
[INFO] [stdout] test classification::cm_new_accepts_mixed_storage ... ok
[INFO] [stdout] test classification::cm_new_all_wrong ... ok
[INFO] [stdout] test classification::cm_f1_perfect ... ok
[INFO] [stdout] test classification::accuracy_empty_panics - should panic ... ok
[INFO] [stdout] test classification::average_precision_empty_panics - should panic ... ok
[INFO] [stdout] test classification::accuracy_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::average_precision_no_positive_panics - should panic ... ok
[INFO] [stdout] test classification::cm_new_mixed ... ok
[INFO] [stdout] test classification::cm_new_perfect_predictions ... ok
[INFO] [stdout] test classification::average_precision_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::average_precision_with_nan_score_panics - should panic ... ok
[INFO] [stdout] test classification::cm_new_empty_input_panics - should panic ... ok
[INFO] [stdout] test classification::cm_precision_no_positive_predictions ... ok
[INFO] [stdout] test classification::cm_precision_partial ... ok
[INFO] [stdout] test classification::cm_new_with_labels_handles_plus_minus_one ... ok
[INFO] [stdout] test classification::cm_recall_partial ... ok
[INFO] [stdout] test classification::cm_recall_no_actual_positives ... ok
[INFO] [stdout] test classification::cm_specificity_no_actual_negatives ... ok
[INFO] [stdout] test classification::cm_specificity_partial ... ok
[INFO] [stdout] test classification::cm_summary_contains_metric_labels ... ok
[INFO] [stdout] test classification::cohen_kappa_degenerate_all_same_label ... ok
[INFO] [stdout] test classification::cm_precision_perfect ... ok
[INFO] [stdout] test classification::cohen_kappa_chance_level ... ok
[INFO] [stdout] test classification::cohen_kappa_negative ... ok
[INFO] [stdout] test classification::cohen_kappa_perfect ... ok
[INFO] [stdout] test classification::cohen_kappa_range_invariant ... ok
[INFO] [stdout] test classification::cm_new_rejects_probabilities - should panic ... ok
[INFO] [stdout] test classification::cm_new_rejects_nan - should panic ... ok
[INFO] [stdout] test classification::cm_new_rejects_soft_ground_truth - should panic ... ok
[INFO] [stdout] test classification::cm_new_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::log_loss_multiclass_three_classes ... ok
[INFO] [stdout] test classification::cohen_kappa_empty_panics - should panic ... ok
[INFO] [stdout] test classification::cm_new_with_labels_rejects_equal_labels - should panic ... ok
[INFO] [stdout] test classification::cohen_kappa_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::log_loss_empty_panics - should panic ... ok
[INFO] [stdout] test classification::log_loss_renormalizes_rows ... ok
[INFO] [stdout] test classification::log_loss_label_out_of_range_panics - should panic ... ok
[INFO] [stdout] test classification::log_loss_two_samples ... ok
[INFO] [stdout] test classification::log_loss_perfect_probs ... ok
[INFO] [stdout] test classification::log_loss_row_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::log_loss_zero_prob_clamped ... ok
[INFO] [stdout] test classification::mcm_accuracy ... ok
[INFO] [stdout] test classification::mcm_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::mcm_n_classes_and_labels ... ok
[INFO] [stdout] test classification::mcm_matrix_cell_values ... ok
[INFO] [stdout] test classification::mcm_per_class_f1 ... ok
[INFO] [stdout] test classification::mcm_empty_panics - should panic ... ok
[INFO] [stdout] test classification::mcm_per_class_precision ... ok
[INFO] [stdout] test classification::mcm_aggregated_precision_recall_f1 ... ok
[INFO] [stdout] test classification::mcm_per_class_precision_zero_guard ... ok
[INFO] [stdout] test classification::mcm_per_class_recall_zero_guard ... ok
[INFO] [stdout] test classification::mcm_per_class_recall ... ok
[INFO] [stdout] test classification::mcm_perfect_accuracy ... ok
[INFO] [stdout] test classification::mcm_single_class_only_in_pred ... ok
[INFO] [stdout] test classification::mcm_summary_contains_keywords ... ok
[INFO] [stdout] test classification::mcm_support ... ok
[INFO] [stdout] test classification::precision_recall_curve_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::precision_recall_curve_is_ordered_like_scikit_learn ... ok
[INFO] [stdout] test classification::precision_recall_curve_no_positive_panics - should panic ... ok
[INFO] [stdout] test classification::precision_recall_curve_perfect ... ok
[INFO] [stdout] test classification::precision_recall_curve_specific_points ... ok
[INFO] [stdout] test classification::roc_auc_empty_panics - should panic ... ok
[INFO] [stdout] test classification::precision_recall_curve_with_nan_score_panics - should panic ... ok
[INFO] [stdout] test classification::precision_recall_curve_empty_panics - should panic ... ok
[INFO] [stdout] test classification::roc_auc_perfect ... ok
[INFO] [stdout] test classification::roc_auc_range_invariant ... ok
[INFO] [stdout] test classification::roc_auc_worst ... ok
[INFO] [stdout] test classification::roc_auc_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::roc_auc_with_all_tied_scores ... ok
[INFO] [stdout] test classification::roc_auc_with_nan_score_panics - should panic ... ok
[INFO] [stdout] test classification::roc_auc_random_half ... ok
[INFO] [stdout] test classification::roc_auc_no_negative_panics - should panic ... ok
[INFO] [stdout] test classification::roc_curve_no_negative_panics - should panic ... ok
[INFO] [stdout] test classification::roc_curve_fpr_nondecreasing ... ok
[INFO] [stdout] test classification::roc_auc_partial_ties ... ok
[INFO] [stdout] test classification::roc_curve_specific_points ... ok
[INFO] [stdout] test classification::roc_curve_no_positive_panics - should panic ... ok
[INFO] [stdout] test classification::roc_curve_trapezoidal_area_matches_roc_auc ... ok
[INFO] [stdout] test classification::top_k_accuracy_all_wrong_top1 ... ok
[INFO] [stdout] test classification::roc_auc_no_positive_panics - should panic ... ok
[INFO] [stdout] test classification::roc_curve_empty_panics - should panic ... ok
[INFO] [stdout] test classification::roc_curve_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test classification::top_k_accuracy_k_ge_n_classes ... ok
[INFO] [stdout] test classification::roc_curve_with_nan_score_panics - should panic ... ok
[INFO] [stdout] test classification::top_k_accuracy_empty_panics - should panic ... ok
[INFO] [stdout] test classification::top_k_accuracy_k_zero_panics - should panic ... ok
[INFO] [stdout] test classification::top_k_accuracy_top1 ... ok
[INFO] [stdout] test classification::top_k_accuracy_label_out_of_range_panics - should panic ... ok
[INFO] [stdout] test classification::top_k_accuracy_nan_true_prob_panics - should panic ... ok
[INFO] [stdout] test classification::top_k_accuracy_tie_boundary_counts_in_favor ... ok
[INFO] [stdout] test classification::top_k_accuracy_top2 ... ok
[INFO] [stdout] test classification::top_k_accuracy_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_ami_symmetry ... ok
[INFO] [stdout] test clustering::test_ami_canonical_pair ... ok
[INFO] [stdout] test clustering::test_ami_independent_clustering ... ok
[INFO] [stdout] test clustering::test_ami_identical_clustering ... ok
[INFO] [stdout] test clustering::test_ami_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_ami_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_ari_identical_clustering ... ok
[INFO] [stdout] test clustering::test_ari_value_range ... ok
[INFO] [stdout] test clustering::test_ari_single_sample_degenerate ... ok
[INFO] [stdout] test clustering::test_ari_canonical_one_sixth ... ok
[INFO] [stdout] test clustering::test_ari_symmetry ... ok
[INFO] [stdout] test clustering::test_ari_completely_different ... ok
[INFO] [stdout] test clustering::test_ari_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_ch_more_separation_higher_score ... ok
[INFO] [stdout] test clustering::test_ch_three_tight_clusters ... ok
[INFO] [stdout] test clustering::test_ch_nonnegative ... ok
[INFO] [stdout] test clustering::test_ch_well_separated_exact ... ok
[INFO] [stdout] test clustering::test_ch_zero_within_dispersion_returns_one ... ok
[INFO] [stdout] test clustering::test_completeness_asymmetric_differs_from_homogeneity ... ok
[INFO] [stdout] test clustering::test_completeness_identical ... ok
[INFO] [stdout] test clustering::test_completeness_partial ... ok
[INFO] [stdout] test clustering::test_completeness_perfect ... ok
[INFO] [stdout] test clustering::test_completeness_range ... ok
[INFO] [stdout] test clustering::test_ch_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_ari_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_ch_all_singletons_panics - should panic ... ok
[INFO] [stdout] test clustering::test_db_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_db_nonnegative ... ok
[INFO] [stdout] test clustering::test_ch_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_completeness_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_completeness_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_db_three_tight_clusters ... ok
[INFO] [stdout] test clustering::test_db_all_singletons_panics - should panic ... ok
[INFO] [stdout] test clustering::test_db_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_ch_single_cluster_panics - should panic ... ok
[INFO] [stdout] test clustering::test_db_well_separated_exact ... ok
[INFO] [stdout] test clustering::test_fmi_all_singletons_degenerate ... ok
[INFO] [stdout] test clustering::test_db_perfect_compact_zero ... ok
[INFO] [stdout] test clustering::test_db_single_cluster_panics - should panic ... ok
[INFO] [stdout] test clustering::test_fmi_all_disagree_zero ... ok
[INFO] [stdout] test clustering::test_fmi_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_fmi_identical ... ok
[INFO] [stdout] test clustering::test_fmi_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_homogeneity_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_fmi_range ... ok
[INFO] [stdout] test clustering::test_fmi_partial_match_one_third ... ok
[INFO] [stdout] test clustering::test_homogeneity_identical ... ok
[INFO] [stdout] test clustering::test_homogeneity_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_homogeneity_partial ... ok
[INFO] [stdout] test clustering::test_fmi_symmetry ... ok
[INFO] [stdout] test clustering::test_nmi_equals_v_measure ... ok
[INFO] [stdout] test clustering::test_nmi_identical_clustering ... ok
[INFO] [stdout] test clustering::test_homogeneity_perfect ... ok
[INFO] [stdout] test clustering::test_nmi_canonical_pair ... ok
[INFO] [stdout] test clustering::test_homogeneity_range ... ok
[INFO] [stdout] test clustering::test_nmi_asymmetric_case ... ok
[INFO] [stdout] test clustering::test_nmi_independent_clustering ... ok
[INFO] [stdout] test clustering::test_nmi_single_pred_cluster_zero ... ok
[INFO] [stdout] test clustering::test_nmi_symmetry ... ok
[INFO] [stdout] test clustering::test_nmi_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_silhouette_all_same_location_zero ... ok
[INFO] [stdout] test clustering::test_silhouette_mislabeled_negative ... ok
[INFO] [stdout] test clustering::test_silhouette_all_singletons_panics - should panic ... ok
[INFO] [stdout] test clustering::test_silhouette_lone_cluster_contributes_zero ... ok
[INFO] [stdout] test clustering::test_silhouette_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_v_measure_asymmetric_two_thirds ... ok
[INFO] [stdout] test clustering::test_silhouette_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_nmi_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_silhouette_well_separated ... ok
[INFO] [stdout] test clustering::test_v_measure_empty_panics - should panic ... ok
[INFO] [stdout] test clustering::test_v_measure_identical ... ok
[INFO] [stdout] test clustering::test_silhouette_single_cluster_panics - should panic ... ok
[INFO] [stdout] test clustering::test_silhouette_respects_manhattan_metric ... ok
[INFO] [stdout] test clustering::test_v_measure_range ... ok
[INFO] [stdout] test clustering::test_v_measure_independent_zero ... ok
[INFO] [stdout] test clustering::test_v_measure_symmetry ... ok
[INFO] [stdout] test clustering::test_v_measure_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test regression::test_evs_bounded_above_by_one ... ok
[INFO] [stdout] test regression::test_evs_constant_y_true_zero_residual_variance ... ok
[INFO] [stdout] test regression::test_evs_constant_target_that_does_not_round_trip ... ok
[INFO] [stdout] test regression::test_evs_known_fractional ... ok
[INFO] [stdout] test regression::test_evs_constant_bias_scores_one ... ok
[INFO] [stdout] test regression::test_evs_greater_than_r2_with_bias ... ok
[INFO] [stdout] test regression::test_evs_perfect_predictions ... ok
[INFO] [stdout] test regression::test_evs_small_magnitude_target_is_not_treated_as_constant ... ok
[INFO] [stdout] test regression::test_mae_four_samples ... ok
[INFO] [stdout] test regression::test_evs_constant_y_true_nonzero_residual_variance ... ok
[INFO] [stdout] test regression::test_mae_single_element ... ok
[INFO] [stdout] test regression::test_mae_perfect_predictions ... ok
[INFO] [stdout] test regression::test_mae_nonnegative ... ok
[INFO] [stdout] test regression::test_evs_empty_panics - should panic ... ok
[INFO] [stdout] test regression::test_mae_empty_panics - should panic ... ok
[INFO] [stdout] test regression::test_mae_symmetry ... ok
[INFO] [stdout] test regression::test_mape_nonnegative ... ok
[INFO] [stdout] test regression::test_mape_empty_panics - should panic ... ok
[INFO] [stdout] test regression::test_mape_negative_y_true ... ok
[INFO] [stdout] test regression::test_mape_three_samples ... ok
[INFO] [stdout] test regression::test_mape_two_samples_known ... ok
[INFO] [stdout] test regression::test_medae_empty_panics - should panic ... ok
[INFO] [stdout] test regression::test_medae_even_samples ... ok
[INFO] [stdout] test regression::test_mape_perfect_predictions ... ok
[INFO] [stdout] test regression::test_mape_single_element ... ok
[INFO] [stdout] test regression::test_mape_zero_y_true_eps_floor ... ok
[INFO] [stdout] test regression::test_mape_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test regression::test_medae_nonnegative ... ok
[INFO] [stdout] test regression::test_mae_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test regression::test_medae_symmetry ... ok
[INFO] [stdout] test regression::test_evs_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test regression::test_mse_four_samples ... ok
[INFO] [stdout] test regression::test_medae_odd_samples ... ok
[INFO] [stdout] test regression::test_medae_perfect_predictions ... ok
[INFO] [stdout] test regression::test_medae_robust_to_outlier ... ok
[INFO] [stdout] test regression::test_medae_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test regression::test_mse_nonnegative ... ok
[INFO] [stdout] test regression::test_medae_single_element ... ok
[INFO] [stdout] test regression::test_mse_symmetry ... ok
[INFO] [stdout] test regression::test_mse_perfect_predictions ... ok
[INFO] [stdout] test regression::test_mse_single_element ... ok
[INFO] [stdout] test regression::test_r2_constant_y_true_perfect_sse ... ok
[INFO] [stdout] test regression::test_r2_constant_y_true_nonzero_sse ... ok
[INFO] [stdout] test regression::test_r2_empty_panics - should panic ... ok
[INFO] [stdout] test regression::test_r2_four_samples ... ok
[INFO] [stdout] test regression::test_r2_known_fractional ... ok
[INFO] [stdout] test regression::test_r2_not_symmetric ... ok
[INFO] [stdout] test regression::test_r2_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test regression::test_r2_mean_predictor_zero ... ok
[INFO] [stdout] test regression::test_r2_bounded_above_by_one ... ok
[INFO] [stdout] test regression::test_r2_constant_target_that_does_not_round_trip ... ok
[INFO] [stdout] test regression::test_mse_empty_panics - should panic ... ok
[INFO] [stdout] test regression::test_mse_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test regression::test_r2_perfect_fit ... ok
[INFO] [stdout] test regression::test_rmse_four_samples ... ok
[INFO] [stdout] test regression::test_r2_small_magnitude_target_is_not_treated_as_constant ... ok
[INFO] [stdout] test regression::test_r2_worse_than_mean_negative ... ok
[INFO] [stdout] test regression::test_rmse_ge_mae ... ok
[INFO] [stdout] test regression::test_rmse_unit_errors ... ok
[INFO] [stdout] test regression::test_rmse_nonnegative ... ok
[INFO] [stdout] test regression::test_rmse_perfect_predictions ... ok
[INFO] [stdout] test regression::test_rmse_empty_panics - should panic ... ok
[INFO] [stdout] test regression::test_rmse_length_mismatch_panics - should panic ... ok
[INFO] [stdout] test clustering::test_silhouette_parallel_path_large_n ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 255 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.68s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/neural_network/main.rs (/opt/rustwide/target/debug/build/rustyml/e33cec38f691c216/out/neural_network-e33cec38f691c216)
[INFO] [stdout] 
[INFO] [stdout] running 1333 tests
[INFO] [stdout] test activation::activation_enum_relu_known_values ... ok
[INFO] [stdout] test activation::all_layers_empty_input_forward_is_error ... ok
[INFO] [stdout] test activation::activation_enum_linear_is_identity ... ok
[INFO] [stdout] test activation::activation_enum_softmax_known_values ... ok
[INFO] [stdout] test activation::all_layers_backward_propagates_non_finite_grad ... ok
[INFO] [stdout] test activation::activation_enum_sigmoid_known_values ... ok
[INFO] [stdout] test activation::activation_enum_softmax_rejects_an_out_of_range_axis ... ok
[INFO] [stdout] test activation::elu_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::activation_enum_tanh_known_values ... ok
[INFO] [stdout] test activation::all_layers_backward_wrong_shape_is_shape_mismatch ... ok
[INFO] [stdout] test activation::all_layers_empty_input_predict_is_error ... ok
[INFO] [stdout] test activation::dense_rejects_unusable_elu_alpha ... ok
[INFO] [stdout] test activation::dense_rejects_unusable_leaky_relu_slope ... ok
[INFO] [stdout] test activation::elu_forward_known_values ... ok
[INFO] [stdout] test activation::dense_rejects_an_embedded_softmax_over_another_axis ... ok
[INFO] [stdout] test activation::exponential_predict_equals_forward ... ok
[INFO] [stdout] test activation::exponential_backward_derivative_equals_output ... ok
[INFO] [stdout] test activation::from_relu_yields_activation_relu ... ok
[INFO] [stdout] test activation::elu_backward_derivative_at_zero_is_alpha ... ok
[INFO] [stdout] test activation::from_sigmoid_yields_activation_sigmoid ... ok
[INFO] [stdout] test activation::elu_default_matches_explicit_alpha ... ok
[INFO] [stdout] test activation::from_softmax_yields_activation_softmax ... ok
[INFO] [stdout] test activation::elu_new_rejects_unusable_alpha ... ok
[INFO] [stdout] test activation::from_linear_yields_activation_linear ... ok
[INFO] [stdout] test activation::from_tanh_yields_activation_tanh ... ok
[INFO] [stdout] test activation::elu_predict_equals_forward ... ok
[INFO] [stdout] test activation::hard_sigmoid_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::hard_sigmoid_forward_known_values ... ok
[INFO] [stdout] test activation::exponential_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::exponential_forward_known_values ... ok
[INFO] [stdout] test activation::leaky_relu_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::leaky_relu_backward_derivative_at_zero_is_one ... ok
[INFO] [stdout] test activation::leaky_relu_predict_equals_forward ... ok
[INFO] [stdout] test activation::leaky_relu_forward_known_values ... ok
[INFO] [stdout] test activation::leaky_relu_new_rejects_unusable_slope ... ok
[INFO] [stdout] test activation::linear_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::hard_sigmoid_predict_equals_forward ... ok
[INFO] [stdout] test activation::linear_forward_preserves_3d_shape ... ok
[INFO] [stdout] test activation::hard_sigmoid_saturates_exactly ... ok
[INFO] [stdout] test activation::linear_non_finite_input_propagates ... ok
[INFO] [stdout] test activation::linear_backward_passes_gradient_through ... ok
[INFO] [stdout] test activation::leaky_relu_default_matches_explicit_slope ... ok
[INFO] [stdout] test activation::linear_predict_equals_forward ... ok
[INFO] [stdout] test activation::relu_forward_all_negative ... ok
[INFO] [stdout] test activation::relu_forward_known_values ... ok
[INFO] [stdout] test activation::relu_non_finite_input_propagates ... ok
[INFO] [stdout] test activation::linear_predict_non_finite_propagates ... ok
[INFO] [stdout] test activation::relu_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::relu_backward_derivative_from_definition ... ok
[INFO] [stdout] test activation::relu_forward_all_positive ... ok
[INFO] [stdout] test activation::linear_forward_is_identity ... ok
[INFO] [stdout] test activation::relu_predict_equals_forward ... ok
[INFO] [stdout] test activation::selu_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::selu_backward_derivative_at_zero_is_scale_times_alpha ... ok
[INFO] [stdout] test activation::selu_layer_matches_activation_enum ... ok
[INFO] [stdout] test activation::sigmoid_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::selu_forward_known_values ... ok
[INFO] [stdout] test activation::sigmoid_forward_antisymmetry ... ok
[INFO] [stdout] test activation::softmax_1d_input_normalizes_the_single_axis ... ok
[INFO] [stdout] test activation::selu_predict_equals_forward ... ok
[INFO] [stdout] test activation::sigmoid_forward_known_values ... ok
[INFO] [stdout] test activation::sigmoid_backward_derivative_from_definition ... ok
[INFO] [stdout] test activation::sigmoid_forward_outputs_bounded ... ok
[INFO] [stdout] test activation::sigmoid_nan_input_propagates ... ok
[INFO] [stdout] test activation::sigmoid_predict_equals_forward ... ok
[INFO] [stdout] test activation::softmax_axis_0_of_a_rank_2_input_matches_the_reference ... ok
[INFO] [stdout] test activation::softmax_axis_1_and_axis_minus_1_differ_on_a_rank_3_input ... ok
[INFO] [stdout] test activation::softmax_axis_validity_follows_the_rank_of_the_input ... ok
[INFO] [stdout] test activation::softmax_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::softmax_axis_1_backward_matches_the_reference ... ok
[INFO] [stdout] test activation::softmax_forward_equal_logits_uniform ... ok
[INFO] [stdout] test activation::softmax_forward_known_values_1x3 ... ok
[INFO] [stdout] test activation::softmax_forward_rows_sum_to_one ... ok
[INFO] [stdout] test activation::softmax_forward_shift_invariant ... ok
[INFO] [stdout] test activation::softmax_forward_two_rows_same_difference ... ok
[INFO] [stdout] test activation::softmax_layer_matches_the_activation_enum_bit_for_bit ... ok
[INFO] [stdout] test activation::softmax_nan_input_propagates ... ok
[INFO] [stdout] test activation::softmax_non_final_axis_accepts_input_that_is_not_in_c_order ... ok
[INFO] [stdout] test activation::softmax_non_final_axis_backward_rejects_a_mismatched_grad_output ... ok
[INFO] [stdout] test activation::softmax_out_of_range_axis_fails_the_forward_pass ... ok
[INFO] [stdout] test activation::softmax_predict_equals_forward ... ok
[INFO] [stdout] test activation::softplus_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::softmax_non_final_axis_matches_across_the_tuning_gates ... ok
[INFO] [stdout] test activation::softmax_resolves_a_negative_axis_at_call_time ... ok
[INFO] [stdout] test activation::softplus_forward_outputs_positive ... ok
[INFO] [stdout] test activation::softsign_forward_known_values ... ok
[INFO] [stdout] test activation::softsign_forward_outputs_bounded ... ok
[INFO] [stdout] test activation::softplus_forward_known_values ... ok
[INFO] [stdout] test activation::tanh_backward_before_forward_is_error ... ok
[INFO] [stdout] test activation::tanh_forward_known_values ... ok
[INFO] [stdout] test activation::softplus_layer_matches_activation_enum ... ok
[INFO] [stdout] test activation::tanh_predict_equals_forward ... ok
[INFO] [stdout] test activation::softplus_predict_equals_forward ... ok
[INFO] [stdout] test activation::softsign_predict_equals_forward ... ok
[INFO] [stdout] test activation::tanh_non_finite_input_propagates ... ok
[INFO] [stdout] test addressing::a_graph_build_refuses_2_arrays_under_1_name ... ok
[INFO] [stdout] test activation::tanh_forward_odd_symmetry ... ok
[INFO] [stdout] test activation::tanh_forward_outputs_bounded ... ok
[INFO] [stdout] test activation::softsign_backward_before_forward_is_error ... ok
[INFO] [stdout] test addressing::a_sequential_build_refuses_2_arrays_under_1_name ... ok
[INFO] [stdout] test border::border_layer_types_are_named ... ok
[INFO] [stdout] test addressing::a_training_step_refuses_an_unclaimed_gradient ... ok
[INFO] [stdout] test border::border_layers_backward_before_forward_returns_err ... ok
[INFO] [stdout] test border::border_layers_expose_empty_weights ... ok
[INFO] [stdout] test border::border_layers_backward_wrong_grad_shape_returns_err ... ok
[INFO] [stdout] test border::border_layers_have_no_trainable_parameters ... ok
[INFO] [stdout] test border::border_layers_reject_empty_input ... ok
[INFO] [stdout] test border::cropping_1d_forward_keeps_interior ... ok
[INFO] [stdout] test border::border_output_shape_is_unknown_before_forward ... ok
[INFO] [stdout] test border::border_output_shape_after_forward ... ok
[INFO] [stdout] test border::cropping_2d_forward_keeps_interior ... ok
[INFO] [stdout] test border::cropping_2d_backward_scatters_gradient_and_zeros_border ... ok
[INFO] [stdout] test border::cropping_2d_pair_gives_one_amount_per_axis ... ok
[INFO] [stdout] test border::cropping_2d_with_zero_amounts_copies_input ... ok
[INFO] [stdout] test border::cropping_3d_forward_keeps_interior ... ok
[INFO] [stdout] test border::cropping_rejects_wrong_rank ... ok
[INFO] [stdout] test border::one_instance_serves_every_batch_size ... ok
[INFO] [stdout] test border::predict_matches_forward_and_the_first_pass_builds_the_layer ... ok
[INFO] [stdout] test addressing::a_model_whose_names_are_addresses_still_trains ... ok
[INFO] [stdout] test border::zero_padding_1d_forward_places_values_and_zeros ... ok
[INFO] [stdout] test border::cropping_3d_triple_gives_one_amount_per_axis ... ok
[INFO] [stdout] test border::cropping_rejects_a_border_that_removes_the_whole_axis ... ok
[INFO] [stdout] test border::pad_then_crop_restores_the_input ... ok
[INFO] [stdout] test border::zero_padding_1d_integer_pads_both_ends_equally ... ok
[INFO] [stdout] test border::zero_padding_1d_pair_names_each_end ... ok
[INFO] [stdout] test border::border_layers_inside_sequential_model_train ... ok
[INFO] [stdout] test border::zero_padding_2d_backward_returns_interior_of_gradient ... ok
[INFO] [stdout] test border::zero_padding_2d_pair_of_pairs_names_all_4_edges ... ok
[INFO] [stdout] test border::zero_padding_2d_with_zero_amounts_copies_input ... ok
[INFO] [stdout] test border::zero_padding_rejects_wrong_rank ... ok
[INFO] [stdout] test border::zero_padding_2d_forward_places_values_and_zeros ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_all_ones_kernel_windowed_sums ... ok
[INFO] [stdout] test conv_1d_2d::a_dilated_kernel_longer_than_the_input_fails_only_under_valid ... ok
[INFO] [stdout] test border::zero_padding_2d_pair_gives_one_amount_per_axis ... ok
[INFO] [stdout] test border::zero_padding_2d_integer_pads_all_4_edges ... ok
[INFO] [stdout] test border::zero_padding_3d_integer_pads_all_6_faces ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_asymmetric_kernel_values ... ok
[INFO] [stdout] test border::zero_padding_3d_forward_places_values_and_zeros ... ok
[INFO] [stdout] test border::zero_padding_3d_triple_gives_one_amount_per_axis ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_causal_matches_same_in_length_only ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_backward_before_forward_errors ... ok
[INFO] [stdout] test border::zero_padding_3d_triple_of_pairs_names_all_6_faces ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_causal_output_never_reads_a_later_input ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_causal_padding_is_all_on_the_leading_edge ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_batch_forward_independent_samples ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_dilated_same_padding_keeps_the_length ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_bias_offset_adds_to_every_output ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_build_rejects_invalid_input_shape ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_forward_wrong_ndim_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_input_equals_kernel_produces_single_output ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_dilated_kernel_longer_than_the_input_matches_keras_under_causal ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_dilation_spaces_the_taps_out ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_invalid_scalar_param_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_param_count_formula ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_predict_equals_forward ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_param_count_single_channel ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_causal_dilated_gradients_match_a_finite_difference ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_relu_activation_clips_negatives ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_same_output_length_cases ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_same_padding_stride2_output_length_and_values ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_causal_strided_output_length ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_same_padding_forward_values ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_plain_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_set_weights_correct_shape_succeeds ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_predict_deterministic ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_dilated_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_set_weights_mismatched_weight_shape_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_set_weights_mismatched_bias_shape_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_two_input_channels_cross_channel_sum ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_two_filters_independent_outputs ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_1x1_kernel_scalar_multiply ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_stride2_windowed_sums ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_weights_correct_shapes ... ok
[INFO] [stdout] test conv_1d_2d::conv1d_valid_output_length_cases ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_all_ones_kernel_windowed_sums ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_backward_before_forward_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_dilated_gradients_match_keras_under_valid ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_build_rejects_invalid_input_shape ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_dilated_gradients_match_keras_under_same ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_bias_shifts_all_outputs ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_forward_wrong_ndim_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_invalid_scalar_param_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_dilation_is_per_axis ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_dilated_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_param_count_formula ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_param_count_single_filter_single_channel ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_predict_deterministic ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_predict_equals_forward ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_relu_clips_negatives ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_set_weights_mismatched_weight_shape_errors ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_stride2_valid_output_shape_and_values ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_same_padding_all_ones_values ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_two_filters_independent_outputs ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_two_input_channels_cross_channel_sum ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_set_weights_correct_shape_succeeds ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_same_padding_output_shapes ... ok
[INFO] [stdout] test conv_1d_2d::conv_rejects_a_stride_and_a_dilation_above_one_together ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_valid_output_shape_cases ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_weights_correct_shapes ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_set_weights_mismatched_bias_shape_errors ... ok
[INFO] [stdout] test conv_1d_2d::separable_conv1d_dilates_the_depthwise_stage ... ok
[INFO] [stdout] test conv_1d_2d::depthwise_conv1d_dilated_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_1d_2d::depthwise_conv1d_stride_and_dilation_gradients_match_keras ... ok
[INFO] [stdout] test conv_1d_2d::separable_conv1d_stride_and_dilation_gradients_match_keras ... ok
[INFO] [stdout] test conv_1d_variants::conv_1d_variants_name_their_weights ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_cross_channel_no_bleed ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_bias_is_exempt_from_weight_decay ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_backward_before_forward_errors ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_forward_rejects_wrong_channels ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_depth_multiplier_widens_every_shape ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_emits_c_order_tensors_from_a_strided_input ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_forward_rejects_non_3d_input ... ok
[INFO] [stdout] test conv_1d_2d::depthwise_conv1d_keeps_the_stride_and_the_dilation_independent ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_matches_a_block_diagonal_conv1d ... ok
[INFO] [stdout] test conv_1d_2d::separable_conv1d_dilated_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_predict_equals_forward ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_new_rejects_invalid_args ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_output_length_rule ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_backward_before_forward_errors ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_set_weights_shape_mismatch_errors ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_with_depth_multiplier_rejects_zero ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_rejected_forward_leaves_no_cache ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_bias_is_exempt_from_weight_decay ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_emits_c_order_tensors_from_a_strided_input ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_same_padding_splits_with_the_extra_cell_at_the_end ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_depth_multiplier_2_forward_values ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_identity_reproduces_input ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_matches_a_depthwise_then_pointwise_stack ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_forward_rejects_wrong_channels ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_known_weight_forward_values ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_predict_equals_forward ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_forward_rejects_non_3d_input ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_output_shape_and_param_count ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_same_padding_zero_pads_depthwise ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_backward_before_forward_errors ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_dilated_gradients_match_keras_under_same ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_dilation_is_per_axis ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_dilated_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_set_weights_shape_mismatch_errors ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_forward_output_shape_stride2_valid ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_forward_output_shape_same_padding ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_forward_rejects_input_smaller_than_kernel ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_forward_rejects_non_5d_input ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_forward_output_shape_valid_padding ... ok
[INFO] [stdout] test conv_1d_variants::separable_conv1d_new_rejects_invalid_args ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_new_rejects_invalid_args ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_input_smaller_than_kernel_fails_only_under_valid ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_predict_equals_forward ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_known_weight_forward_values ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_rejects_a_stride_and_a_dilation_above_one_on_different_axes ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_backward_before_forward_errors ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_cross_channel_no_bleed ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_channel_independence ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_set_weights_shape_mismatch_errors ... ok
[INFO] [stdout] test conv_3d_variants::conv3d_dilated_gradients_match_keras_under_valid ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_dilated_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_forward_rejects_wrong_channels ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_keeps_the_stride_and_the_dilation_independent ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_known_weight_single_channel ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_new_rejects_invalid_args ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_predict_equals_forward ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_stride_and_dilation_gradients_match_keras ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_output_shape_reports_the_multiplied_channel_count ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_depth_multiplier_2_forward_values ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_with_depth_multiplier_rejects_zero ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_backward_before_forward_errors ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_set_weights_shape_mismatch_errors ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_dilated_kernel_longer_than_the_input_matches_keras_under_same ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_dilated_same_padding_splits_with_the_extra_cell_at_the_end ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_forward_rejects_wrong_channels ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_known_weight_forward_values ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_new_rejects_invalid_args ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_output_shape_dm1 ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_output_shape_dm2 ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_predict_equals_forward ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_set_weights_shape_mismatch_errors ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_stride_and_dilation_gradients_match_keras ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_filter_axis_is_innermost ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_same_padding_zero_pads_depthwise ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_gap_positions_hold_only_the_bias ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_param_count_formula ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_identity_reproduces_input ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_same_output_length_cases ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_predict_equals_forward ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_reports_its_type_and_output_shape ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_same_padding_at_stride_2_crops_the_tail ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_same_padding_keeps_the_length ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_scatters_each_input_across_the_kernel ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_two_input_channels_cross_channel_sum ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_valid_output_length_cases ... ok
[INFO] [stdout] test conv_3d_variants::depthwise_conv2d_large_input_windowed_sums ... ok
[INFO] [stdout] test conv_3d_variants::separable_conv2d_large_input_windowed_sums ... ok
[INFO] [stdout] test conv_transpose::conv1d_transpose_weights_correct_shapes ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_accepts_an_input_below_the_kernel_size ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_accepts_an_input_that_is_not_in_c_order ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_backward_before_forward_errors ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_backward_checks_the_gradient_shape ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_falls_short_when_the_stride_does_not_divide ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_forward_empty_spatial_axis_errors ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_exposes_no_parameters_before_backward ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_grows_a_single_pixel_into_the_whole_kernel ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_forward_wrong_channel_count_errors ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_forward_wrong_ndim_errors ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_backward_accepts_a_gradient_that_is_not_in_c_order ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_invalid_input_shape_errors ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_invalid_scalar_param_errors ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_overlapping_windows_add_up ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_param_count_formula ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_forward_equals_the_convolution_input_gradient ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_output_shape_cases ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_reports_its_type_and_output_shape ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_set_weights_refuses_the_plain_kernel_order ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_same_padding_doubles_both_axes ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_set_weights_shape_errors ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_weights_correct_shapes ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_with_random_state_is_reproducible ... ok
[INFO] [stdout] test conv_transpose::conv3d_transpose_grows_a_single_voxel_into_the_whole_kernel ... ok
[INFO] [stdout] test conv_transpose::conv3d_transpose_output_shape_cases ... ok
[INFO] [stdout] test conv_transpose::conv3d_transpose_weights_and_param_count ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_returns_to_the_shape_the_convolution_consumed ... ok
[INFO] [stdout] test conv_transpose::conv3d_transpose_with_random_state_is_reproducible ... ok
[INFO] [stdout] test conv_transpose::conv_transpose_layers_predict_equals_forward ... ok
[INFO] [stdout] test conv_transpose::conv_transpose_layers_reject_a_tensor_of_the_wrong_rank ... ok
[INFO] [stdout] test conv_transpose::conv_transpose_layers_reject_backward_before_forward ... ok
[INFO] [stdout] test dense::dense_backward_before_forward_returns_err ... ok
[INFO] [stdout] test dense::dense_backward_output_shape_matches_input ... ok
[INFO] [stdout] test dense::dense_backward_rank_3_produces_the_3_gradients_of_the_fold ... ok
[INFO] [stdout] test dense::dense_backward_rank_3_rejects_a_folded_gradient ... ok
[INFO] [stdout] test dense::dense_backward_wrong_grad_shape_returns_err ... ok
[INFO] [stdout] test dense::dense_build_rejects_zero_input_dim ... ok
[INFO] [stdout] test dense::dense_forward_3_to_2_linear_single_row ... ok
[INFO] [stdout] test dense::dense_forward_identity_weight_output_equals_input ... ok
[INFO] [stdout] test dense::dense_forward_known_weights_and_bias ... ok
[INFO] [stdout] test conv_transpose::conv_transpose_layers_emit_gradients_in_c_order ... ok
[INFO] [stdout] test dense::dense_forward_rank_3_accepts_an_input_that_is_not_in_c_order ... ok
[INFO] [stdout] test dense::dense_forward_rank_3_matches_a_per_slice_reference ... ok
[INFO] [stdout] test dense::dense_forward_rank_4_equals_the_folded_rank_2_result ... ok
[INFO] [stdout] test dense::dense_forward_rejects_rank_1_input ... ok
[INFO] [stdout] test dense::dense_forward_relu_zeroes_negative_preactivations ... ok
[INFO] [stdout] test dense::dense_layer_type_is_dense ... ok
[INFO] [stdout] test dense::dense_forward_rank_3_shares_1_kernel_over_the_leading_axes ... ok
[INFO] [stdout] test dense::dense_new_rejects_zero_dim ... ok
[INFO] [stdout] test dense::dense_output_shape_reports_the_real_rank ... ok
[INFO] [stdout] test dense::dense_param_count_2x2 ... ok
[INFO] [stdout] test dense::dense_param_count_3x5 ... ok
[INFO] [stdout] test dense::dense_predict_equals_forward ... ok
[INFO] [stdout] test dense::dense_predict_equals_forward_rank_3 ... ok
[INFO] [stdout] test dense::dense_new_accepts_valid_dims ... ok
[INFO] [stdout] test dense::dense_rank_3_softmax_normalizes_each_last_axis_lane ... ok
[INFO] [stdout] test dense::dense_rejects_a_last_axis_that_is_not_the_input_dim ... ok
[INFO] [stdout] test dense::dense_set_weights_wrong_bias_shape_returns_err ... ok
[INFO] [stdout] test dense::dense_set_weights_wrong_weight_shape_returns_err ... ok
[INFO] [stdout] test dense::dense_weights_carry_the_declared_shapes ... ok
[INFO] [stdout] test dense::flatten_backward_before_forward_returns_err ... ok
[INFO] [stdout] test dense::flatten_backward_restores_3d_shape_and_values ... ok
[INFO] [stdout] test dense::flatten_backward_restores_4d_shape_and_values ... ok
[INFO] [stdout] test dense::flatten_build_accepts_a_rank_3_shape ... ok
[INFO] [stdout] test dense::flatten_build_rejects_a_free_axis ... ok
[INFO] [stdout] test dense::flatten_build_rejects_fewer_than_3_dims ... ok
[INFO] [stdout] test dense::flatten_forward_3d_correct_shape_and_values ... ok
[INFO] [stdout] test dense::flatten_forward_4d_correct_shape_and_values ... ok
[INFO] [stdout] test dense::flatten_forward_5d_correct_shape_and_values ... ok
[INFO] [stdout] test dense::flatten_forward_rejects_2d_input ... ok
[INFO] [stdout] test dense::flatten_forward_rejects_6d_input ... ok
[INFO] [stdout] test dense::flatten_layer_type_is_flatten ... ok
[INFO] [stdout] test dense::flatten_param_count_is_no_trainable ... ok
[INFO] [stdout] test dense::flatten_predict_equals_forward ... ok
[INFO] [stdout] test dense::flatten_weights_is_empty ... ok
[INFO] [stdout] test dropout::dropout_accepts_any_batch_size ... ok
[INFO] [stdout] test dropout::dropout_accepts_any_rank ... ok
[INFO] [stdout] test dropout::dropout_backward_before_forward_returns_forward_pass_not_run ... ok
[INFO] [stdout] test dropout::dropout_backward_kept_units_scaled_correctly ... ok
[INFO] [stdout] test dropout::dropout_constructor_accepts_boundary_rates_zero_and_one ... ok
[INFO] [stdout] test dropout::dropout_constructor_rejects_invalid_rate ... ok
[INFO] [stdout] test dropout::dropout_eval_backward_passes_gradient_through ... ok
[INFO] [stdout] test dropout::dropout_eval_mode_is_exact_identity ... ok
[INFO] [stdout] test dropout::dropout_forward_accepts_a_shape_the_build_did_not_name ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_at_rate_one_gives_zeros ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_backward_broadcasts_the_small_mask ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_builder_rejects_an_empty_vector_and_a_zero_entry ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_draws_only_at_the_resolved_small_shape ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_trains_inside_a_sequential_model ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_keeps_the_mask_at_its_own_shape ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_none_entry_takes_the_input_extent ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_of_all_none_matches_the_default ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_of_one_shares_the_whole_tensor ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_passes_through_in_inference_mode ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_rejects_a_higher_rank_than_the_input ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_rejects_an_entry_that_is_not_the_input_extent ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_seed_pins_the_mask ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_shares_one_draw_along_an_axis ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_shares_two_axes_of_a_rank_four_input ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_shorter_than_the_input_is_right_aligned ... ok
[INFO] [stdout] test dropout::dropout_predict_accepts_a_shape_the_build_did_not_name ... ok
[INFO] [stdout] test dropout::dropout_predict_does_not_overwrite_mask_from_forward ... ok
[INFO] [stdout] test dropout::dropout_predict_equals_forward_in_eval_mode ... ok
[INFO] [stdout] test dropout::dropout_predict_is_identity_in_training_mode ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_parallel_path_matches_the_serial_path ... ok
[INFO] [stdout] test dropout::dropout_rate_one_yields_zeros_in_training_mode ... ok
[INFO] [stdout] test dropout::dropout_rate_zero_backward_passes_gradient_through ... ok
[INFO] [stdout] test dropout::dropout_rate_zero_is_identity_in_training_mode ... ok
[INFO] [stdout] test dropout::dropout_training_inverted_scaling_on_kept_units ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_accepts_boundary_rates ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_backward_before_forward_returns_error ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_backward_channel_consistency ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_channel_consistency ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_eval_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_kept_channel_exact_scale ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_predict_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_rate_one_yields_zeros ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_rate_zero_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_rejects_invalid_rate ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_rejects_wrong_ndim_forward ... ok
[INFO] [stdout] test dropout::spatial_dropout_1d_rejects_wrong_ndim_predict ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_backward_before_forward_returns_error ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_backward_channel_consistency ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_channel_consistency ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_eval_is_identity ... ok
[INFO] [stdout] test dropout::dropout_rate_one_backward_returns_zeros ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_predict_rejects_wrong_ndim ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_rate_one_yields_zeros ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_rate_zero_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_rejects_invalid_rate ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_rejects_wrong_ndim ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_backward_before_forward_returns_error ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_backward_channel_consistency ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_channel_consistency ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_eval_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_predict_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_predict_rejects_wrong_ndim ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_rate_one_yields_zeros ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_rate_zero_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_rejects_invalid_rate ... ok
[INFO] [stdout] test dropout::spatial_dropout_2d_predict_is_identity ... ok
[INFO] [stdout] test dropout::spatial_dropout_backward_before_forward_reports_concrete_layer_name ... ok
[INFO] [stdout] test embedding::embedding_accepts_an_input_that_is_not_in_c_order ... ok
[INFO] [stdout] test embedding::embedding_backward_before_forward_is_an_error ... ok
[INFO] [stdout] test dropout::spatial_dropout_3d_rejects_wrong_ndim ... ok
[INFO] [stdout] test embedding::embedding_backward_checks_the_gradient_shape ... ok
[INFO] [stdout] test embedding::embedding_backward_clears_the_gradient_of_the_previous_step ... ok
[INFO] [stdout] test embedding::embedding_backward_leaves_an_unused_row_at_zero ... ok
[INFO] [stdout] test embedding::embedding_backward_matches_the_keras_scatter_add_reference ... ok
[INFO] [stdout] test embedding::embedding_backward_returns_a_zero_input_gradient ... ok
[INFO] [stdout] test embedding::embedding_forward_adds_exactly_1_axis_at_any_rank ... ok
[INFO] [stdout] test embedding::embedding_forward_matches_the_keras_rank_2_reference ... ok
[INFO] [stdout] test embedding::embedding_exposes_no_parameter_before_the_backward_pass ... ok
[INFO] [stdout] test embedding::embedding_forward_truncates_an_index_toward_zero ... ok
[INFO] [stdout] test embedding::embedding_names_its_table_embeddings ... ok
[INFO] [stdout] test embedding::embedding_new_rejects_a_zero_dimension ... ok
[INFO] [stdout] test embedding::embedding_param_count_is_the_table_size ... ok
[INFO] [stdout] test embedding::embedding_predict_equals_forward ... ok
[INFO] [stdout] test embedding::embedding_rejects_a_non_finite_index ... ok
[INFO] [stdout] test embedding::embedding_rejects_a_scalar_input ... ok
[INFO] [stdout] test embedding::embedding_rejects_an_empty_input ... ok
[INFO] [stdout] test embedding::embedding_rejects_an_index_outside_the_table ... ok
[INFO] [stdout] test embedding::embedding_reports_its_type_and_output_shape ... ok
[INFO] [stdout] test embedding::embedding_set_weights_checks_the_table_shape ... ok
[INFO] [stdout] test conv_1d_variants::depthwise_conv1d_parallel_path_matches_the_serial_path ... ok
[INFO] [stdout] test embedding::embedding_training_leaves_an_unselected_row_untouched ... ok
[INFO] [stdout] test embedding::embedding_with_random_state_is_reproducible_and_bounded ... ok
[INFO] [stdout] test gradient_check::average_pooling_1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test embedding::embedding_trains_inside_a_sequential_model ... ok
[INFO] [stdout] test gradient_check::average_pooling_2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::batch_normalization_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::batch_normalization_input_gradient_weighted_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::average_pooling_3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::batch_normalization_spatial_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::batch_normalization_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::batch_normalization_spatial_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_same_padding_output_length_is_ceil_of_input ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_parallel_forward_windowed_sums ... ok
[INFO] [stdout] test gradient_check::conv1d_transpose_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_transpose_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_transpose_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_transpose_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv1d_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_transpose_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_transpose_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_transpose_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_transpose_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv2d_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv3d_transpose_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv3d_transpose_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv3d_transpose_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv3d_transpose_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv3d_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::cropping_1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test conv_1d_2d::conv2d_parallel_weight_grad_constant_count ... ok
[INFO] [stdout] test conv_transpose::conv2d_transpose_parallel_gradient_counts_are_constant ... ok
[INFO] [stdout] test dense::dense_rank_3_matches_across_the_tuning_gates ... ok
[INFO] [stdout] test gradient_check::dense_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv1d_depth_multiplier_2_gradients_match_finite_difference ... ok
[INFO] [stdout] test gradient_check::cropping_2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::dense_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv1d_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv1d_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv1d_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv2d_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv2d_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::elu_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::embedding_repeated_index_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::embedding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::depthwise_conv2d_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::exponential_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::cropping_3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::global_average_pooling_1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::global_average_pooling_2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::global_max_pooling_1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test dropout::dropout_noise_shape_gives_a_correlated_draw_not_an_average ... ok
[INFO] [stdout] test gradient_check::global_average_pooling_3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::global_max_pooling_2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::global_max_pooling_3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::group_normalization_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::hard_sigmoid_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::identity_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::conv3d_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::group_normalization_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::group_normalization_batched_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::instance_normalization_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::layer_normalization_default_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::instance_normalization_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::layer_normalization_default_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::layer_normalization_multiple_trailing_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::layer_normalization_rank3_default_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::leaky_relu_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::layer_normalization_trailing_custom_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::layer_normalization_custom_axis_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::gru_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::max_pooling_1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::lstm_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::max_pooling_2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::merge_add_input_gradients ... ok
[INFO] [stdout] test gradient_check::merge_add_reduces_a_broadcast_gradient ... ok
[INFO] [stdout] test gradient_check::layer_normalization_multiple_permuted_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::merge_average_input_gradients ... ok
[INFO] [stdout] test gradient_check::merge_concatenate_input_gradients ... ok
[INFO] [stdout] test gradient_check::merge_concatenate_on_the_batch_axis_input_gradients ... ok
[INFO] [stdout] test gradient_check::merge_maximum_input_gradients ... ok
[INFO] [stdout] test gradient_check::merge_add_reduces_a_rank_aligned_gradient ... ok
[INFO] [stdout] test gradient_check::merge_minimum_input_gradients ... ok
[INFO] [stdout] test gradient_check::merge_multiply_input_gradients ... ok
[INFO] [stdout] test gradient_check::p_relu_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::merge_subtract_input_gradients ... ok
[INFO] [stdout] test gradient_check::p_relu_shared_axes_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::max_pooling_3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::p_relu_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::permute_rotate_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::p_relu_shared_axes_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::merge_multiply_reduces_a_broadcast_gradient ... ok
[INFO] [stdout] test gradient_check::gru_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::reshape_split_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::repeat_vector_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::permute_swap_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::reshape_merge_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::selu_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv1d_same_padding_depth_multiplier_2_gradients_match_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv1d_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::reverse_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv1d_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::simple_rnn_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::simple_rnn_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv2d_same_padding_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv2d_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::softplus_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::softmax_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::softsign_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::unit_normalization_input_gradient_weighted_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::unit_normalization_separated_axes_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::up_sampling_1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv2d_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::lstm_weight_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::up_sampling_2d_lanczos3_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::unit_normalization_middle_axis_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::up_sampling_3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::up_sampling_2d_nearest_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::up_sampling_2d_bicubic_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::zero_padding_3d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test graph::a_chain_refuses_a_layer_that_needs_a_second_input ... ok
[INFO] [stdout] test graph::a_graph_reports_a_summary ... ok
[INFO] [stdout] test gradient_check::zero_padding_1d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test graph::a_merge_layer_refuses_the_wrong_input_count_by_hand ... ok
[INFO] [stdout] test gradient_check::zero_padding_2d_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test gradient_check::separable_conv2d_same_padding_3x3_dm2_gradients_match_finite_difference ... ok
[INFO] [stdout] test graph::a_node_with_the_wrong_input_count_is_refused ... ok
[INFO] [stdout] test graph::a_model_with_several_inlets_and_outlets_trains ... ok
[INFO] [stdout] test graph::a_shape_a_layer_refuses_names_the_node ... ok
[INFO] [stdout] test gradient_check::conv3d_same_padding_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test graph::a_node_read_twice_receives_the_sum_of_both_gradients ... ok
[INFO] [stdout] test identity::identity_backward_needs_a_forward_pass ... ok
[INFO] [stdout] test identity::identity_backward_rejects_a_wrong_shape ... ok
[INFO] [stdout] test graph::a_graph_round_trips_through_a_checkpoint ... ok
[INFO] [stdout] test identity::identity_holds_no_parameter ... ok
[INFO] [stdout] test identity::identity_output_is_in_c_order ... ok
[INFO] [stdout] test identity::identity_output_shape_needs_a_forward_pass ... ok
[INFO] [stdout] test identity::identity_passes_every_rank_through_unchanged ... ok
[INFO] [stdout] test identity::identity_passes_its_gradient_through_unchanged ... ok
[INFO] [stdout] test identity::identity_predict_caches_nothing ... ok
[INFO] [stdout] test identity::identity_rejects_a_rank_0_input ... ok
[INFO] [stdout] test identity::identity_rejects_empty_input ... ok
[INFO] [stdout] test identity::identity_default_matches_new ... ok
[INFO] [stdout] test losses::bce_extreme_predictions_clipped_to_finite ... ok
[INFO] [stdout] test losses::bce_gradient_value ... ok
[INFO] [stdout] test losses::bce_forward_value ... ok
[INFO] [stdout] test losses::bce_shape_mismatch_returns_err ... ok
[INFO] [stdout] test losses::bce_perfect_prediction_near_zero_loss_and_finite_grad ... ok
[INFO] [stdout] test graph::a_shared_layer_takes_the_sum_of_the_gradients_of_its_nodes ... ok
[INFO] [stdout] test losses::cce_empty_input_returns_err ... ok
[INFO] [stdout] test losses::cce_extreme_predictions_clipped_to_finite ... ok
[INFO] [stdout] test losses::cce_forward_value_divided_by_batch ... ok
[INFO] [stdout] test losses::cce_from_logits_loss_and_grad ... ok
[INFO] [stdout] test losses::cce_gradient_value ... ok
[INFO] [stdout] test losses::cce_loss_is_invariant_to_row_scaling ... ok
[INFO] [stdout] test losses::cce_perfect_prediction_near_zero_loss_and_finite_grad ... ok
[INFO] [stdout] test losses::cce_rejects_1d_input ... ok
[INFO] [stdout] test losses::cce_probability_gradient_matches_finite_difference ... ok
[INFO] [stdout] test losses::cce_row_constant_term_vanishes_through_softmax_backward ... ok
[INFO] [stdout] test losses::cce_renormalizes_each_site_independently_above_rank_2 ... ok
[INFO] [stdout] test losses::cce_shape_mismatch_returns_err ... ok
[INFO] [stdout] test identity::identity_does_not_change_what_a_model_learns ... ok
[INFO] [stdout] test gradient_check::up_sampling_2d_bilinear_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test losses::mae_shape_mismatch_returns_err ... ok
[INFO] [stdout] test losses::mae_forward_value ... ok
[INFO] [stdout] test losses::mae_perfect_prediction_zero_loss_and_grad ... ok
[INFO] [stdout] test losses::mse_shape_mismatch_returns_err ... ok
[INFO] [stdout] test losses::scce_batch_mismatch_returns_err ... ok
[INFO] [stdout] test losses::scce_extreme_prediction_clipped_to_finite ... ok
[INFO] [stdout] test losses::mse_gradient_value ... ok
[INFO] [stdout] test losses::scce_forward_value_equals_cce_equivalent ... ok
[INFO] [stdout] test losses::scce_from_logits_loss_and_grad ... ok
[INFO] [stdout] test losses::scce_gradient_matches_cce_equivalent ... ok
[INFO] [stdout] test losses::scce_gradient_value ... ok
[INFO] [stdout] test losses::scce_loss_equals_cce_loss_on_equivalent_inputs ... ok
[INFO] [stdout] test losses::scce_loss_is_invariant_to_row_scaling ... ok
[INFO] [stdout] test losses::mae_gradient_value_including_zero_tie ... ok
[INFO] [stdout] test losses::scce_negative_label_returns_err ... ok
[INFO] [stdout] test losses::scce_non_2d_predictions_returns_err ... ok
[INFO] [stdout] test losses::scce_out_of_range_label_returns_err ... ok
[INFO] [stdout] test losses::scce_probability_gradient_matches_finite_difference ... ok
[INFO] [stdout] test graph::a_residual_block_trains_and_predicts ... ok
[INFO] [stdout] test noise::gaussian_dropout_accepts_any_rank ... ok
[INFO] [stdout] test noise::gaussian_dropout_backward_inference_is_passthrough ... ok
[INFO] [stdout] test noise::gaussian_dropout_backward_is_idempotent ... ok
[INFO] [stdout] test losses::mse_forward_value ... ok
[INFO] [stdout] test noise::gaussian_dropout_eval_mode_is_identity ... ok
[INFO] [stdout] test noise::gaussian_dropout_forward_accepts_a_shape_the_build_did_not_name ... ok
[INFO] [stdout] test noise::gaussian_dropout_invalid_rate_returns_err ... ok
[INFO] [stdout] test noise::gaussian_dropout_layer_type_and_output_shape ... ok
[INFO] [stdout] test noise::gaussian_dropout_backward_multiplies_by_forward_noise ... ok
[INFO] [stdout] test noise::gaussian_dropout_backward_without_forward_errors ... ok
[INFO] [stdout] test noise::gaussian_dropout_empty_input_shape_output_shape_unknown ... ok
[INFO] [stdout] test noise::gaussian_dropout_predict_accepts_a_shape_the_build_did_not_name ... ok
[INFO] [stdout] test noise::gaussian_dropout_predict_equals_forward_in_eval_mode ... ok
[INFO] [stdout] test noise::gaussian_dropout_mode_switching_routes_correctly ... ok
[INFO] [stdout] test noise::gaussian_dropout_predict_is_always_identity ... ok
[INFO] [stdout] test gradient_check::up_sampling_2d_lanczos5_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test noise::gaussian_dropout_rate_near_one_construction_ok ... ok
[INFO] [stdout] test noise::gaussian_dropout_rate_zero_construction_ok ... ok
[INFO] [stdout] test noise::gaussian_dropout_rate_zero_training_is_identity ... ok
[INFO] [stdout] test noise::gaussian_noise_accepts_any_rank ... ok
[INFO] [stdout] test noise::gaussian_noise_backward_passes_gradient_through_unchanged ... ok
[INFO] [stdout] test losses::mse_perfect_prediction_zero_loss_and_grad ... ok
[INFO] [stdout] test noise::gaussian_noise_eval_mode_is_identity ... ok
[INFO] [stdout] test noise::gaussian_noise_forward_accepts_a_shape_the_build_did_not_name ... ok
[INFO] [stdout] test noise::gaussian_noise_layer_type_and_output_shape ... ok
[INFO] [stdout] test noise::gaussian_noise_positive_stddev_construction_ok ... ok
[INFO] [stdout] test noise::gaussian_noise_predict_accepts_a_shape_the_build_did_not_name ... ok
[INFO] [stdout] test noise::gaussian_noise_predict_equals_forward_in_eval_mode ... ok
[INFO] [stdout] test noise::gaussian_noise_predict_is_always_identity ... ok
[INFO] [stdout] test noise::gaussian_noise_invalid_stddev_returns_err ... ok
[INFO] [stdout] test noise::gaussian_noise_mode_switching_routes_correctly ... ok
[INFO] [stdout] test losses::scce_wrong_label_shape_returns_err ... ok
[INFO] [stdout] test noise::gaussian_dropout_training_preserves_mean ... ok
[INFO] [stdout] test noise::gaussian_noise_training_can_produce_negative_values ... ok
[INFO] [stdout] test noise::gaussian_noise_unbuilt_output_shape_is_unknown ... ok
[INFO] [stdout] test noise::gaussian_noise_training_consecutive_calls_differ ... ok
[INFO] [stdout] test noise::gaussian_dropout_training_consecutive_calls_differ ... ok
[INFO] [stdout] test noise::gaussian_noise_zero_stddev_construction_ok ... ok
[INFO] [stdout] test noise::gaussian_noise_zero_stddev_training_is_identity ... ok
[INFO] [stdout] test noise::gaussian_noise_training_preserves_mean ... ok
[INFO] [stdout] test norm_batch_layer::bn_backward_before_forward_errors ... ok
[INFO] [stdout] test norm_batch_layer::bn_backward_eval_mode_passes_gradient_through ... ok
[INFO] [stdout] test norm_batch_layer::bn_build_rejects_empty_input_shape ... ok
[INFO] [stdout] test norm_batch_layer::bn_constructor_accepts_boundary_momentum_values ... ok
[INFO] [stdout] test norm_batch_layer::bn_eval_applies_custom_gamma_and_beta ... ok
[INFO] [stdout] test norm_batch_layer::bn_forward_accepts_different_batch_size ... ok
[INFO] [stdout] test norm_batch_layer::bn_forward_rejects_wrong_input_shape ... ok
[INFO] [stdout] test norm_batch_layer::bn_constructor_rejects_invalid_scalar_params ... ok
[INFO] [stdout] test norm_batch_layer::bn_eval_uses_running_stats_from_set_weights ... ok
[INFO] [stdout] test norm_batch_layer::bn_new_scalar_param_branch_forward_1d ... ok
[INFO] [stdout] test norm_batch_layer::bn_param_count_counts_the_channel_axis_alone ... ok
[INFO] [stdout] test norm_batch_layer::bn_param_count_splits_the_trainable_and_the_non_trainable_half ... ok
[INFO] [stdout] test norm_batch_layer::bn_predict_equals_forward_in_eval_mode ... ok
[INFO] [stdout] test norm_batch_layer::bn_set_weights_rejects_wrong_gamma_shape ... ok
[INFO] [stdout] test norm_batch_layer::bn_running_stats_accumulate_over_multiple_forwards ... ok
[INFO] [stdout] test norm_batch_layer::bn_running_stats_update_after_one_forward ... ok
[INFO] [stdout] test norm_batch_layer::bn_train_forward_concrete_values_4x1 ... ok
[INFO] [stdout] test norm_batch_layer::bn_spatial_4d_normalizes_per_channel ... ok
[INFO] [stdout] test norm_batch_layer::bn_spatial_4d_backward_shape ... ok
[INFO] [stdout] test norm_batch_layer::bn_training_and_eval_modes_produce_different_outputs ... ok
[INFO] [stdout] test norm_batch_layer::bn_train_output_has_batch_mean_zero_and_var_one ... ok
[INFO] [stdout] test norm_batch_layer::bn_uniform_batch_output_is_zero ... ok
[INFO] [stdout] test norm_batch_layer::ln_backward_before_forward_errors ... ok
[INFO] [stdout] test norm_batch_layer::ln_backward_eval_mode_passes_gradient_through ... ok
[INFO] [stdout] test norm_batch_layer::ln_constructor_rejects_invalid_epsilon ... ok
[INFO] [stdout] test norm_batch_layer::ln_constructor_rejects_multiple_duplicate_axes ... ok
[INFO] [stdout] test norm_batch_layer::ln_constructor_rejects_multiple_empty_axes ... ok
[INFO] [stdout] test norm_batch_layer::ln_constructor_rejects_multiple_out_of_bounds_axis ... ok
[INFO] [stdout] test norm_batch_layer::ln_custom_axis_out_of_bounds_predict_errors ... ok
[INFO] [stdout] test norm_batch_layer::ln_custom_axis0_each_column_has_mean_zero_and_var_one ... ok
[INFO] [stdout] test norm_batch_layer::ln_default_constant_row_is_finite_and_zero ... ok
[INFO] [stdout] test norm_batch_layer::ln_default_each_sample_has_mean_zero_and_var_one ... ok
[INFO] [stdout] test norm_batch_layer::ln_default_forward_concrete_values ... ok
[INFO] [stdout] test norm_batch_layer::ln_default_scalar_input_forward_errors ... ok
[INFO] [stdout] test norm_batch_layer::ln_forward_rejects_wrong_input_shape ... ok
[INFO] [stdout] test norm_batch_layer::ln_mode_switch_does_not_change_forward_output ... ok
[INFO] [stdout] test norm_batch_layer::ln_multiple_axes_output_has_mean_zero_and_var_one ... ok
[INFO] [stdout] test norm_batch_layer::ln_multiple_single_axis_on_3d_input ... ok
[INFO] [stdout] test norm_batch_layer::ln_default_scalar_input_predict_errors ... ok
[INFO] [stdout] test norm_batch_layer::ln_multiple_valid_axes_forward_succeeds ... ok
[INFO] [stdout] test norm_batch_layer::ln_param_count_reports_no_non_trainable_parameter ... ok
[INFO] [stdout] test norm_batch_layer::ln_predict_equals_forward ... ok
[INFO] [stdout] test norm_batch_layer::ln_predict_equals_forward_in_eval_mode ... ok
[INFO] [stdout] test norm_batch_layer::ln_set_weights_rejects_wrong_gamma_shape ... ok
[INFO] [stdout] test norm_batch_layer::ln_set_weights_custom_gamma_beta ... ok
[INFO] [stdout] test norm_group_instance::group_norm_backward_eval_mode_passes_gradient_through ... ok
[INFO] [stdout] test norm_group_instance::group_norm_constant_input_yields_zero_output ... ok
[INFO] [stdout] test norm_group_instance::group_norm_constructor_invalid_parameter_errors ... ok
[INFO] [stdout] test norm_group_instance::group_norm_custom_gamma_beta_forward_values ... ok
[INFO] [stdout] test norm_group_instance::group_norm_channel_axis_is_last ... ok
[INFO] [stdout] test norm_group_instance::group_norm_error_backward_before_forward ... ok
[INFO] [stdout] test norm_group_instance::group_norm_error_channels_not_divisible_by_groups_at_forward ... ok
[INFO] [stdout] test norm_group_instance::group_norm_error_empty_input_shape ... ok
[INFO] [stdout] test norm_group_instance::group_norm_forward_below_3d_input_errors ... ok
[INFO] [stdout] test norm_group_instance::group_norm_full_groups_equals_instance_norm ... ok
[INFO] [stdout] test norm_group_instance::group_norm_full_groups_equals_instance_norm_with_affine ... ok
[INFO] [stdout] test norm_group_instance::group_norm_predict_equals_forward ... ok
[INFO] [stdout] test norm_group_instance::group_norm_set_weights_shape_mismatch ... ok
[INFO] [stdout] test norm_group_instance::group_norm_single_group_forward_values ... ok
[INFO] [stdout] test norm_group_instance::group_norm_two_batches_forward_values ... ok
[INFO] [stdout] test norm_group_instance::group_norm_two_groups_forward_values ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_backward_eval_mode_passes_gradient_through ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_channel_axis_is_last ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_constant_input_yields_zero_output ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_constructor_invalid_parameter_errors ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_custom_gamma_beta_forward_values ... ok
[INFO] [stdout] test norm_batch_layer::ln_custom_axis_out_of_bounds_forward_errors ... ok
[INFO] [stdout] test norm_batch_layer::ln_custom_axis0_concrete_values ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_error_backward_before_forward ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_forward_values ... ok
[INFO] [stdout] test noise::gaussian_dropout_training_noise_std_matches_formula ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_multiple_batches_forward_values ... ok
[INFO] [stdout] test norm_group_instance::group_norm_output_shape_matches_input ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_error_empty_input_shape ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_forward_below_3d_input_errors ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_output_shape_matches_input ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_set_weights_shape_mismatch ... ok
[INFO] [stdout] test noise::gaussian_noise_training_noise_std_matches_stddev ... ok
[INFO] [stdout] test norm_unit::unit_normalization_backward_needs_a_forward_pass ... ok
[INFO] [stdout] test norm_unit::unit_normalization_backward_rejects_a_wrong_shape ... ok
[INFO] [stdout] test norm_unit::unit_normalization_cap_takes_over_below_a_norm_of_1e_minus_12 ... ok
[INFO] [stdout] test norm_unit::unit_normalization_capped_group_gradient_drops_the_projection_term ... ok
[INFO] [stdout] test norm_unit::unit_normalization_forward_hand_derived ... ok
[INFO] [stdout] test norm_unit::unit_normalization_gives_every_group_a_length_of_1 ... ok
[INFO] [stdout] test norm_unit::unit_normalization_gradient_is_orthogonal_to_its_output ... ok
[INFO] [stdout] test norm_unit::unit_normalization_holds_no_parameter ... ok
[INFO] [stdout] test norm_unit::unit_normalization_ignores_the_length_of_its_input ... ok
[INFO] [stdout] test norm_unit::unit_normalization_is_idempotent ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_predict_equals_forward ... ok
[INFO] [stdout] test norm_unit::unit_normalization_axis_list_order_does_not_matter ... ok
[INFO] [stdout] test norm_group_instance::instance_norm_predict_equals_forward_training_mode ... ok
[INFO] [stdout] test norm_unit::unit_normalization_leaves_an_all_zero_group_at_zero ... ok
[INFO] [stdout] test norm_unit::unit_normalization_matches_reference_on_2_separated_axes ... ok
[INFO] [stdout] test norm_unit::unit_normalization_matches_reference_on_a_middle_axis ... ok
[INFO] [stdout] test norm_unit::unit_normalization_output_shape_needs_a_forward_pass ... ok
[INFO] [stdout] test norm_unit::unit_normalization_accepts_input_that_is_not_in_c_order ... ok
[INFO] [stdout] test norm_unit::unit_normalization_axis_spellings_agree_on_the_last_axis ... ok
[INFO] [stdout] test norm_unit::unit_normalization_matches_reference_on_the_last_axis ... ok
[INFO] [stdout] test norm_unit::unit_normalization_predict_matches_forward_and_caches_nothing ... ok
[INFO] [stdout] test norm_unit::unit_normalization_rejects_a_repeated_axis ... ok
[INFO] [stdout] test norm_unit::unit_normalization_output_is_in_c_order ... ok
[INFO] [stdout] test norm_unit::unit_normalization_on_the_batch_axis_normalizes_columns ... ok
[INFO] [stdout] test norm_unit::unit_normalization_rejects_an_axis_out_of_bounds ... ok
[INFO] [stdout] test norm_unit::unit_normalization_rejects_an_empty_axis_list ... ok
[INFO] [stdout] test norm_unit::unit_normalization_rejects_empty_input ... ok
[INFO] [stdout] test norm_unit::unit_normalization_rejects_rank_below_2 ... ok
[INFO] [stdout] test norm_unit::unit_normalization_returns_zero_when_the_sum_of_squares_overflows ... ok
[INFO] [stdout] test norm_unit::unit_normalization_over_every_axis_makes_1_group ... ok
[INFO] [stdout] test norm_unit::unit_normalization_serves_every_rank_from_2_up ... ok
[INFO] [stdout] test norm_unit::unit_normalization_runs_inside_a_sequential_model ... ok
[INFO] [stdout] test norm_unit::unit_normalization_spreads_a_nan_across_its_group ... ok
[INFO] [stdout] test optimizers::a_changing_parameter_count_must_not_move_another_layer_state ... ok
[INFO] [stdout] test optimizers::a_tensor_joining_the_roster_must_not_take_another_tensor_state ... ok
[INFO] [stdout] test optimizers::adagrad_accepts_valid_hyperparameters ... ok
[INFO] [stdout] test optimizers::adagrad_rejects_invalid_epsilon ... ok
[INFO] [stdout] test optimizers::adagrad_rejects_invalid_learning_rate ... ok
[INFO] [stdout] test optimizers::a_second_layer_moves_no_state_of_the_first ... ok
[INFO] [stdout] test optimizers::adam_accepts_valid_hyperparameters ... ok
[INFO] [stdout] test optimizers::adam_beta1_bounds ... ok
[INFO] [stdout] test optimizers::adam_beta2_bounds ... ok
[INFO] [stdout] test optimizers::adam_l2_and_adamw_decoupled_differ_with_weight_decay ... ok
[INFO] [stdout] test optimizers::adam_rejects_invalid_epsilon ... ok
[INFO] [stdout] test optimizers::adam_rejects_invalid_learning_rate ... ok
[INFO] [stdout] test optimizers::adagrad_scope_must_separate_2_same_shape_layers ... ok
[INFO] [stdout] test optimizers::adam_equals_adamw_without_weight_decay ... ok
[INFO] [stdout] test optimizers::adam_scope_must_separate_2_same_shape_layers ... ok
[INFO] [stdout] test optimizers::adagrad_single_layer_loss_decreases_over_20_epochs ... ok
[INFO] [stdout] test optimizers::adamw_scope_must_separate_2_same_shape_layers ... ok
[INFO] [stdout] test optimizers::adagrad_two_layer_loss_decreases ... ok
[INFO] [stdout] test optimizers::clip_by_global_norm_above_norm_is_noop ... ok
[INFO] [stdout] test optimizers::clip_by_global_norm_scales_sgd_step ... ok
[INFO] [stdout] test optimizers::every_optimizer_reports_its_current_learning_rate ... ok
[INFO] [stdout] test optimizers::identity_dense_initial_mse_is_1_875 ... ok
[INFO] [stdout] test optimizers::new_rejects_invalid_global_clipnorm ... ok
[INFO] [stdout] test optimizers::new_rejects_negative_momentum_and_weight_decay ... ok
[INFO] [stdout] test optimizers::rmsprop_accepts_valid_hyperparameters ... ok
[INFO] [stdout] test optimizers::rmsprop_rejects_invalid_epsilon ... ok
[INFO] [stdout] test optimizers::rmsprop_rejects_invalid_learning_rate ... ok
[INFO] [stdout] test optimizers::rmsprop_rho_bounds ... ok
[INFO] [stdout] test optimizers::rmsprop_scope_must_separate_2_same_shape_layers ... ok
[INFO] [stdout] test optimizers::adam_single_layer_loss_decreases_over_20_epochs ... ok
[INFO] [stdout] test optimizers::adamw_single_layer_loss_decreases_over_20_epochs ... ok
[INFO] [stdout] test optimizers::set_learning_rate_scales_the_step ... ok
[INFO] [stdout] test optimizers::rmsprop_single_layer_loss_decreases_over_20_epochs ... ok
[INFO] [stdout] test optimizers::sgd_accepts_valid_learning_rate ... ok
[INFO] [stdout] test optimizers::adam_two_layer_loss_decreases_and_buffers_allocated_correctly ... ok
[INFO] [stdout] test optimizers::sgd_decoupled_weight_decay_shrinks_param ... ok
[INFO] [stdout] test optimizers::sgd_one_step_weight_update_matches_hand_calculation ... ok
[INFO] [stdout] test optimizers::sgd_rejects_invalid_learning_rate ... ok
[INFO] [stdout] test optimizers::sgd_momentum_velocity_must_survive_between_steps ... ok
[INFO] [stdout] test optimizers::sgd_momentum_loss_decreases ... ok
[INFO] [stdout] test optimizers::sgd_scope_must_separate_2_same_shape_layers ... ok
[INFO] [stdout] test optimizers::weight_decay_decays_dense_weights_but_skips_bias ... ok
[INFO] [stdout] test optimizers::adamw_validates_hyperparameters ... ok
[INFO] [stdout] test optional_parameters::a_bias_free_checkpoint_fails_to_load_into_a_layer_with_a_bias ... ok
[INFO] [stdout] test optimizers::sgd_single_layer_loss_decreases_over_20_epochs ... ok
[INFO] [stdout] test optional_parameters::a_bias_free_conv2d_trains_its_kernel ... ok
[INFO] [stdout] test optional_parameters::a_bias_free_dense_matches_keras ... ok
[INFO] [stdout] test optional_parameters::a_bias_free_checkpoint_round_trips ... ok
[INFO] [stdout] test optional_parameters::a_checkpoint_of_the_other_optional_array_fails_by_path ... ok
[INFO] [stdout] test optimizers::weight_decay_skips_batchnorm_gamma_and_beta ... ok
[INFO] [stdout] test optional_parameters::a_checkpoint_with_a_bias_fails_to_load_into_a_bias_free_layer ... ok
[INFO] [stdout] test optional_parameters::a_partial_load_reports_the_array_the_model_dropped ... ok
[INFO] [stdout] test optional_parameters::a_scale_free_layer_normalization_matches_keras ... ok
[INFO] [stdout] test optional_parameters::dropping_an_array_moves_no_other_checkpoint_path ... ok
[INFO] [stdout] test optional_parameters::a_bias_free_dense_trains_its_kernel ... ok
[INFO] [stdout] test optional_parameters::dropping_gamma_does_not_give_beta_the_optimizer_state_of_gamma ... ok
[INFO] [stdout] test optional_parameters::every_normalization_layer_drops_the_array_its_flag_names ... ok
[INFO] [stdout] test optional_parameters::every_bias_free_layer_yields_its_kernels ... ok
[INFO] [stdout] test optional_parameters::param_count_agrees_with_keras_for_the_optional_configurations ... ok
[INFO] [stdout] test optional_parameters::every_normalization_layer_yields_exactly_the_parameters_it_owns ... ok
[INFO] [stdout] test optimizers::sgd_two_layer_loss_decreases ... ok
[INFO] [stdout] test optional_parameters::param_count_matches_the_arrays_a_layer_holds ... ok
[INFO] [stdout] test optional_parameters::set_weights_refuses_a_bias_that_the_layer_does_not_hold ... ok
[INFO] [stdout] test optional_parameters::set_weights_refuses_a_normalization_array_that_the_layer_does_not_hold ... ok
[INFO] [stdout] test optional_parameters::set_weights_requires_the_bias_that_the_layer_holds ... ok
[INFO] [stdout] test optional_parameters::the_conv_setters_refuse_a_bias_that_the_layer_does_not_hold ... ok
[INFO] [stdout] test optional_parameters::the_defaults_keep_every_array ... ok
[INFO] [stdout] test p_relu::p_relu_accepts_a_zero_or_negative_alpha ... ok
[INFO] [stdout] test p_relu::p_relu_accepts_any_batch_size ... ok
[INFO] [stdout] test optional_parameters::the_use_bias_layers_yield_exactly_the_parameters_they_own ... ok
[INFO] [stdout] test p_relu::p_relu_exposes_no_parameter_before_the_first_backward ... ok
[INFO] [stdout] test p_relu::p_relu_forward_broadcasts_a_channel_slope_over_space ... ok
[INFO] [stdout] test p_relu::p_relu_forward_leaves_0_alone_whatever_the_slope ... ok
[INFO] [stdout] test p_relu::p_relu_forward_uses_1_slope_per_feature ... ok
[INFO] [stdout] test p_relu::p_relu_holds_1_slope_per_position_without_shared_axes ... ok
[INFO] [stdout] test p_relu::p_relu_input_gradient_follows_the_sign_of_the_input ... ok
[INFO] [stdout] test p_relu::p_relu_names_its_live_slopes_alpha ... ok
[INFO] [stdout] test optional_parameters::a_normalization_layer_that_drops_1_array_trains_the_array_it_keeps ... ok
[INFO] [stdout] test p_relu::p_relu_predict_equals_forward_and_caches_nothing ... ok
[INFO] [stdout] test p_relu::p_relu_accepts_any_extent_on_a_shared_axis ... ok
[INFO] [stdout] test p_relu::p_relu_emits_c_order_tensors_from_a_strided_input ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_a_mismatched_extent_on_an_axis_that_is_not_shared ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_a_non_finite_alpha ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_a_repeated_shared_axis ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_a_shared_axis_at_or_above_the_rank ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_a_gradient_of_the_wrong_shape ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_an_empty_input ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_a_zero_dimension_on_any_axis ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_an_input_of_the_wrong_rank ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_an_input_shape_of_rank_below_2 ... ok
[INFO] [stdout] test p_relu::p_relu_reports_its_type_and_output_shape ... ok
[INFO] [stdout] test p_relu::p_relu_set_weights_rejects_a_mismatched_shape ... ok
[INFO] [stdout] test p_relu::p_relu_set_weights_repacks_a_strided_array ... ok
[INFO] [stdout] test p_relu::p_relu_shared_axes_drops_a_stale_gradient ... ok
[INFO] [stdout] test p_relu::p_relu_shared_axes_ignores_the_order_given ... ok
[INFO] [stdout] test p_relu::p_relu_shared_axes_keeps_the_starting_slope ... ok
[INFO] [stdout] test p_relu::p_relu_shared_axes_set_the_slope_shape ... ok
[INFO] [stdout] test p_relu::p_relu_slope_gradient_sums_over_every_shared_axis ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_backward_before_forward ... ok
[INFO] [stdout] test p_relu::p_relu_rejects_the_batch_axis_in_shared_axes ... ok
[INFO] [stdout] test p_relu::p_relu_slope_gradient_sums_over_the_batch ... ok
[INFO] [stdout] test p_relu::p_relu_slope_gradient_weights_by_the_upstream_gradient ... ok
[INFO] [stdout] test p_relu::p_relu_trains_with_shared_spatial_axes ... ok
[INFO] [stdout] test p_relu::p_relu_with_a_uniform_slope_matches_leaky_relu_away_from_0 ... ok
[INFO] [stdout] test p_relu::p_relu_with_a_zero_slope_matches_relu ... ok
[INFO] [stdout] test permute_repeat::permute_backward_applies_the_inverse_order ... ok
[INFO] [stdout] test p_relu::p_relu_weights_keep_a_shared_axis_at_extent_1 ... ok
[INFO] [stdout] test permute_repeat::permute_backward_before_forward_returns_err ... ok
[INFO] [stdout] test permute_repeat::permute_backward_wrong_grad_shape_returns_err ... ok
[INFO] [stdout] test permute_repeat::permute_feeds_softmax ... ok
[INFO] [stdout] test permute_repeat::permute_forward_identity_copies_input ... ok
[INFO] [stdout] test permute_repeat::permute_forward_rejects_empty_input ... ok
[INFO] [stdout] test permute_repeat::permute_forward_rejects_wrong_rank ... ok
[INFO] [stdout] test permute_repeat::permute_forward_rotates_three_axes_by_value ... ok
[INFO] [stdout] test permute_repeat::permute_forward_swaps_two_axes_by_value ... ok
[INFO] [stdout] test optimizers::rmsprop_two_layer_loss_decreases ... ok
[INFO] [stdout] test permute_repeat::permute_metadata ... ok
[INFO] [stdout] test permute_repeat::permute_new_accepts_every_permutation ... ok
[INFO] [stdout] test permute_repeat::permute_new_rejects_a_repeated_axis ... ok
[INFO] [stdout] test permute_repeat::permute_new_rejects_axis_above_range ... ok
[INFO] [stdout] test permute_repeat::permute_new_rejects_empty_dims ... ok
[INFO] [stdout] test permute_repeat::permute_new_rejects_zero_axis ... ok
[INFO] [stdout] test permute_repeat::permute_one_instance_serves_every_batch_size ... ok
[INFO] [stdout] test permute_repeat::permute_output_is_in_c_order ... ok
[INFO] [stdout] test permute_repeat::permute_output_shape_before_and_after_forward ... ok
[INFO] [stdout] test permute_repeat::permute_predict_matches_forward ... ok
[INFO] [stdout] test permute_repeat::permute_rotation_round_trips_through_its_inverse ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_backward_before_forward_returns_err ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_backward_sums_over_the_step_axis ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_backward_wrong_grad_shape_returns_err ... ok
[INFO] [stdout] test permute_repeat::permute_forward_serves_rank_5 ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_forward_rejects_empty_input ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_forward_rejects_wrong_rank ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_forward_repeats_each_row ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_forward_with_one_step_adds_an_axis ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_metadata ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_new_rejects_zero ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_one_instance_serves_every_batch_size ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_output_shape_before_and_after_forward ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_predict_matches_forward ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_backward_before_forward_errors ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_build_rejects_pool_size_larger_than_length ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_build_rejects_wrong_rank ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_build_rejects_zero_pool_size ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_constructor_rejects_zero_stride ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_default_stride_equals_pool_size ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_forward_multi_batch ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_forward_values_pool2_stride2 ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_forward_values_pool3_stride1 ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_layer_type_and_output_shape ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_avg::avg_pool_1d_wrong_rank_input_errors ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_backward_before_forward_errors ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_build_rejects_a_zero_spatial_extent ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_build_rejects_oversized_pool ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_build_rejects_wrong_rank ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_constructor_rejects_zero_stride ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_default_stride_equals_pool_size ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_forward_multi_channel_independence ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_forward_values_nonsquare_pool ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_forward_values_pool2x2_stride2x2 ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_layer_type_and_output_shape ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_same_padding_excludes_padding ... ok
[INFO] [stdout] test pooling_avg::avg_pool_2d_wrong_rank_input_errors ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_backward_before_forward_errors ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_build_rejects_a_zero_spatial_extent ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_build_rejects_wrong_rank ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_constructor_rejects_zero_stride ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_default_stride_equals_pool_size ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_forward_values_single_window ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_forward_values_two_depth_windows ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_layer_type_and_output_shape ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_avg::avg_pool_3d_wrong_rank_input_errors ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_backward_before_forward_errors ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_forward_all_ones ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_forward_distinct_channels ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_forward_multi_batch ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_layer_type ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_output_shape ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_predict_equals_forward ... ok
[INFO] [stdout] test permute_repeat::permute_inside_sequential_model_trains ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_1d_wrong_rank_input_errors ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_backward_before_forward_errors ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_forward_distinct_channels ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_forward_multi_batch ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_forward_single_spatial_pixel ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_forward_all_ones ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_layer_type ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_output_shape ... ok
[INFO] [stdout] test p_relu::p_relu_trains_its_slopes ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_backward_before_forward_errors ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_forward_all_ones ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_forward_multi_batch ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_forward_multi_channel ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_forward_single_batch_channel ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_layer_type ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_output_shape ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_2d_wrong_rank_input_errors ... ok
[INFO] [stdout] test pooling_avg::global_avg_pool_3d_wrong_rank_input_errors ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_backward_before_forward_err ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_forward_values ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_forward_values_batch ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_forward_wrong_ndim_err ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_output_shape_after_forward ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_2d_all_negative_infinity_keeps_gradient_on_its_channel ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_2d_backward_before_forward_err ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_2d_forward_values ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_2d_forward_values_batch ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_2d_forward_wrong_ndim_err ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_all_negative_infinity_keeps_gradient_on_its_channel ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_2d_output_shape_after_forward ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_2d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_3d_all_negative_infinity_keeps_gradient_on_its_channel ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_3d_backward_before_forward_err ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_3d_forward_values ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_3d_forward_values_batch ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_3d_forward_wrong_ndim_err ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_1d_all_negative_infinity_across_fold_blocks ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_3d_output_shape_after_forward ... ok
[INFO] [stdout] test pooling_max::global_max_pooling_3d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_all_negative_infinity_window_keeps_gradient_inside_window ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_backward_before_forward_err ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_err_pool_size_invalid ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_err_wrong_ndim ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_err_stride_zero ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_forward_negative_values ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_forward_values_batch ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_forward_values_pool2_stride2 ... ok
[INFO] [stdout] test pooling_max::max_pool_2d_same_padding_3x3 ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_forward_values_pool3_stride1 ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_forward_wrong_ndim_err ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_output_shape_string ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_output_shape_unknown_before_forward ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_all_negative_infinity_window_keeps_gradient_inside_window ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_backward_before_forward_err ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_err_pool_size_invalid ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_err_stride_zero ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_err_wrong_ndim ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_forward_non_square_spatial ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_forward_values_4x4_pool2x2 ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_forward_values_stride1 ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_forward_values_two_channels ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_err_zero_spatial_extent ... ok
[INFO] [stdout] test pooling_max::max_pooling_1d_forward_values_two_channels ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_forward_wrong_ndim_err ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_parallel_forward_distinct_maxima ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_output_shape_string ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_all_negative_infinity_window_keeps_gradient_inside_window ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_backward_before_forward_err ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_err_pool_size_invalid ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_err_stride_zero ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_err_wrong_ndim ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_err_zero_spatial_extent ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_forward_values_4x4x4_pool2x2x2 ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_forward_wrong_ndim_err ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_forward_values_2x2x2_full_window ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_output_shape_string ... ok
[INFO] [stdout] test pooling_max::max_pooling_3d_predict_equals_forward ... ok
[INFO] [stdout] test pooling_max::max_pooling_2d_parallel_backward_routes_per_window ... ok
[INFO] [stdout] test recurrent::a_built_layer_refuses_an_input_that_is_not_rank_3 ... ok
[INFO] [stdout] test recurrent::backward_rejects_a_rank_3_gradient_without_return_sequences ... ok
[INFO] [stdout] test recurrent::debug_prints_the_layer_name ... ok
[INFO] [stdout] test recurrent::go_backwards_keeps_the_output_shape ... ok
[INFO] [stdout] test recurrent::gru_backward_before_forward_errors ... ok
[INFO] [stdout] test recurrent::gru_build_rejects_zero_input_dim ... ok
[INFO] [stdout] test recurrent::gru_forward_1step_1unit_tanh ... ok
[INFO] [stdout] test recurrent::gru_accepts_activation_enum_tanh ... ok
[INFO] [stdout] test recurrent::gru_forward_2step_hidden_state_blending ... ok
[INFO] [stdout] test recurrent::gru_forward_is_deterministic ... ok
[INFO] [stdout] test recurrent::gru_forward_rejects_2d_input ... ok
[INFO] [stdout] test recurrent::gru_forward_rejects_4d_input ... ok
[INFO] [stdout] test recurrent::gru_fused_kernel_first_block_is_the_update_gate ... ok
[INFO] [stdout] test recurrent::gru_new_rejects_zero_dimension ... ok
[INFO] [stdout] test recurrent::gru_output_shape_batch2_units4 ... ok
[INFO] [stdout] test recurrent::gru_param_count_formula ... ok
[INFO] [stdout] test recurrent::gru_predict_equals_forward ... ok
[INFO] [stdout] test recurrent::gru_return_sequences_go_backwards_matches_keras ... ok
[INFO] [stdout] test recurrent::gru_return_sequences_matches_keras ... ok
[INFO] [stdout] test recurrent::gru_return_sequences_output_is_rank_3 ... ok
[INFO] [stdout] test recurrent::gru_set_weights_wrong_shape_errors ... ok
[INFO] [stdout] test recurrent::gru_update_gate_one_keeps_previous_hidden ... ok
[INFO] [stdout] test recurrent::gru_update_gate_zero_takes_the_candidate ... ok
[INFO] [stdout] test recurrent::lstm_accepts_activation_enum_tanh ... ok
[INFO] [stdout] test recurrent::lstm_backward_before_forward_errors ... ok
[INFO] [stdout] test recurrent::lstm_build_rejects_zero_input_dim ... ok
[INFO] [stdout] test recurrent::lstm_forget_bias_is_one_not_zero ... ok
[INFO] [stdout] test recurrent::lstm_forward_1step_1unit_tanh ... ok
[INFO] [stdout] test recurrent::lstm_forward_2step_cell_state_threads_through ... ok
[INFO] [stdout] test recurrent::lstm_forward_rejects_2d_input ... ok
[INFO] [stdout] test recurrent::go_backwards_equals_the_forward_layer_on_reversed_input ... ok
[INFO] [stdout] test recurrent::lstm_new_rejects_zero_dimension ... ok
[INFO] [stdout] test recurrent::lstm_output_shape_batch2_units3 ... ok
[INFO] [stdout] test recurrent::lstm_param_count_formula ... ok
[INFO] [stdout] test recurrent::lstm_predict_equals_forward ... ok
[INFO] [stdout] test recurrent::lstm_return_sequences_go_backwards_matches_keras ... ok
[INFO] [stdout] test recurrent::lstm_return_sequences_matches_keras ... ok
[INFO] [stdout] test recurrent::lstm_return_sequences_output_is_rank_3 ... ok
[INFO] [stdout] test recurrent::lstm_set_weights_wrong_shape_errors ... ok
[INFO] [stdout] test recurrent::output_shape_shows_the_time_axis_when_return_sequences ... ok
[INFO] [stdout] test recurrent::return_sequences_backward_rejects_a_rank_2_gradient ... ok
[INFO] [stdout] test recurrent::return_sequences_backward_rejects_a_wrong_timestep_count ... ok
[INFO] [stdout] test permute_repeat::repeat_vector_bridges_two_recurrent_layers ... ok
[INFO] [stdout] test recurrent::set_weights_normalizes_a_column_major_array ... ok
[INFO] [stdout] test recurrent::simple_rnn_accepts_activation_enum_tanh ... ok
[INFO] [stdout] test recurrent::simple_rnn_backward_before_forward_errors ... ok
[INFO] [stdout] test recurrent::simple_rnn_backward_units_one_multi_feature_reshapes ... ok
[INFO] [stdout] test recurrent::simple_rnn_build_rejects_zero_input_dim ... ok
[INFO] [stdout] test recurrent::simple_rnn_forward_1step_1unit_tanh ... ok
[INFO] [stdout] test recurrent::simple_rnn_forward_2step_tanh_state_threading ... ok
[INFO] [stdout] test recurrent::simple_rnn_forward_is_deterministic ... ok
[INFO] [stdout] test recurrent::simple_rnn_forward_rejects_1d_input ... ok
[INFO] [stdout] test recurrent::simple_rnn_forward_rejects_2d_input ... ok
[INFO] [stdout] test recurrent::simple_rnn_forward_relu_positive ... ok
[INFO] [stdout] test recurrent::simple_rnn_go_backwards_emits_states_in_processing_order ... ok
[INFO] [stdout] test recurrent::return_sequences_last_slot_equals_the_final_state ... ok
[INFO] [stdout] test recurrent::simple_rnn_new_rejects_zero_dimension ... ok
[INFO] [stdout] test recurrent::simple_rnn_output_shape_batch3_units2 ... ok
[INFO] [stdout] test recurrent::simple_rnn_param_count_formula ... ok
[INFO] [stdout] test recurrent::simple_rnn_predict_equals_forward ... ok
[INFO] [stdout] test recurrent::simple_rnn_relu_negative_preactivation_is_zero ... ok
[INFO] [stdout] test recurrent::simple_rnn_return_sequences_go_backwards_matches_keras ... ok
[INFO] [stdout] test recurrent::simple_rnn_return_sequences_matches_keras ... ok
[INFO] [stdout] test recurrent::simple_rnn_return_sequences_output_is_rank_3 ... ok
[INFO] [stdout] test recurrent::simple_rnn_set_weights_wrong_kernel_shape_errors ... ok
[INFO] [stdout] test reproducibility::cleared_global_seed_unseeded_layers_differ ... ok
[INFO] [stdout] test reproducibility::different_seed_differs ... ok
[INFO] [stdout] test reproducibility::global_seed_advances_between_unseeded_draws ... ok
[INFO] [stdout] test reproducibility::global_seed_reproducible ... ok
[INFO] [stdout] test reproducibility::local_overrides_global ... ok
[INFO] [stdout] test reproducibility::same_seed_same_init ... ok
[INFO] [stdout] test reproducibility::training_reproducible ... ok
[INFO] [stdout] test rescaling::rescaling_applies_a_zero_and_a_negative_scale_unchanged ... ok
[INFO] [stdout] test rescaling::rescaling_backward_matches_keras_and_ignores_the_offset ... ok
[INFO] [stdout] test rescaling::rescaling_backward_runs_before_any_forward ... ok
[INFO] [stdout] test rescaling::rescaling_emits_c_order_from_a_permuted_input ... ok
[INFO] [stdout] test rescaling::rescaling_forward_matches_keras ... ok
[INFO] [stdout] test rescaling::rescaling_holds_at_every_rank ... ok
[INFO] [stdout] test rescaling::rescaling_holds_no_trainable_parameters ... ok
[INFO] [stdout] test rescaling::rescaling_input_gradient_matches_finite_difference ... ok
[INFO] [stdout] test rescaling::rescaling_offset_defaults_to_zero ... ok
[INFO] [stdout] test rescaling::rescaling_predict_equals_forward_bit_for_bit ... ok
[INFO] [stdout] test rescaling::rescaling_rejects_a_0d_and_an_empty_input ... ok
[INFO] [stdout] test rescaling::rescaling_trains_inside_a_sequential_model ... ok
[INFO] [stdout] test reshape::reshape_backward_before_forward_returns_err ... ok
[INFO] [stdout] test recurrent::gru_gradients_match_finite_difference_for_every_flag_combination ... ok
[INFO] [stdout] test reshape::reshape_backward_wrong_grad_shape_returns_err ... ok
[INFO] [stdout] test reshape::reshape_forward_adds_unit_axes ... ok
[INFO] [stdout] test reshape::reshape_forward_element_count_mismatch_returns_shape_mismatch ... ok
[INFO] [stdout] test reshape::reshape_forward_empty_target_gives_rank_1_output ... ok
[INFO] [stdout] test reshape::reshape_backward_restores_input_shape_and_values ... ok
[INFO] [stdout] test reshape::reshape_forward_infers_leading_axis ... ok
[INFO] [stdout] test reshape::reshape_forward_merges_rank_3_into_rank_2 ... ok
[INFO] [stdout] test reshape::reshape_forward_infers_trailing_axis ... ok
[INFO] [stdout] test reshape::reshape_forward_rejects_empty_input ... ok
[INFO] [stdout] test reshape::reshape_forward_rank_1_input_gains_trailing_axis ... ok
[INFO] [stdout] test reshape::reshape_forward_rejects_rank_0_input ... ok
[INFO] [stdout] test reshape::reshape_forward_single_inferred_axis_folds_all_axes ... ok
[INFO] [stdout] test reshape::reshape_forward_splits_rank_2_into_rank_3 ... ok
[INFO] [stdout] test reshape::reshape_layer_type_is_reshape ... ok
[INFO] [stdout] test reshape::reshape_merge_keeps_c_order_values ... ok
[INFO] [stdout] test reshape::reshape_new_rejects_2_inferred_axes ... ok
[INFO] [stdout] test embedding::embedding_parallel_gather_matches_the_serial_gather ... ok
[INFO] [stdout] test reshape::reshape_new_rejects_extent_below_minus_1 ... ok
[INFO] [stdout] test reshape::reshape_new_rejects_zero_extent ... ok
[INFO] [stdout] test reshape::reshape_one_instance_serves_every_batch_size ... ok
[INFO] [stdout] test reshape::reshape_output_shape_before_forward_with_inferred_axis ... ok
[INFO] [stdout] test reshape::reshape_output_shape_before_forward_without_inferred_axis ... ok
[INFO] [stdout] test reshape::reshape_param_count_is_no_trainable ... ok
[INFO] [stdout] test reshape::reshape_predict_equals_forward ... ok
[INFO] [stdout] test reshape::reshape_predict_works_without_forward ... ok
[INFO] [stdout] test reshape::reshape_single_inferred_axis_equals_flatten ... ok
[INFO] [stdout] test reshape::reshape_split_keeps_c_order_values ... ok
[INFO] [stdout] test reshape::reshape_weights_is_empty ... ok
[INFO] [stdout] test reshape::reshape_inside_sequential_model_trains ... ok
[INFO] [stdout] test reshape::reshape_output_shape_after_forward ... ok
[INFO] [stdout] test reverse::a_checkpoint_refuses_a_different_reverse_axis ... ok
[INFO] [stdout] test reverse::reverse_emits_the_standard_memory_order ... ok
[INFO] [stdout] test reverse::reverse_flips_the_named_axis_alone ... ok
[INFO] [stdout] test reverse::a_reversed_backward_branch_starts_at_the_first_input_timestep ... ok
[INFO] [stdout] test reverse::reverse_refuses_an_axis_the_rank_does_not_hold ... ok
[INFO] [stdout] test reverse::reverse_refuses_the_batch_axis ... ok
[INFO] [stdout] test reverse::reverse_resolves_a_negative_axis_against_the_rank ... ok
[INFO] [stdout] test sequential::a_builder_that_holds_no_layer_is_refused ... ok
[INFO] [stdout] test sequential::a_builder_that_holds_no_layer_is_refused_for_every_shape ... ok
[INFO] [stdout] test sequential::test_batch_losses_and_epoch_mean_match_keras ... ok
[INFO] [stdout] test reverse::reverse_refuses_a_rank_2_input ... ok
[INFO] [stdout] test reverse::a_bidirectional_graph_trains_both_directions ... ok
[INFO] [stdout] test recurrent::simple_rnn_gradients_match_finite_difference_for_every_flag_combination ... ok
[INFO] [stdout] test sequential::test_evaluate_matches_predict_then_compute_loss ... ok
[INFO] [stdout] test sequential::test_evaluate_on_uncompiled_model_reports_the_missing_loss ... ok
[INFO] [stdout] test sequential::test_evaluate_runs_in_inference_mode ... ok
[INFO] [stdout] test sequential::test_fit_batch_size_mismatch_returns_dimension_mismatch ... ok
[INFO] [stdout] test sequential::test_fit_before_compile_returns_not_compiled ... ok
[INFO] [stdout] test sequential::test_fit_empty_x_returns_empty_input_error ... ok
[INFO] [stdout] test sequential::test_fit_history_has_one_loss_per_epoch ... ok
[INFO] [stdout] test sequential::test_fit_history_records_the_pre_update_loss ... ok
[INFO] [stdout] test sequential::test_fit_with_batches_batch_size_exceeds_samples_returns_invalid_parameter ... ok
[INFO] [stdout] test sequential::test_convergence_linear_regression_y_eq_2x_plus_1 ... ok
[INFO] [stdout] test sequential::test_fit_with_batches_weights_batches_by_sample_count ... ok
[INFO] [stdout] test sequential::test_fit_with_batches_zero_batch_size_returns_invalid_parameter ... ok
[INFO] [stdout] test sequential::test_fit_zero_epochs_unchanged_weights ... ok
[INFO] [stdout] test sequential::test_fit_zero_epochs_yields_empty_history ... ok
[INFO] [stdout] test sequential::test_learning_rate_reads_back_through_the_model ... ok
[INFO] [stdout] test sequential::test_predict_2d_linear_transform ... ok
[INFO] [stdout] test sequential::test_predict_dense_softmax_equal_input ... ok
[INFO] [stdout] test sequential::test_predict_dense_softmax_known_probs ... ok
[INFO] [stdout] test sequential::test_predict_deterministic_after_training ... ok
[INFO] [stdout] test sequential::test_predict_empty_x_returns_empty_input_error ... ok
[INFO] [stdout] test sequential::test_predict_identity_weights_linear_dense ... ok
[INFO] [stdout] test sequential::test_predict_is_deterministic ... ok
[INFO] [stdout] test sequential::test_predict_scalar_affine ... ok
[INFO] [stdout] test sequential::test_predict_two_layer_stack ... ok
[INFO] [stdout] test sequential::test_rank_zero_inputs_are_rejected ... ok
[INFO] [stdout] test sequential::test_summary_does_not_panic ... ok
[INFO] [stdout] test sequential::test_train_batch_on_uncompiled_model_is_an_error ... ok
[INFO] [stdout] test sequential::test_train_batch_reproduces_fit ... ok
[INFO] [stdout] test sequential::test_train_batch_returns_the_pre_update_loss ... ok
[INFO] [stdout] test sequential::the_build_is_what_allocates_every_array_of_the_model ... ok
[INFO] [stdout] test sequential::the_build_names_the_position_of_the_layer_that_refuses ... ok
[INFO] [stdout] test sequential::the_build_refuses_a_stack_whose_shapes_do_not_agree_and_names_the_layer ... ok
[INFO] [stdout] test sequential::the_model_reports_both_ends_of_the_shape_it_was_built_for ... ok
[INFO] [stdout] test serialize::a_checkpoint_moves_between_2_batch_sizes ... ok
[INFO] [stdout] test serialize::a_checkpoint_of_another_build_shape_is_refused ... ok
[INFO] [stdout] test serialize::a_refused_load_writes_no_array_of_the_layers_before_the_mismatch ... ok
[INFO] [stdout] test serialize::a_refused_load_writes_no_earlier_array_of_the_layer_that_disagrees ... ok
[INFO] [stdout] test serialize::a_saved_model_reloads_through_the_build_path ... ok
[INFO] [stdout] test serialize::batch_normalization_predict_is_deterministic_after_round_trip ... ok
[INFO] [stdout] test serialize::batch_normalization_trained_round_trip_preserves_running_stats ... ok
[INFO] [stdout] test serialize::conv1d_round_trip ... ok
[INFO] [stdout] test serialize::conv1d_transpose_round_trip ... ok
[INFO] [stdout] test serialize::conv2d_round_trip ... ok
[INFO] [stdout] test serialize::conv2d_transpose_round_trip ... ok
[INFO] [stdout] test serialize::conv3d_round_trip ... ok
[INFO] [stdout] test serialize::conv3d_transpose_round_trip ... ok
[INFO] [stdout] test serialize::dense_identity_weights_value_check_and_round_trip ... ok
[INFO] [stdout] test serialize::dense_scaled_identity_value_check_and_round_trip ... ok
[INFO] [stdout] test serialize::dense_two_layer_trained_round_trip ... ok
[INFO] [stdout] test serialize::dense_zero_weights_bias_only_value_check_and_round_trip ... ok
[INFO] [stdout] test sequential::test_fit_with_batches_full_batch_equivalent ... ok
[INFO] [stdout] test serialize::depthwise_conv1d_round_trip ... ok
[INFO] [stdout] test serialize::depthwise_conv2d_round_trip ... ok
[INFO] [stdout] test serialize::embedding_trained_round_trip_preserves_the_lookup_table ... ok
[INFO] [stdout] test serialize::gru_round_trip ... ok
[INFO] [stdout] test serialize::group_normalization_round_trip ... ok
[INFO] [stdout] test serialize::instance_normalization_round_trip ... ok
[INFO] [stdout] test serialize::layer_normalization_round_trip ... ok
[INFO] [stdout] test serialize::load_from_invalid_data_gives_serialization_error ... ok
[INFO] [stdout] test serialize::load_layer_count_mismatch_gives_structure_error ... ok
[INFO] [stdout] test serialize::load_layer_type_mismatch_gives_structure_error ... ok
[INFO] [stdout] test serialize::load_from_nonexistent_file_gives_io_error ... ok
[INFO] [stdout] test serialize::load_older_format_version_names_the_version_it_found_and_the_one_it_wants ... ok
[INFO] [stdout] test serialize::load_refuses_a_layer_type_that_no_longer_matches ... ok
[INFO] [stdout] test serialize::load_weight_shape_mismatch_gives_structure_error ... ok
[INFO] [stdout] test serialize::load_wrong_format_version_gives_unsupported_format_error ... ok
[INFO] [stdout] test serialize::load_wrong_magic_gives_unsupported_format_error ... ok
[INFO] [stdout] test serialize::lstm_round_trip ... ok
[INFO] [stdout] test serialize::mixed_model_trained_round_trip ... ok
[INFO] [stdout] test serialize::load_partial_reports_applied_missing_and_unused ... ok
[INFO] [stdout] test serialize::mixed_model_with_dropout_round_trip ... ok
[INFO] [stdout] test serialize::p_relu_shared_axes_round_trip_keeps_the_slope_rank ... ok
[INFO] [stdout] test serialize::repeated_layer_type_round_trips_by_position ... ok
[INFO] [stdout] test serialize::separable_conv1d_round_trip ... ok
[INFO] [stdout] test serialize::separable_conv2d_round_trip ... ok
[INFO] [stdout] test serialize::simple_rnn_round_trip ... ok
[INFO] [stdout] test shape::a_bad_stack_names_the_layer_that_refuses ... ok
[INFO] [stdout] test serialize::p_relu_trained_round_trip_preserves_the_slopes ... ok
[INFO] [stdout] test shape::a_build_changes_no_answer ... ok
[INFO] [stdout] test shape::a_built_layer_refuses_the_extents_its_summary_does_not_name ... ok
[INFO] [stdout] test shape::a_convolution_refuses_the_wrong_rank ... ok
[INFO] [stdout] test shape::a_cropping_layer_refuses_a_border_that_removes_everything ... ok
[INFO] [stdout] test shape::a_data_driven_layer_answers_with_no_data ... ok
[INFO] [stdout] test shape::a_dense_layer_refuses_the_wrong_feature_count ... ok
[INFO] [stdout] test shape::a_forward_pass_changes_no_answer ... ok
[INFO] [stdout] test shape::a_global_pooling_layer_refuses_a_free_spatial_axis ... ok
[INFO] [stdout] test shape::a_layer_answers_for_a_shape_it_was_not_built_for ... ok
[INFO] [stdout] test shape::a_model_build_refuses_an_oversized_valid_kernel ... ok
[INFO] [stdout] test shape::a_model_refuses_an_input_shape_with_an_empty_feature_axis ... ok
[INFO] [stdout] test shape::a_pooling_layer_refuses_a_window_that_does_not_fit ... ok
[INFO] [stdout] test shape::a_recurrent_layer_keeps_a_free_time_axis ... ok
[INFO] [stdout] test shape::every_layer_type_answers_before_its_build ... ok
[INFO] [stdout] test shape::a_whole_stack_answers_before_any_tensor_exists ... ok
[INFO] [stdout] test shape::every_valid_convolution_refuses_a_kernel_larger_than_the_input ... ok
[INFO] [stdout] test shape::every_valid_convolution_refuses_the_build_as_well ... ok
[INFO] [stdout] test shape::output_shape_reads_the_shape_the_layer_holds ... ok
[INFO] [stdout] test shape::p_relu_refuses_an_axis_it_holds_slopes_for ... ok
[INFO] [stdout] test shape::repeat_vector_refuses_a_rank_it_cannot_repeat ... ok
[INFO] [stdout] test shape::reshape_refuses_an_element_count_it_cannot_match ... ok
[INFO] [stdout] test shape::same_and_causal_padding_accept_an_oversized_kernel ... ok
[INFO] [stdout] test shape::the_batch_axis_passes_through_as_it_arrives ... ok
[INFO] [stdout] test shape::the_pooling_family_answers_before_any_forward_pass ... ok
[INFO] [stdout] test shape::the_valid_rule_reads_the_dilated_extent ... ok
[INFO] [stdout] test upsampling::up_sampling_1d_backward_sums_each_repeated_run ... ok
[INFO] [stdout] test shape::the_transposed_convolutions_accept_a_single_position ... ok
[INFO] [stdout] test upsampling::up_sampling_1d_repeats_each_step_in_place ... ok
[INFO] [stdout] test upsampling::up_sampling_1d_size_one_returns_the_input_values ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_accepts_an_input_that_is_not_in_c_order ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_bilinear_backward_matches_reference ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_interpolated_modes_match_reference ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_backward_is_the_transpose_of_forward ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_keeps_a_constant_image_constant ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_nearest_expands_each_pixel_into_a_block ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_pair_names_1_factor_per_axis ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_survives_a_save_and_load_round_trip ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_only_the_wide_kernels_overshoot ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_undoes_the_shape_change_of_pooling ... ok
[INFO] [stdout] test upsampling::up_sampling_3d_grows_each_spatial_axis_by_its_own_factor ... ok
[INFO] [stdout] test upsampling::up_sampling_3d_integer_grows_every_axis_equally ... ok
[INFO] [stdout] test upsampling::up_sampling_backward_before_forward_is_an_error ... ok
[INFO] [stdout] test upsampling::up_sampling_backward_checks_the_gradient_shape ... ok
[INFO] [stdout] test upsampling::up_sampling_layers_emit_gradients_in_c_order ... ok
[INFO] [stdout] test upsampling::up_sampling_layers_hold_no_parameter ... ok
[INFO] [stdout] test upsampling::up_sampling_output_shape_reports_the_enlarged_shape ... ok
[INFO] [stdout] test upsampling::up_sampling_rejects_a_factor_of_zero ... ok
[INFO] [stdout] test upsampling::up_sampling_rejects_a_factor_that_overflows_the_output ... ok
[INFO] [stdout] test upsampling::up_sampling_rejects_an_empty_input ... ok
[INFO] [stdout] test upsampling::up_sampling_rejects_the_wrong_rank ... ok
[INFO] [stdout] test upsampling::up_sampling_2d_trains_inside_a_decoder ... ok
[INFO] [stdout] test sequential::test_convergence_linear_regression_with_batches ... ok
[INFO] [stdout] test recurrent::lstm_gradients_match_finite_difference_for_every_flag_combination ... ok
[INFO] [stdout] test sequential::test_convergence_2class_softmax_adam ... ok
[INFO] [stdout] test upsampling::up_sampling_repeat_parallel_path_matches_the_serial_path ... ok
[INFO] [stdout] test upsampling::up_sampling_weighted_parallel_path_matches_the_serial_path ... ok
[INFO] [stdout] test norm_unit::unit_normalization_parallel_path_matches_the_serial_path ... ok
[INFO] [stdout] test p_relu::p_relu_parallel_path_matches_the_serial_path ... ok
[INFO] [stdout] test norm_batch_layer::bn_gate_move_does_not_change_any_bit ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1333 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 10.09s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/utils/main.rs (/opt/rustwide/target/debug/build/rustyml/12f74b886a6a41d3/out/utils-12f74b886a6a41d3)
[INFO] [stdout] 
[INFO] [stdout] running 160 tests
[INFO] [stdout] test label_encoding::to_categorical_empty_labels ... ok
[INFO] [stdout] test label_encoding::to_categorical_exact_num_classes_ok ... ok
[INFO] [stdout] test label_encoding::to_categorical_negative_label_is_invalid_input ... ok
[INFO] [stdout] test label_encoding::to_categorical_num_classes_too_small_is_invalid_parameter ... ok
[INFO] [stdout] test label_encoding::round_trip_non_monotone_labels ... ok
[INFO] [stdout] test label_encoding::to_categorical_basic_full_matrix ... ok
[INFO] [stdout] test label_encoding::to_categorical_single_class ... ok
[INFO] [stdout] test label_encoding::to_categorical_explicit_num_classes_wider_with_zero_padding ... ok
[INFO] [stdout] test label_encoding::round_trip_to_categorical_then_to_sparse ... ok
[INFO] [stdout] test label_encoding::to_sparse_categorical_non_finite_is_non_finite ... ok
[INFO] [stdout] test label_encoding::to_sparse_categorical_soft_probabilities ... ok
[INFO] [stdout] test label_encoding::to_sparse_categorical_strict_one_hot ... ok
[INFO] [stdout] test label_encoding::to_sparse_categorical_tie_breaks_to_first_index ... ok
[INFO] [stdout] test normalize::test_1d_lane_axis_returns_invalid_input ... ok
[INFO] [stdout] test normalize::test_column_zero_column_preserved ... ok
[INFO] [stdout] test normalize::test_empty_array_returns_empty_input ... ok
[INFO] [stdout] test normalize::test_l1_column_2x2 ... ok
[INFO] [stdout] test normalize::test_l1_column_each_col_unit_l1_norm ... ok
[INFO] [stdout] test normalize::test_l1_global_2x2 ... ok
[INFO] [stdout] test normalize::test_l1_row_each_row_unit_l1_norm ... ok
[INFO] [stdout] test normalize::test_l1_row_single_row_3_4 ... ok
[INFO] [stdout] test normalize::test_l1_row_two_rows_three_cols ... ok
[INFO] [stdout] test normalize::test_l1_row_zero_row_preserved ... ok
[INFO] [stdout] test normalize::test_l2_column_2x2 ... ok
[INFO] [stdout] test normalize::test_l2_column_3d_normalizes_second_to_last_axis ... ok
[INFO] [stdout] test label_encoding::to_categorical_with_mapping_empty_slice_is_zero_by_zero ... ok
[INFO] [stdout] test normalize::test_l2_column_each_col_unit_norm ... ok
[INFO] [stdout] test normalize::test_l2_global_2x2 ... ok
[INFO] [stdout] test normalize::test_l2_global_1d ... ok
[INFO] [stdout] test normalize::test_l2_global_all_zeros_preserved ... ok
[INFO] [stdout] test normalize::test_l2_global_ixdyn_1d ... ok
[INFO] [stdout] test label_encoding::round_trip_with_mapping ... ok
[INFO] [stdout] test label_encoding::to_categorical_with_mapping_explicit_wider_num_classes ... ok
[INFO] [stdout] test label_encoding::to_categorical_with_mapping_string_labels ... ok
[INFO] [stdout] test label_encoding::to_categorical_with_mapping_non_consecutive_integers ... ok
[INFO] [stdout] test normalize::test_l2_row_negative_values_keep_sign ... ok
[INFO] [stdout] test normalize::test_l2_row_single_row_3_4 ... ok
[INFO] [stdout] test normalize::test_l2_global_zero_array_preserved ... ok
[INFO] [stdout] test normalize::test_l2_row_3d_normalizes_last_axis ... ok
[INFO] [stdout] test normalize::test_l2_row_each_row_has_unit_norm ... ok
[INFO] [stdout] test normalize::test_l2_row_two_rows ... ok
[INFO] [stdout] test normalize::test_lp1_same_as_l1 ... ok
[INFO] [stdout] test normalize::test_l2_row_zero_row_preserved ... ok
[INFO] [stdout] test normalize::test_lp3_row_2_4 ... ok
[INFO] [stdout] test label_encoding::to_categorical_with_mapping_zero_num_classes_non_empty_is_invalid_parameter ... ok
[INFO] [stdout] test normalize::test_l2_global_result_has_unit_norm ... ok
[INFO] [stdout] test normalize::test_lp_half_row_1_4 ... ok
[INFO] [stdout] test normalize::test_lp_invalid_p_returns_invalid_parameter ... ok
[INFO] [stdout] test label_encoding::to_categorical_with_mapping_insufficient_num_classes_is_invalid_parameter ... ok
[INFO] [stdout] test normalize::test_max_row_negative_values ... ok
[INFO] [stdout] test normalize::test_max_global_2x2 ... ok
[INFO] [stdout] test normalize::test_max_column_each_col_max_is_one ... ok
[INFO] [stdout] test normalize::test_lp2_same_as_l2 ... ok
[INFO] [stdout] test normalize::test_lp3_global_2x2 ... ok
[INFO] [stdout] test normalize::test_lp3_column_2x2 ... ok
[INFO] [stdout] test normalize::test_max_row_single_row_3_4 ... ok
[INFO] [stdout] test normalize::test_normalize_does_not_mutate_original ... ok
[INFO] [stdout] test normalize::test_max_column_2x2 ... ok
[INFO] [stdout] test normalize::test_normalize_global_does_not_mutate_original ... ok
[INFO] [stdout] test normalize::test_max_row_each_row_max_is_one ... ok
[INFO] [stdout] test normalize::test_max_row_zero_row_preserved ... ok
[INFO] [stdout] test normalize::test_non_finite_returns_non_finite ... ok
[INFO] [stdout] test scaler::test_empty_input ... ok
[INFO] [stdout] test scaler::test_constant_feature ... ok
[INFO] [stdout] test scaler::test_fit_learns_population_statistics ... ok
[INFO] [stdout] test scaler::test_max_abs_all_zero_feature ... ok
[INFO] [stdout] test scaler::test_fit_replaces_previous_statistics ... ok
[INFO] [stdout] test scaler::test_max_abs_divides_by_magnitude ... ok
[INFO] [stdout] test scaler::test_max_abs_bounds_training_values ... ok
[INFO] [stdout] test scaler::test_inverse_transform_round_trip ... ok
[INFO] [stdout] test scaler::test_max_abs_partial_fit ... ok
[INFO] [stdout] test scaler::test_min_max_clip ... ok
[INFO] [stdout] test scaler::test_min_max_constant_feature ... ok
[INFO] [stdout] test scaler::test_max_abs_inverse_transform ... ok
[INFO] [stdout] test scaler::test_max_abs_preserves_zeros_where_min_max_does_not ... ok
[INFO] [stdout] test scaler::test_max_abs_errors ... ok
[INFO] [stdout] test scaler::test_fit_transform_matches_stateless_standardize ... ok
[INFO] [stdout] test scaler::test_min_max_custom_feature_range ... ok
[INFO] [stdout] test scaler::test_min_max_errors ... ok
[INFO] [stdout] test scaler::test_max_abs_save_and_load ... ok
[INFO] [stdout] test scaler::test_min_max_default_range ... ok
[INFO] [stdout] test scaler::test_min_max_invalid_feature_range ... ok
[INFO] [stdout] test scaler::test_min_max_partial_fit ... ok
[INFO] [stdout] test scaler::test_normalizer_errors ... ok
[INFO] [stdout] test scaler::test_normalizer_orders ... ok
[INFO] [stdout] test scaler::test_normalizer_matches_free_function ... ok
[INFO] [stdout] test scaler::test_min_max_inverse_transform ... ok
[INFO] [stdout] test scaler::test_partial_fit_feature_mismatch ... ok
[INFO] [stdout] test scaler::test_min_max_save_and_load ... ok
[INFO] [stdout] test scaler::test_partial_fit_matches_single_fit ... ok
[INFO] [stdout] test scaler::test_robust_custom_quantile_range ... ok
[INFO] [stdout] test scaler::test_normalizer_save_and_load ... ok
[INFO] [stdout] test scaler::test_normalizer_zero_row ... ok
[INFO] [stdout] test scaler::test_non_finite_input ... ok
[INFO] [stdout] test scaler::test_robust_constant_feature ... ok
[INFO] [stdout] test scaler::test_min_max_uses_frozen_training_extrema ... ok
[INFO] [stdout] test scaler::test_robust_invalid_quantile_range ... ok
[INFO] [stdout] test scaler::test_partial_fit_on_unfitted_scaler ... ok
[INFO] [stdout] test scaler::test_robust_inverse_transform ... ok
[INFO] [stdout] test scaler::test_robust_through_shared_traits ... ok
[INFO] [stdout] test scaler::test_normalizer_is_batch_independent ... ok
[INFO] [stdout] test scaler::test_robust_matches_scikit_learn_reference ... ok
[INFO] [stdout] test scaler::test_save_and_load_round_trip ... ok
[INFO] [stdout] test scaler::test_robust_save_and_load ... ok
[INFO] [stdout] test scaler::test_scaler_family_through_shared_traits ... ok
[INFO] [stdout] test scaler::test_scaler_through_shared_traits ... ok
[INFO] [stdout] test scaler::test_single_sample_fit ... ok
[INFO] [stdout] test scaler::test_transform_before_fit ... ok
[INFO] [stdout] test scaler::test_robust_quantile_interpolation ... ok
[INFO] [stdout] test scaler::test_unfitted_scaler_has_no_statistics ... ok
[INFO] [stdout] test scaler::test_with_mean_and_with_std_flags ... ok
[INFO] [stdout] test scaler::test_robust_resists_outliers ... ok
[INFO] [stdout] test standardize::test_column_axis_closed_form ... ok
[INFO] [stdout] test standardize::test_column_axis_invariants ... ok
[INFO] [stdout] test standardize::test_error_axis_on_1d_array ... ok
[INFO] [stdout] test standardize::test_error_empty_column ... ok
[INFO] [stdout] test scaler::test_transform_does_not_mutate_input ... ok
[INFO] [stdout] test scaler::test_transform_feature_mismatch ... ok
[INFO] [stdout] test scaler::test_transform_single_sample ... ok
[INFO] [stdout] test standardize::test_error_empty_global ... ok
[INFO] [stdout] test standardize::test_error_non_finite_input ... ok
[INFO] [stdout] test standardize::test_global_1d_five_elements ... ok
[INFO] [stdout] test scaler::test_transform_uses_frozen_training_statistics ... ok
[INFO] [stdout] test standardize::test_column_axis_zero_variance_column ... ok
[INFO] [stdout] test standardize::test_global_closed_form_1d ... ok
[INFO] [stdout] test standardize::test_global_3d_array ... ok
[INFO] [stdout] test standardize::test_global_zero_variance_all_zeros ... ok
[INFO] [stdout] test standardize::test_original_array_not_mutated ... ok
[INFO] [stdout] test standardize::test_row_axis_closed_form ... ok
[INFO] [stdout] test standardize::test_row_axis_invariants ... ok
[INFO] [stdout] test standardize::test_original_array_not_mutated_column ... ok
[INFO] [stdout] test standardize::test_global_closed_form_2d ... ok
[INFO] [stdout] test standardize::test_global_single_element ... ok
[INFO] [stdout] test standardize::test_row_axis_zero_variance_row ... ok
[INFO] [stdout] test standardize::test_healthy_feature_exact_zscores ... ok
[INFO] [stdout] test train_test_split::test_error_single_sample ... ok
[INFO] [stdout] test standardize::test_small_but_real_variance_is_normalized_like_sklearn ... ok
[INFO] [stdout] test train_test_split::test_error_empty_input ... ok
[INFO] [stdout] test train_test_split::test_error_dimension_mismatch ... ok
[INFO] [stdout] test train_test_split::test_error_test_size_out_of_range ... ok
[INFO] [stdout] test train_test_split::test_large_test_size_keeps_at_least_one_train ... ok
[INFO] [stdout] test train_test_split::test_explicit_test_size_shapes ... ok
[INFO] [stdout] test train_test_split::test_none_test_size_defaults_to_0_3 ... ok
[INFO] [stdout] test scaler::test_robust_errors ... ok
[INFO] [stdout] test scaler::test_robust_flags ... ok
[INFO] [stdout] test train_test_split::test_row_count_preserved ... ok
[INFO] [stdout] test train_test_split::test_output_rows_are_subsets_of_input ... ok
[INFO] [stdout] test train_test_split::test_none_seed_produces_valid_split ... ok
[INFO] [stdout] test train_test_split::test_small_test_size_keeps_at_least_one_test ... ok
[INFO] [stdout] test train_test_split::test_stratified_error_singleton_class ... ok
[INFO] [stdout] test train_test_split::test_stratified_keeps_every_class_on_both_sides ... ok
[INFO] [stdout] test train_test_split::test_different_seeds_different_splits ... ok
[INFO] [stdout] test train_test_split::test_same_seed_identical_split ... ok
[INFO] [stdout] test train_test_split::test_stratified_x_y_alignment ... ok
[INFO] [stdout] test train_test_split::test_stratified_preserves_class_proportions ... ok
[INFO] [stdout] test train_test_split::test_default_test_size_shapes ... ok
[INFO] [stdout] test train_test_split::test_two_samples_always_one_test ... ok
[INFO] [stdout] test train_test_split::test_stratified_same_seed_identical_split ... ok
[INFO] [stdout] test train_test_split::test_str_labels ... ok
[INFO] [stdout] test train_test_split::test_x_y_alignment ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 160 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.18s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests rustyml
[INFO] [stdout] 
[INFO] [stdout] running 172 tests
[INFO] [stdout] test src/error.rs - error::Context (line 272) ... ignored
[INFO] [stdout] test src/lib.rs - (line 140) - compile ... ok
[INFO] [stdout] test src/lib.rs - (line 89) - compile ... ok
[INFO] [stdout] test src/lib.rs - tunable_gate (line 388) ... ignored
[INFO] [stdout] test src/lib.rs - tunable_gate (line 398) ... ignored
[INFO] [stdout] test src/lib.rs - tuning (line 466) ... ignored
[INFO] [stdout] test src/lib.rs - math (line 507) ... ok
[INFO] [stdout] test src/lib.rs - traits (line 526) ... ok
[INFO] [stdout] test src/lib.rs - prelude (line 521) ... ok
[INFO] [stdout] test src/lib.rs - utils (line 528) ... ok
[INFO] [stdout] test src/lib.rs - metrics (line 554) ... ok
[INFO] [stdout] test src/machine_learning/decomposition/pca.rs - machine_learning::decomposition::pca::PCA (line 200) ... ok
[INFO] [stdout] test src/machine_learning/clustering/mean_shift.rs - machine_learning::clustering::mean_shift::MeanShift (line 36) ... ok
[INFO] [stdout] test src/machine_learning/decomposition/kernel_pca.rs - machine_learning::decomposition::kernel_pca::KernelPCA (line 129) ... ok
[INFO] [stdout] test src/machine_learning/discriminant_analysis/lda.rs - machine_learning::discriminant_analysis::lda::LDA (line 332) ... ok
[INFO] [stdout] test src/machine_learning/clustering/dbscan.rs - machine_learning::clustering::dbscan::DBSCAN (line 31) ... ok
[INFO] [stdout] test src/machine_learning/linear_model/logistic_regression.rs - machine_learning::linear_model::logistic_regression::LogisticRegression (line 39) ... ok
[INFO] [stdout] test src/machine_learning/linear_model/logistic_regression.rs - machine_learning::linear_model::logistic_regression::generate_polynomial_features (line 598) ... ok
[INFO] [stdout] test src/lib.rs - neural_network (line 612) ... ok
[INFO] [stdout] test src/machine_learning/neighbors/knn.rs - machine_learning::neighbors::knn::KNN (line 61) ... ok
[INFO] [stdout] test src/lib.rs - neural_network (line 649) ... ok
[INFO] [stdout] test src/machine_learning/ensemble/isolation_forest.rs - machine_learning::ensemble::isolation_forest::IsolationForest (line 116) ... ok
[INFO] [stdout] test src/machine_learning/svm/svc.rs - machine_learning::svm::svc::SVC (line 31) ... ok
[INFO] [stdout] test src/lib.rs - machine_learning (line 549) ... ok
[INFO] [stdout] test src/math/distance.rs - math::distance::DistanceCalculationMetric (line 151) ... ok
[INFO] [stdout] test src/math/distance.rs - math::distance::minkowski_distance_row (line 106) ... ok
[INFO] [stdout] test src/math/distance.rs - math::distance::squared_euclidean_distance_row (line 25) ... ok
[INFO] [stdout] test src/machine_learning/tree/decision_tree.rs - machine_learning::tree::decision_tree::DecisionTree (line 365) ... ok
[INFO] [stdout] test src/math/reduction.rs - math::reduction::det_reduce (line 51) ... ok
[INFO] [stdout] test src/math/reduction.rs - math::reduction::det_reduce_range (line 124) ... ok
[INFO] [stdout] test src/math/distance.rs - math::distance::manhattan_distance_row (line 66) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::average_precision (line 1063) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::ConfusionMatrix (line 61) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::log_loss (line 819) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::accuracy (line 375) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::precision_recall_curve (line 1201) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::roc_curve (line 1122) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::cohen_kappa (line 883) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::top_k_accuracy (line 937) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::MulticlassConfusionMatrix (line 513) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::adjusted_mutual_info (line 246) ... ok
[INFO] [stdout] test src/metrics/classification.rs - metrics::classification::roc_auc (line 434) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::adjusted_rand_index (line 310) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::calinski_harabasz_score (line 907) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::completeness_score (line 678) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::fowlkes_mallows_score (line 773) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::davies_bouldin_score (line 838) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::normalized_mutual_info (line 183) ... ok
[INFO] [stdout] test src/metrics/regression.rs - metrics::regression::explained_variance_score (line 247) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::v_measure_score (line 723) ... ok
[INFO] [stdout] test src/metrics/regression.rs - metrics::regression::mean_absolute_error (line 114) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::homogeneity_score (line 635) ... ok
[INFO] [stdout] test src/machine_learning/linear_model/linear_regression.rs - machine_learning::linear_model::linear_regression::LinearRegression (line 57) ... FAILED
[INFO] [stdout] test src/machine_learning/svm/linear_svc.rs - machine_learning::svm::linear_svc::LinearSVC (line 40) ... ok
[INFO] [stdout] test src/metrics/regression.rs - metrics::regression::mean_absolute_percentage_error (line 398) ... ok
[INFO] [stdout] test src/metrics/regression.rs - metrics::regression::median_absolute_error (line 340) ... ok
[INFO] [stdout] test src/neural_network/ctx.rs - neural_network::ctx::Ctx (line 213) ... ok
[INFO] [stdout] test src/machine_learning/clustering/kmeans.rs - machine_learning::clustering::kmeans::KMeans (line 59) ... ok
[INFO] [stdout] test src/metrics/regression.rs - metrics::regression::mean_squared_error (line 25) ... ok
[INFO] [stdout] test src/metrics/regression.rs - metrics::regression::root_mean_squared_error (line 72) ... ok
[INFO] [stdout] test src/metrics/regression.rs - metrics::regression::r2_score (line 175) ... ok
[INFO] [stdout] test src/metrics/clustering.rs - metrics::clustering::silhouette_score (line 479) ... ok
[INFO] [stdout] test src/neural_network.rs - neural_network::graph (line 194) ... ok
[INFO] [stdout] test src/machine_learning/manifold/t_sne.rs - machine_learning::manifold::t_sne::TSNE (line 153) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/exponential.rs - neural_network::layers::activation::exponential::Exponential (line 30) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/hard_sigmoid.rs - neural_network::layers::activation::hard_sigmoid::HardSigmoid (line 32) ... ok
[INFO] [stdout] test src/neural_network/graph.rs - neural_network::graph::GraphBuilder (line 103) ... ok
[INFO] [stdout] test src/neural_network/initializer.rs - neural_network::initializer::Initializer (line 146) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/elu.rs - neural_network::layers::activation::elu::ELU (line 32) ... ok
[INFO] [stdout] test src/neural_network/initializer.rs - neural_network::initializer::Fans (line 63) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/relu.rs - neural_network::layers::activation::relu::ReLU (line 27) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/linear.rs - neural_network::layers::activation::linear::Linear (line 24) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/softplus.rs - neural_network::layers::activation::softplus::Softplus (line 30) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/leaky_relu.rs - neural_network::layers::activation::leaky_relu::LeakyReLU (line 32) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/softsign.rs - neural_network::layers::activation::softsign::Softsign (line 30) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/softmax.rs - neural_network::layers::activation::softmax::Softmax (line 32) ... ok
[INFO] [stdout] test src/neural_network/layers/border.rs - neural_network::layers::border::Border1D (line 48) ... ok
[INFO] [stdout] test src/neural_network/layers/border.rs - neural_network::layers::border::Border2D (line 85) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/sigmoid.rs - neural_network::layers::activation::sigmoid::Sigmoid (line 28) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/p_relu.rs - neural_network::layers::activation::p_relu::PReLU (line 60) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/selu.rs - neural_network::layers::activation::selu::SELU (line 33) ... ok
[INFO] [stdout] test src/neural_network/layers/border.rs - neural_network::layers::border::Border3D (line 131) ... ok
[INFO] [stdout] test src/neural_network/layers/border/cropping_1d.rs - neural_network::layers::border::cropping_1d::Cropping1D (line 35) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/softmax.rs - neural_network::layers::activation::softmax::Softmax (line 60) ... ok
[INFO] [stdout] test src/neural_network/layers/border/zero_padding_3d.rs - neural_network::layers::border::zero_padding_3d::ZeroPadding3D (line 36) ... ok
[INFO] [stdout] test src/neural_network/layers/activation/tanh.rs - neural_network::layers::activation::tanh::Tanh (line 28) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/conv_2d.rs - neural_network::layers::convolution::conv_2d::Conv2D (line 38) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/conv_1d_transpose.rs - neural_network::layers::convolution::conv_1d_transpose::Conv1DTranspose (line 56) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/conv_3d_transpose.rs - neural_network::layers::convolution::conv_3d_transpose::Conv3DTranspose (line 58) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/depthwise_conv_1d.rs - neural_network::layers::convolution::depthwise_conv_1d::DepthwiseConv1D (line 43) ... ok
[INFO] [stdout] test src/neural_network/layers/border/cropping_2d.rs - neural_network::layers::border::cropping_2d::Cropping2D (line 38) ... ok
[INFO] [stdout] test src/neural_network/layers/border/cropping_3d.rs - neural_network::layers::border::cropping_3d::Cropping3D (line 35) ... ok
[INFO] [stdout] test src/neural_network/layers/border/zero_padding_1d.rs - neural_network::layers::border::zero_padding_1d::ZeroPadding1D (line 36) ... ok
[INFO] [stdout] test src/neural_network/layers/border/zero_padding_2d.rs - neural_network::layers::border::zero_padding_2d::ZeroPadding2D (line 37) ... ok
[INFO] [stdout] test src/neural_network/layers/dense.rs - neural_network::layers::dense::Dense (line 69) ... ok
[INFO] [stdout] test src/neural_network/layers/dense.rs - neural_network::layers::dense::Dense (line 36) ... ok
[INFO] [stdout] test src/neural_network/layers/flatten.rs - neural_network::layers::flatten::Flatten (line 34) ... ok
[INFO] [stdout] test src/neural_network/layers/identity.rs - neural_network::layers::identity::Identity (line 25) ... ok
[INFO] [stdout] test src/neural_network/layers/embedding.rs - neural_network::layers::embedding::Embedding (line 66) ... ok
[INFO] [stdout] test src/neural_network/layers/merge/average.rs - neural_network::layers::merge::average::Average (line 39) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/conv_1d.rs - neural_network::layers::convolution::conv_1d::Conv1D (line 39) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/conv_2d_transpose.rs - neural_network::layers::convolution::conv_2d_transpose::Conv2DTranspose (line 60) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/depthwise_conv_2d.rs - neural_network::layers::convolution::depthwise_conv_2d::DepthwiseConv2D (line 41) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/conv_3d.rs - neural_network::layers::convolution::conv_3d::Conv3D (line 39) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/separable_conv_1d.rs - neural_network::layers::convolution::separable_conv_1d::SeparableConv1D (line 53) ... ok
[INFO] [stdout] test src/neural_network/layers/merge/minimum.rs - neural_network::layers::merge::minimum::Minimum (line 43) ... ok
[INFO] [stdout] test src/neural_network/layers/merge/multiply.rs - neural_network::layers::merge::multiply::Multiply (line 39) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/average_pooling_1d.rs - neural_network::layers::pooling::average_pooling_1d::AveragePooling1D (line 38) ... ok
[INFO] [stdout] test src/neural_network/layers/merge/concatenate.rs - neural_network::layers::merge::concatenate::Concatenate (line 49) ... ok
[INFO] [stdout] test src/neural_network/layers/merge/add.rs - neural_network::layers::merge::add::Add (line 38) ... ok
[INFO] [stdout] test src/neural_network/layers/merge/subtract.rs - neural_network::layers::merge::subtract::Subtract (line 41) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/global_average_pooling_1d.rs - neural_network::layers::pooling::global_average_pooling_1d::GlobalAveragePooling1D (line 26) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/average_pooling_2d.rs - neural_network::layers::pooling::average_pooling_2d::AveragePooling2D (line 39) ... ok
[INFO] [stdout] test src/neural_network/layers/permute.rs - neural_network::layers::permute::Permute (line 37) ... ok
[INFO] [stdout] test src/neural_network/layers/merge/maximum.rs - neural_network::layers::merge::maximum::Maximum (line 49) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/global_average_pooling_2d.rs - neural_network::layers::pooling::global_average_pooling_2d::GlobalAveragePooling2D (line 27) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/global_max_pooling_1d.rs - neural_network::layers::pooling::global_max_pooling_1d::GlobalMaxPooling1D (line 30) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/global_max_pooling_2d.rs - neural_network::layers::pooling::global_max_pooling_2d::GlobalMaxPooling2D (line 31) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/global_average_pooling_3d.rs - neural_network::layers::pooling::global_average_pooling_3d::GlobalAveragePooling3D (line 27) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/global_max_pooling_3d.rs - neural_network::layers::pooling::global_max_pooling_3d::GlobalMaxPooling3D (line 31) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/max_pooling_2d.rs - neural_network::layers::pooling::max_pooling_2d::MaxPooling2D (line 44) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/max_pooling_1d.rs - neural_network::layers::pooling::max_pooling_1d::MaxPooling1D (line 43) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/dropout/dropout.rs - neural_network::layers::regularization::dropout::dropout::Dropout (line 54) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/dropout/spatial_dropout_1d.rs - neural_network::layers::regularization::dropout::spatial_dropout_1d::SpatialDropout1D (line 39) ... ok
[INFO] [stdout] test src/neural_network/layers/recurrent/gru.rs - neural_network::layers::recurrent::gru::GRU (line 216) ... ok
[INFO] [stdout] test src/neural_network/layers/recurrent/simple_rnn.rs - neural_network::layers::recurrent::simple_rnn::SimpleRNN (line 124) ... ok
[INFO] [stdout] test src/neural_network/layers/recurrent/lstm.rs - neural_network::layers::recurrent::lstm::LSTM (line 201) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/noise_injection/gaussian_dropout.rs - neural_network::layers::regularization::noise_injection::gaussian_dropout::GaussianDropout (line 40) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/normalization/batch_normalization.rs - neural_network::layers::regularization::normalization::batch_normalization::BatchNormalization (line 48) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/normalization/group_normalization.rs - neural_network::layers::regularization::normalization::group_normalization::GroupNormalization (line 31) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/noise_injection/gaussian_noise.rs - neural_network::layers::regularization::noise_injection::gaussian_noise::GaussianNoise (line 37) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/normalization/instance_normalization.rs - neural_network::layers::regularization::normalization::instance_normalization::InstanceNormalization (line 37) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/normalization/unit_normalization.rs - neural_network::layers::regularization::normalization::unit_normalization::UnitNormalization (line 72) ... ok
[INFO] [stdout] test src/neural_network/layers/rescaling.rs - neural_network::layers::rescaling::Rescaling (line 40) ... ok
[INFO] [stdout] test src/neural_network/layers/repeat_vector.rs - neural_network::layers::repeat_vector::RepeatVector (line 27) ... ok
[INFO] [stdout] test src/neural_network/layers/reshape.rs - neural_network::layers::reshape::Reshape (line 36) ... ok
[INFO] [stdout] test src/neural_network/layers/reverse.rs - neural_network::layers::reverse::Reverse (line 53) ... ok
[INFO] [stdout] test src/neural_network/layers/upsampling.rs - neural_network::layers::upsampling::Factor2D (line 78) ... ok
[INFO] [stdout] test src/neural_network/layers/upsampling.rs - neural_network::layers::upsampling::Interpolation (line 45) ... ok
[INFO] [stdout] test src/neural_network/layers/upsampling.rs - neural_network::layers::upsampling::Factor3D (line 111) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/normalization/layer_normalization.rs - neural_network::layers::regularization::normalization::layer_normalization::LayerNormalization (line 328) ... ok
[INFO] [stdout] test src/neural_network/layers/upsampling/up_sampling_3d.rs - neural_network::layers::upsampling::up_sampling_3d::UpSampling3D (line 38) ... ok
[INFO] [stdout] test src/neural_network/layers/upsampling/up_sampling_1d.rs - neural_network::layers::upsampling::up_sampling_1d::UpSampling1D (line 37) ... ok
[INFO] [stdout] test src/neural_network/layers/upsampling/up_sampling_2d.rs - neural_network::layers::upsampling::up_sampling_2d::UpSampling2D (line 40) ... ok
[INFO] [stdout] test src/neural_network/losses/categorical_cross_entropy.rs - neural_network::losses::categorical_cross_entropy::CategoricalCrossEntropy (line 40) ... ok
[INFO] [stdout] test src/neural_network/losses/binary_cross_entropy.rs - neural_network::losses::binary_cross_entropy::BinaryCrossEntropy (line 12) ... ok
[INFO] [stdout] test src/neural_network/losses/mean_absolute_error.rs - neural_network::losses::mean_absolute_error::MeanAbsoluteError (line 12) ... ok
[INFO] [stdout] test src/neural_network/losses/mean_squared_error.rs - neural_network::losses::mean_squared_error::MeanSquaredError (line 12) ... ok
[INFO] [stdout] test src/neural_network/losses/sparse_categorical_cross_entropy.rs - neural_network::losses::sparse_categorical_cross_entropy::SparseCategoricalCrossEntropy (line 23) ... ok
[INFO] [stdout] test src/neural_network/sequential.rs - neural_network::sequential::SequentialBuilder (line 161) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/dropout/spatial_dropout_2d.rs - neural_network::layers::regularization::dropout::spatial_dropout_2d::SpatialDropout2D (line 40) ... ok
[INFO] [stdout] test src/tuning.rs - tuning::fwd (line 44) ... ignored
[INFO] [stdout] test src/tuning.rs - tuning::fwd (line 54) ... ignored
[INFO] [stdout] test src/neural_network/sequential.rs - neural_network::sequential::SequentialBuilder (line 143) ... ok
[INFO] [stdout] test src/utils/label_encoding.rs - utils::label_encoding::to_categorical (line 28) ... ok
[INFO] [stdout] test src/utils/label_encoding.rs - utils::label_encoding::to_categorical_with_mapping (line 117) ... ok
[INFO] [stdout] test src/utils/label_encoding.rs - utils::label_encoding::to_sparse_categorical (line 193) ... ok
[INFO] [stdout] test src/utils/normalize.rs - utils::normalize::normalize (line 71) ... ok
[INFO] [stdout] test src/utils/scaler/min_max_scaler.rs - utils::scaler::min_max_scaler::MinMaxScaler (line 39) ... ok
[INFO] [stdout] test src/utils/scaler/normalizer.rs - utils::scaler::normalizer::Normalizer (line 32) ... ok
[INFO] [stdout] test src/utils/scaler/max_abs_scaler.rs - utils::scaler::max_abs_scaler::MaxAbsScaler (line 30) ... ok
[INFO] [stdout] test src/utils/scaler/robust_scaler.rs - utils::scaler::robust_scaler::RobustScaler (line 45) ... ok
[INFO] [stdout] test src/utils/scaler/standard_scaler.rs - utils::scaler::standard_scaler::StandardScaler (line 46) ... ok
[INFO] [stdout] test src/neural_network/shape.rs - neural_network::shape::Shape (line 29) ... ok
[INFO] [stdout] test src/utils/train_test_split.rs - utils::train_test_split::train_test_split (line 38) ... ok
[INFO] [stdout] test src/utils/standardize.rs - utils::standardize::standardize (line 79) ... ok
[INFO] [stdout] test src/utils/train_test_split.rs - utils::train_test_split::train_test_split_stratified (line 136) ... ok
[INFO] [stdout] test src/neural_network/layers/convolution/separable_conv_2d.rs - neural_network::layers::convolution::separable_conv_2d::SeparableConv2D (line 52) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/average_pooling_3d.rs - neural_network::layers::pooling::average_pooling_3d::AveragePooling3D (line 41) ... ok
[INFO] [stdout] test src/neural_network/layers/pooling/max_pooling_3d.rs - neural_network::layers::pooling::max_pooling_3d::MaxPooling3D (line 46) ... ok
[INFO] [stdout] test src/neural_network/layers/regularization/dropout/spatial_dropout_3d.rs - neural_network::layers::regularization::dropout::spatial_dropout_3d::SpatialDropout3D (line 40) ... ok
[INFO] [stdout] test src/neural_network/sequential.rs - neural_network::sequential::Sequential (line 51) ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/machine_learning/linear_model/linear_regression.rs - machine_learning::linear_model::linear_regression::LinearRegression (line 57) stdout ----
[INFO] [stdout] Test executable failed (exit status: 101).
[INFO] [stdout] 
[INFO] [stdout] stderr:
[INFO] [stdout] 
[INFO] [stdout] thread 'main' (4425) panicked at /tmp/rustdoctestI6XTUe/doctest_bundle_2024.rs:524:51:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Io(Std(Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x60c75f2fc2b1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x60c75f2fc2b1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x60c75f2fc2b1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x60c75f2fc2b1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x60c75f312b3a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x60c75f312b3a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x60c75f30132c - core[a373ad73a504971]::io::write::default_write_fmt::<std[617be2ca0a6fd877]::sys::stdio::unix::Stderr>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x60c75f30132c - <std[617be2ca0a6fd877]::sys::stdio::unix::Stderr as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x60c75f2d7976 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x60c75f2d7976 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x60c75f2f3f21 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x60c75f2f424b - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:811:13
[INFO] [stdout]   12:     0x60c75f2d7a22 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   13:     0x60c75f2d04f9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   14:     0x60c75f2d87ad - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   15:     0x60c75f31332c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   16:     0x60c75f313082 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/result.rs:1870:5
[INFO] [stdout]   17:     0x60c75e8de086 - doctest_bundle_2024[8cc95805e96201d2]::__doctest_21::main
[INFO] [stdout]   18:     0x60c75e8de4fe - doctest_bundle_2024[8cc95805e96201d2]::__doctest_21::__main_fn
[INFO] [stdout]   19:     0x60c75e6a6eb1 - doctest_runner_2024[a5234fb354d81c5]::__doctest_21::TEST::{closure#0}
[INFO] [stdout]   20:     0x60c75e6af246 - <doctest_runner_2024[a5234fb354d81c5]::__doctest_21::TEST::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   21:     0x60c75e6ac71c - doctest_runner_2024[a5234fb354d81c5]::main
[INFO] [stdout]   22:     0x60c75e6aef33 - <fn() -> std[617be2ca0a6fd877]::process::ExitCode as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   23:     0x60c75e6a5fd6 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<fn() -> std[617be2ca0a6fd877]::process::ExitCode, std[617be2ca0a6fd877]::process::ExitCode>
[INFO] [stdout]   24:     0x60c75e6a6449 - std[617be2ca0a6fd877]::rt::lang_start::<std[617be2ca0a6fd877]::process::ExitCode>::{closure#0}
[INFO] [stdout]   25:     0x60c75f2f2f48 - <&dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:287:21
[INFO] [stdout]   26:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<&dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   27:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::panicking::catch_unwind::<i32, &dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   28:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::panic::catch_unwind::<&dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/rt.rs:175:24
[INFO] [stdout]   30:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   31:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::panicking::catch_unwind::<isize, std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   32:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::panic::catch_unwind::<std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   33:     0x60c75f2f2f48 - std[617be2ca0a6fd877]::rt::lang_start_internal
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/rt.rs:171:5
[INFO] [stdout]   34:     0x60c75e6a5811 - std[617be2ca0a6fd877]::rt::lang_start::<std[617be2ca0a6fd877]::process::ExitCode>
[INFO] [stdout]   35:     0x60c75e6b05e5 - main
[INFO] [stdout]   36:     0x781a6e9cd601 - <unknown>
[INFO] [stdout]   37:     0x781a6e9cd718 - __libc_start_main
[INFO] [stdout]   38:     0x60c75e6a4a15 - _start
[INFO] [stdout]   39:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] ---- src/neural_network/sequential.rs - neural_network::sequential::Sequential (line 51) stdout ----
[INFO] [stdout] Test executable failed (exit status: 101).
[INFO] [stdout] 
[INFO] [stdout] stdout:
[INFO] [stdout] Model: "sequential"
[INFO] [stdout] ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
[INFO] [stdout] ┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃
[INFO] [stdout] ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
[INFO] [stdout] │ dense (Dense)                   │ (32, 128)              │        100480 │
[INFO] [stdout] │ dense_1 (Dense)                 │ (32, 64)               │          8256 │
[INFO] [stdout] │ dense_2 (Dense)                 │ (32, 10)               │           650 │
[INFO] [stdout] └─────────────────────────────────┴────────────────────────┴───────────────┘
[INFO] [stdout]  Total params: 109386 (437544 B)
[INFO] [stdout]  Trainable params: 109386 (437544 B)
[INFO] [stdout]  Non-trainable params: 0 (0 B)
[INFO] [stdout] Per-epoch loss: [26.85354, 24.31799, 23.576443, 23.338638, 23.237967, 23.226795, 23.240337, 23.193817, 23.14775, 23.101849]
[INFO] [stdout] Loss after training: 23.07553
[INFO] [stdout] 
[INFO] [stdout] stderr:
[INFO] [stdout] 
[INFO] [stdout] thread 'main' (4865) panicked at /tmp/rustdoctestI6XTUe/doctest_bundle_2024.rs:4209:33:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Io(Std(Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }))
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x570b6ef692b1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x570b6ef692b1 - std[617be2ca0a6fd877]::backtrace_rs::backtrace::trace_unsynchronized::<std[617be2ca0a6fd877]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x570b6ef692b1 - std[617be2ca0a6fd877]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x570b6ef692b1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x570b6ef7fb3a - <core[a373ad73a504971]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x570b6ef7fb3a - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    6:     0x570b6ef6e32c - core[a373ad73a504971]::io::write::default_write_fmt::<std[617be2ca0a6fd877]::sys::stdio::unix::Stderr>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:402:11
[INFO] [stdout]    7:     0x570b6ef6e32c - <std[617be2ca0a6fd877]::sys::stdio::unix::Stderr as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/io/write.rs:335:13
[INFO] [stdout]    8:     0x570b6ef44976 - <std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x570b6ef44976 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:289:27
[INFO] [stdout]   10:     0x570b6ef60f21 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x570b6ef6124b - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:811:13
[INFO] [stdout]   12:     0x570b6ef44a22 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:685:13
[INFO] [stdout]   13:     0x570b6ef3d4f9 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   14:     0x570b6ef457ad - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:676:5
[INFO] [stdout]   15:     0x570b6ef8032c - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/panicking.rs:80:14
[INFO] [stdout]   16:     0x570b6ef80082 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/result.rs:1870:5
[INFO] [stdout]   17:     0x570b6e5897f5 - doctest_bundle_2024[8cc95805e96201d2]::__doctest_154::main
[INFO] [stdout]   18:     0x570b6e58a6ce - doctest_bundle_2024[8cc95805e96201d2]::__doctest_154::__main_fn
[INFO] [stdout]   19:     0x570b6e318131 - doctest_runner_2024[a5234fb354d81c5]::__doctest_154::TEST::{closure#0}
[INFO] [stdout]   20:     0x570b6e31d2e6 - <doctest_runner_2024[a5234fb354d81c5]::__doctest_154::TEST::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   21:     0x570b6e31971c - doctest_runner_2024[a5234fb354d81c5]::main
[INFO] [stdout]   22:     0x570b6e31bf33 - <fn() -> std[617be2ca0a6fd877]::process::ExitCode as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   23:     0x570b6e312fd6 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<fn() -> std[617be2ca0a6fd877]::process::ExitCode, std[617be2ca0a6fd877]::process::ExitCode>
[INFO] [stdout]   24:     0x570b6e313449 - std[617be2ca0a6fd877]::rt::lang_start::<std[617be2ca0a6fd877]::process::ExitCode>::{closure#0}
[INFO] [stdout]   25:     0x570b6ef5ff48 - <&dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/core/src/ops/function.rs:287:21
[INFO] [stdout]   26:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<&dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   27:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::panicking::catch_unwind::<i32, &dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   28:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::panic::catch_unwind::<&dyn core[a373ad73a504971]::ops::function::Fn<(), Output = i32> + core[a373ad73a504971]::marker::Sync + core[a373ad73a504971]::panic::unwind_safe::RefUnwindSafe, i32>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   29:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/rt.rs:175:24
[INFO] [stdout]   30:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::panicking::catch_unwind::do_call::<std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:573:43
[INFO] [stdout]   31:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::panicking::catch_unwind::<isize, std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panicking.rs:541:19
[INFO] [stdout]   32:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::panic::catch_unwind::<std[617be2ca0a6fd877]::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/panic.rs:359:14
[INFO] [stdout]   33:     0x570b6ef5ff48 - std[617be2ca0a6fd877]::rt::lang_start_internal
[INFO] [stdout]                                at /rustc/e3feeb59cd1bdd011a2bfcc0747b55125d9b8527/library/std/src/rt.rs:171:5
[INFO] [stdout]   34:     0x570b6e312811 - std[617be2ca0a6fd877]::rt::lang_start::<std[617be2ca0a6fd877]::process::ExitCode>
[INFO] [stdout]   35:     0x570b6e31d5e5 - main
[INFO] [stdout]   36:     0x757efd934601 - <unknown>
[INFO] [stdout]   37:     0x757efd934718 - __libc_start_main
[INFO] [stdout]   38:     0x570b6e311a15 - _start
[INFO] [stdout]   39:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/machine_learning/linear_model/linear_regression.rs - machine_learning::linear_model::linear_regression::LinearRegression (line 57)
[INFO] [stdout]     src/neural_network/sequential.rs - neural_network::sequential::Sequential (line 51)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 164 passed; 2 failed; 6 ignored; 0 measured; 0 filtered out; finished in 3.50s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 15.08s; merged doctests compilation took 11.50s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa", kill_on_drop: false }`
[INFO] [stdout] bd16bdb8293b24f23f08e7b0ae660a5a136294472774554372add1c88fdc6faa
