[INFO] fetching crate prakash 1.2.0...
[INFO] testing prakash-1.2.0 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate prakash 1.2.0 into /workspace/builds/worker-2-tc2/source
[INFO] removed /workspace/builds/worker-2-tc2/source/rust-toolchain.toml
[INFO] started tweaking crates.io crate prakash 1.2.0
[INFO] removed 0 missing examples
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate prakash 1.2.0
[INFO] tweaked toml for crates.io crate prakash 1.2.0 written to /workspace/builds/worker-2-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate prakash 1.2.0 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate prakash 1.2.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" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 56d9478413cc558fb8571a16830ff3c06118653adef8ff6e9e2278027b007351
[INFO] running `Command { std: "docker" "start" "-a" "56d9478413cc558fb8571a16830ff3c06118653adef8ff6e9e2278027b007351", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "56d9478413cc558fb8571a16830ff3c06118653adef8ff6e9e2278027b007351", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "56d9478413cc558fb8571a16830ff3c06118653adef8ff6e9e2278027b007351", kill_on_drop: false }`
[INFO] [stdout] 56d9478413cc558fb8571a16830ff3c06118653adef8ff6e9e2278027b007351
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0d8ee9f97f0bb654f014851ae03a83bd6d4a47e611a7ce0b1976d57f0b56ad9e
[INFO] running `Command { std: "docker" "start" "-a" "0d8ee9f97f0bb654f014851ae03a83bd6d4a47e611a7ce0b1976d57f0b56ad9e", kill_on_drop: false }`
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling glam v0.29.3
[INFO] [stderr]    Compiling hisab v1.3.0
[INFO] [stderr]    Compiling prakash v1.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 10.73s
[INFO] running `Command { std: "docker" "inspect" "0d8ee9f97f0bb654f014851ae03a83bd6d4a47e611a7ce0b1976d57f0b56ad9e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0d8ee9f97f0bb654f014851ae03a83bd6d4a47e611a7ce0b1976d57f0b56ad9e", kill_on_drop: false }`
[INFO] [stdout] 0d8ee9f97f0bb654f014851ae03a83bd6d4a47e611a7ce0b1976d57f0b56ad9e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 42cfeaa38708c107c5cdd25489b465b82f05dbfa6979d1f9a5202d6667e7d196
[INFO] running `Command { std: "docker" "start" "-a" "42cfeaa38708c107c5cdd25489b465b82f05dbfa6979d1f9a5202d6667e7d196", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling zerocopy-derive v0.8.48
[INFO] [stderr]    Compiling glam v0.29.3
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling hisab v1.3.0
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling proptest v1.11.0
[INFO] [stderr]    Compiling prakash v1.2.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 27.71s
[INFO] running `Command { std: "docker" "inspect" "42cfeaa38708c107c5cdd25489b465b82f05dbfa6979d1f9a5202d6667e7d196", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "42cfeaa38708c107c5cdd25489b465b82f05dbfa6979d1f9a5202d6667e7d196", kill_on_drop: false }`
[INFO] [stdout] 42cfeaa38708c107c5cdd25489b465b82f05dbfa6979d1f9a5202d6667e7d196
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 867815de3e4e0440feb1593c7cafd736474b3119d161e815b6415d2e4efd77f1
[INFO] running `Command { std: "docker" "start" "-a" "867815de3e4e0440feb1593c7cafd736474b3119d161e815b6415d2e4efd77f1", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.23s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/prakash-f0ac5adcc9cf8dad)
[INFO] [stdout] 
[INFO] [stdout] running 577 tests
[INFO] [stdout] test bridge::tests::absolute_magnitude_brighter ... ok
[INFO] [stdout] test bridge::tests::cloud_cover_clear ... ok
[INFO] [stdout] test bridge::tests::cloud_cover_overcast ... ok
[INFO] [stdout] test bridge::tests::absolute_magnitude_sun ... ok
[INFO] [stdout] test bridge::tests::color_index_sun ... ok
[INFO] [stdout] test bridge::tests::density_half_altitude ... ok
[INFO] [stdout] test bridge::tests::e_field_to_intensity_and_back ... ok
[INFO] [stdout] test bridge::tests::density_sea_level_unity ... ok
[INFO] [stdout] test bridge::tests::humidity_baseline ... ok
[INFO] [stdout] test bridge::tests::em_frequency_to_wavelength_visible ... ok
[INFO] [stdout] test bridge::tests::em_frequency_zero ... ok
[INFO] [stdout] test bridge::tests::spectral_class_sun_g ... ok
[INFO] [stdout] test bridge::tests::hot_star_bluish ... ok
[INFO] [stdout] test bridge::tests::intensity_zero ... ok
[INFO] [stdout] test bridge::tests::humidity_high_increases ... ok
[INFO] [stdout] test error::tests::test_error_is_debug ... ok
[INFO] [stdout] test error::tests::test_division_by_zero ... ok
[INFO] [stdout] test error::tests::test_invalid_angle ... ok
[INFO] [stdout] test bridge::tests::visibility_zero ... ok
[INFO] [stdout] test bridge::tests::wavelength_to_frequency_roundtrip ... ok
[INFO] [stdout] test bridge::tests::sun_temperature_yellowish ... ok
[INFO] [stdout] test bridge::tests::visibility_to_extinction_clear ... ok
[INFO] [stdout] test error::tests::test_tir_error ... ok
[INFO] [stdout] test error::tests::test_invalid_focal ... ok
[INFO] [stdout] test error::tests::test_invalid_index ... ok
[INFO] [stdout] test error::tests::test_result_alias_err ... ok
[INFO] [stdout] test error::tests::test_result_alias_ok ... ok
[INFO] [stdout] test error::tests::test_wavelength_range ... ok
[INFO] [stdout] test lens::tests::test_airy_disk_radius ... ok
[INFO] [stdout] test lens::tests::test_aperture_from_f_number ... ok
[INFO] [stdout] test lens::tests::test_cardinal_points_symmetric_lens ... ok
[INFO] [stdout] test lens::tests::test_cardinal_points_biconvex ... ok
[INFO] [stdout] test lens::tests::test_combined_focal_converging_diverging ... ok
[INFO] [stdout] test lens::tests::test_classify_lens_zero ... ok
[INFO] [stdout] test lens::tests::test_combined_focal_equal_opposite ... ok
[INFO] [stdout] test lens::tests::test_combined_focal ... ok
[INFO] [stdout] test lens::tests::test_conjugate_factor_symmetric ... ok
[INFO] [stdout] test lens::tests::test_dof_longer_lens_shallower ... ok
[INFO] [stdout] test lens::tests::test_diffraction_limit ... ok
[INFO] [stdout] test lens::tests::test_dof_symmetric_around_subject ... ok
[INFO] [stdout] test lens::tests::test_dof_wider_aperture_shallower ... ok
[INFO] [stdout] test lens::tests::test_f_number ... ok
[INFO] [stdout] test lens::tests::test_chromatic_aberration ... ok
[INFO] [stdout] test lens::tests::test_conjugate_factor_infinity ... ok
[INFO] [stdout] test lens::tests::test_depth_of_field ... ok
[INFO] [stdout] test lens::tests::test_f_number_aperture_roundtrip ... ok
[INFO] [stdout] test lens::tests::test_field_of_view_50mm_fullframe ... ok
[INFO] [stdout] test lens::tests::test_field_of_view_longer_lens_narrower ... ok
[INFO] [stdout] test lens::tests::test_lensmaker_flat_surface_error ... ok
[INFO] [stdout] test lens::tests::test_lens_type_serde_roundtrip ... ok
[INFO] [stdout] test lens::tests::test_lensmaker_planoconvex ... ok
[INFO] [stdout] test lens::tests::test_longitudinal_spherical_increases_with_height ... ok
[INFO] [stdout] test lens::tests::test_lensmaker ... ok
[INFO] [stdout] test lens::tests::test_low_dispersion_less_chromatic ... ok
[INFO] [stdout] test lens::tests::test_larger_aperture_better_resolution ... ok
[INFO] [stdout] test lens::tests::test_lensmaker_diverging ... ok
[INFO] [stdout] test lens::tests::test_field_of_view_diagonal ... ok
[INFO] [stdout] test lens::tests::test_magnification_magnified ... ok
[INFO] [stdout] test lens::tests::test_magnification_virtual_upright ... ok
[INFO] [stdout] test bridge::tests::refractive_index_bk7_visible ... ok
[INFO] [stdout] test lens::tests::test_mirror_focal ... ok
[INFO] [stdout] test lens::tests::test_mirror_focal_convex ... ok
[INFO] [stdout] test bridge::tests::cool_star_reddish ... ok
[INFO] [stdout] test lens::tests::test_mirror_focal_concave ... ok
[INFO] [stdout] test lens::tests::test_mtf_above_cutoff ... ok
[INFO] [stdout] test bridge::tests::spectral_class_ordering ... ok
[INFO] [stdout] test lens::tests::test_mtf_at_zero_frequency ... ok
[INFO] [stdout] test lens::tests::test_mtf_monotonic_decrease ... ok
[INFO] [stdout] test lens::tests::test_mtf_cutoff ... ok
[INFO] [stdout] test lens::tests::test_numerical_aperture ... ok
[INFO] [stdout] test lens::tests::test_optical_power ... ok
[INFO] [stdout] test lens::tests::test_mirror_image_at_focal ... ok
[INFO] [stdout] test lens::tests::test_optical_power_roundtrip ... ok
[INFO] [stdout] test lens::tests::test_petzval_radius_flat_field ... ok
[INFO] [stdout] test lens::tests::test_petzval_radius_from_sum ... ok
[INFO] [stdout] test lens::tests::test_petzval_sum_doublet ... ok
[INFO] [stdout] test lens::tests::test_petzval_sum_single_lens ... ok
[INFO] [stdout] test lens::tests::test_magnification_at_2f ... ok
[INFO] [stdout] test lens::tests::test_seidel_equiconvex_at_infinity ... ok
[INFO] [stdout] test lens::tests::test_magnification_diminished ... ok
[INFO] [stdout] test lens::tests::test_separated_lenses_bfd ... ok
[INFO] [stdout] test lens::tests::test_mirror_image_real ... ok
[INFO] [stdout] test lens::tests::test_separated_lenses_contact ... ok
[INFO] [stdout] test lens::tests::test_na_from_f_number ... ok
[INFO] [stdout] test lens::tests::test_mtf_at_cutoff ... ok
[INFO] [stdout] test lens::tests::test_separated_lenses_telephoto ... ok
[INFO] [stdout] test lens::tests::test_na_immersion_oil ... ok
[INFO] [stdout] test lens::tests::test_shape_factor_equiconvex ... ok
[INFO] [stdout] test lens::tests::test_optical_power_negative ... ok
[INFO] [stdout] test lens::tests::test_optical_power_zero ... ok
[INFO] [stdout] test lens::tests::test_seidel_best_form_reduces_spherical ... ok
[INFO] [stdout] test lens::tests::test_mtf_range ... ok
[INFO] [stdout] test lens::tests::test_system_magnification_single ... ok
[INFO] [stdout] test lens::tests::test_thick_lens_biconvex ... ok
[INFO] [stdout] test lens::tests::test_thin_lens_at_focal ... ok
[INFO] [stdout] test lens::tests::test_thin_lens_virtual_image ... ok
[INFO] [stdout] test ray::dispersion::tests::test_abbe_crown_vs_flint ... ok
[INFO] [stdout] test ray::dispersion::tests::test_cauchy_fused_silica ... ok
[INFO] [stdout] test lens::tests::test_shape_factor_planoconvex ... ok
[INFO] [stdout] test lens::tests::test_system_magnification ... ok
[INFO] [stdout] test lens::tests::test_system_magnification_empty ... ok
[INFO] [stdout] test lens::tests::test_thick_lens_reduces_to_thin_at_zero_thickness ... ok
[INFO] [stdout] test lens::tests::test_thick_lens_zero_power ... ok
[INFO] [stdout] test lens::tests::test_thin_lens_diverging ... ok
[INFO] [stdout] test lens::tests::test_thin_lens_real_image ... ok
[INFO] [stdout] test lens::tests::test_thin_lens_satisfies_equation ... ok
[INFO] [stdout] test ray::dispersion::tests::test_abbe_number_bk7 ... ok
[INFO] [stdout] test ray::dispersion::tests::test_abbe_number_sf11 ... ok
[INFO] [stdout] test ray::dispersion::tests::test_cauchy_bk7_visible_range ... ok
[INFO] [stdout] test ray::dispersion::tests::test_herzberger_reasonable ... ok
[INFO] [stdout] test ray::dispersion::tests::test_lateral_ca ... ok
[INFO] [stdout] test ray::dispersion::tests::test_partial_dispersion_bk7 ... ok
[INFO] [stdout] test ray::dispersion::tests::test_longitudinal_ca ... ok
[INFO] [stdout] test ray::dispersion::tests::test_prism_deviation_tir ... ok
[INFO] [stdout] test ray::dispersion::tests::test_prism_dispersion_blue_more_than_red ... ok
[INFO] [stdout] test ray::dispersion::tests::test_prism_flint_more_dispersion_than_crown ... ok
[INFO] [stdout] test ray::dispersion::tests::test_refract_3d_output_normalized ... ok
[INFO] [stdout] test ray::dispersion::tests::test_schott_reasonable_range ... ok
[INFO] [stdout] test ray::dispersion::tests::test_prism_zero_apex ... ok
[INFO] [stdout] test ray::dispersion::tests::test_schott_bk7_matches_sellmeier ... ok
[INFO] [stdout] test ray::dispersion::tests::test_secondary_spectrum_positive ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_all_presets_reasonable ... ok
[INFO] [stdout] test ray::dispersion::tests::test_prism_deviation_60_degree ... ok
[INFO] [stdout] test ray::dispersion::tests::test_secondary_spectrum_zero_for_matched_p ... ok
[INFO] [stdout] test ray::dispersion::tests::test_prism_deviation_increases_with_n ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_bk7_nd ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_diamond ... ok
[INFO] [stdout] test ray::dispersion::tests::test_cauchy_normal_dispersion ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_serde_roundtrip ... ok
[INFO] [stdout] test ray::dispersion::tests::test_conrady_reasonable ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_bk7_normal_dispersion ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_sf11 ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_fused_silica ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_water ... ok
[INFO] [stdout] test ray::dispersion::tests::test_sellmeier_resonance_guard ... ok
[INFO] [stdout] test ray::dispersion::tests::test_prism_angular_spread ... ok
[INFO] [stdout] test ray::fiber::tests::test_fiber_na_invalid ... ok
[INFO] [stdout] test ray::fiber::tests::test_fiber_na_smf28 ... ok
[INFO] [stdout] test ray::fiber::tests::test_mfd_typical ... ok
[INFO] [stdout] test lens::tests::test_classify_lens ... ok
[INFO] [stdout] test ray::fiber::tests::test_num_modes_multi ... ok
[INFO] [stdout] test ray::fiber::tests::test_v_number_multimode ... ok
[INFO] [stdout] test ray::fiber::tests::test_v_number_single_mode ... ok
[INFO] [stdout] test ray::simulate::tests::test_meridional_fan_count ... ok
[INFO] [stdout] test ray::simulate::tests::test_opd_chief_is_zero ... ok
[INFO] [stdout] test ray::simulate::tests::test_meridional_fan_symmetric ... ok
[INFO] [stdout] test ray::dispersion::tests::test_snell_3d_consistency_with_scalar ... ok
[INFO] [stdout] test ray::simulate::tests::test_opd_fan_empty_input ... ok
[INFO] [stdout] test ray::fiber::tests::test_coupling_mismatch ... ok
[INFO] [stdout] test ray::dispersion::tests::test_trace_reflectance_at_each_surface ... ok
[INFO] [stdout] test ray::fiber::tests::test_coupling_perfect ... ok
[INFO] [stdout] test ray::simulate::tests::test_opd_fan_symmetric ... ok
[INFO] [stdout] test ray::fiber::tests::test_coupling_symmetric ... ok
[INFO] [stdout] test ray::fiber::tests::test_is_single_mode ... ok
[INFO] [stdout] test ray::fiber::tests::test_num_modes_single ... ok
[INFO] [stdout] test ray::simulate::tests::test_meridional_fan_aperture_range ... ok
[INFO] [stdout] test ray::simulate::tests::test_meridional_fan_center_ray ... ok
[INFO] [stdout] test ray::simulate::tests::test_ray_bundle_count ... ok
[INFO] [stdout] test ray::simulate::tests::test_opd_off_axis_nonzero ... ok
[INFO] [stdout] test ray::simulate::tests::test_opl_longer_in_glass ... ok
[INFO] [stdout] test ray::simulate::tests::test_opl_positive ... ok
[INFO] [stdout] test ray::simulate::tests::test_ray_bundle_chief_at_center ... ok
[INFO] [stdout] test ray::simulate::tests::test_ray_bundle_within_aperture ... ok
[INFO] [stdout] test ray::simulate::tests::test_recursive_single_surface ... ok
[INFO] [stdout] test ray::simulate::tests::test_spot_diagram_chief_near_axis ... ok
[INFO] [stdout] test ray::simulate::tests::test_ray_fan_with_field_angle ... ok
[INFO] [stdout] test ray::simulate::tests::test_spot_diagram_on_axis ... ok
[INFO] [stdout] test ray::simulate::tests::test_recursive_empty_scene ... ok
[INFO] [stdout] test ray::simulate::tests::test_sagittal_fan_in_x_plane ... ok
[INFO] [stdout] test ray::simulate::tests::test_recursive_energy_conservation ... ok
[INFO] [stdout] test ray::simulate::tests::test_sagittal_fan_count ... ok
[INFO] [stdout] test bridge::tests::density_zero ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_chief_constructor ... ok
[INFO] [stdout] test ray::simulate::tests::test_spot_larger_aperture_larger_spot ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_marginal_constructor ... ok
[INFO] [stdout] test ray::simulate::tests::test_spot_rms_empty ... ok
[INFO] [stdout] test ray::simulate::tests::test_spot_rms_known ... ok
[INFO] [stdout] test ray::simulate::tests::test_spot_rms_zero_for_single_point ... ok
[INFO] [stdout] test ray::simulate::tests::test_recursive_generates_reflections ... ok
[INFO] [stdout] test ray::simulate::tests::test_recursive_max_depth ... ok
[INFO] [stdout] test ray::simulate::tests::test_recursive_min_energy ... ok
[INFO] [stdout] test ray::simulate::tests::test_recursive_optical_path_positive ... ok
[INFO] [stdout] test ray::simulate::tests::test_spot_diagram_optical_path_positive ... ok
[INFO] [stdout] test lens::tests::test_thin_lens_far_object ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_trace_empty ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_trace_two_surfaces ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_biconvex ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_doublet ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_flat_surface ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_planoconvex ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_new ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_to_trace_surfaces ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_serde_roundtrip ... ok
[INFO] [stdout] test ray::system::tests::test_system_properties_bfd_positive ... ok
[INFO] [stdout] test ray::system::tests::test_system_properties_flat_window ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_matches_full_trace_on_axis ... ok
[INFO] [stdout] test ray::system::tests::test_system_properties_power ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_refract_converging ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_to_paraxial ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_refract_zero_power ... ok
[INFO] [stdout] test ray::system::tests::test_system_properties_empty ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_add_surface ... ok
[INFO] [stdout] test ray::system::tests::test_prescription_initial_medium ... ok
[INFO] [stdout] test ray::system::tests::test_system_properties_diverging ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_trace_single_lens ... ok
[INFO] [stdout] test ray::system::tests::test_paraxial_transfer_free_space ... ok
[INFO] [stdout] test ray::tests::test_beer_lambert_doubles_distance_squares_attenuation ... ok
[INFO] [stdout] test ray::tests::test_beer_lambert_exact ... ok
[INFO] [stdout] test ray::tests::test_beer_lambert_zero_distance ... ok
[INFO] [stdout] test ray::tests::test_brewster_angle ... ok
[INFO] [stdout] test ray::tests::test_brewster_complementary ... ok
[INFO] [stdout] test ray::system::tests::test_system_properties_single_thin_lens ... ok
[INFO] [stdout] test ray::tests::test_complex_medium_dielectric ... ok
[INFO] [stdout] test ray::tests::test_beer_lambert_always_positive ... ok
[INFO] [stdout] test ray::tests::test_beer_lambert_no_absorption ... ok
[INFO] [stdout] test ray::tests::test_critical_angle_diamond_has_small_critical_angle ... ok
[INFO] [stdout] test ray::tests::test_critical_angle_glass_air ... ok
[INFO] [stdout] test ray::tests::test_deg_to_rad_known_values ... ok
[INFO] [stdout] test ray::tests::test_diamond_high_reflectance ... ok
[INFO] [stdout] test ray::tests::test_fresnel_complex_dielectric_matches_real_at_angle ... ok
[INFO] [stdout] test ray::tests::test_fresnel_complex_grazing_high_reflectance ... ok
[INFO] [stdout] test ray::tests::test_fresnel_complex_range_valid ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_complex_aluminum ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_air_glass ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_complex_dielectric_matches_real ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_complex_silver ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_complex_gold ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_range_0_to_1 ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_same_medium ... ok
[INFO] [stdout] test ray::tests::test_fresnel_s_and_p_at_brewster ... ok
[INFO] [stdout] test ray::tests::test_fresnel_s_complex_normal_incidence_matches ... ok
[INFO] [stdout] test ray::tests::test_fresnel_unpolarized_high_angle ... ok
[INFO] [stdout] test ray::tests::test_fresnel_unpolarized_low_angle ... ok
[INFO] [stdout] test ray::tests::test_fresnel_unpolarized_monotonic_increase ... ok
[INFO] [stdout] test ray::tests::test_higher_index_contrast_means_more_reflection ... ok
[INFO] [stdout] test ray::tests::test_medium_custom_exactly_one ... ok
[INFO] [stdout] test ray::tests::test_medium_custom_invalid ... ok
[INFO] [stdout] test ray::tests::test_medium_ordering ... ok
[INFO] [stdout] test ray::tests::test_medium_custom_valid ... ok
[INFO] [stdout] test ray::tests::test_critical_angle_requires_n1_gt_n2 ... ok
[INFO] [stdout] test ray::tests::test_deg_rad_roundtrip ... ok
[INFO] [stdout] test ray::tests::test_fresnel_complex_metal_always_high ... ok
[INFO] [stdout] test ray::tests::test_fresnel_normal_symmetric ... ok
[INFO] [stdout] test ray::tests::test_medium_presets_valid ... ok
[INFO] [stdout] test ray::tests::test_reflect_2d_normal_incidence ... ok
[INFO] [stdout] test ray::tests::test_reflect_3d ... ok
[INFO] [stdout] test ray::tests::test_reflect_3d_preserves_magnitude ... ok
[INFO] [stdout] test ray::tests::test_reflect_angle ... ok
[INFO] [stdout] test ray::tests::test_medium_serializes ... ok
[INFO] [stdout] test ray::tests::test_reflect_2d ... ok
[INFO] [stdout] test ray::tests::test_reflect_3d_diagonal ... ok
[INFO] [stdout] test ray::tests::test_refract_3d_normal_incidence ... ok
[INFO] [stdout] test ray::tests::test_refract_3d_reversible ... ok
[INFO] [stdout] test ray::tests::test_refract_3d_same_medium ... ok
[INFO] [stdout] test ray::tests::test_refract_3d_tir ... ok
[INFO] [stdout] test ray::tests::test_snell_3d_normal_incidence_matches_fresnel_normal ... ok
[INFO] [stdout] test ray::tests::test_snell_3d_grazing_angle_high_reflectance ... ok
[INFO] [stdout] test ray::tests::test_snell_3d_returns_reflectance ... ok
[INFO] [stdout] test ray::tests::test_snell_3d_tir ... ok
[INFO] [stdout] test ray::tests::test_snell_at_critical_angle ... ok
[INFO] [stdout] test ray::tests::test_snell_air_to_glass ... ok
[INFO] [stdout] test ray::tests::test_snell_multiple_materials ... ok
[INFO] [stdout] test ray::tests::test_snell_bends_toward_normal_entering_denser ... ok
[INFO] [stdout] test ray::tests::test_snell_normal_incidence ... ok
[INFO] [stdout] test ray::tests::test_snell_same_medium_no_bending ... ok
[INFO] [stdout] test ray::tests::test_snell_symmetry ... ok
[INFO] [stdout] test ray::trace::tests::test_polarized_trace_multi_surface ... ok
[INFO] [stdout] test ray::tests::test_snell_tir ... ok
[INFO] [stdout] test ray::trace::tests::test_polarized_trace_normal_incidence ... ok
[INFO] [stdout] test ray::trace::tests::test_polarized_trace_oblique ... ok
[INFO] [stdout] test ray::trace::tests::test_trace_aperture_blocks_ray ... ok
[INFO] [stdout] test ray::trace::tests::test_polarized_trace_transmittance_range ... ok
[INFO] [stdout] test ray::trace::tests::test_trace_off_axis_converges ... ok
[INFO] [stdout] test ray::trace::tests::test_trace_plane_surface ... ok
[INFO] [stdout] test ray::trace::tests::test_trace_sequential_biconvex_lens ... ok
[INFO] [stdout] test ray::trace::tests::test_trace_sequential_empty ... ok
[INFO] [stdout] test ray::trace::tests::test_trace_sphere_surface ... ok
[INFO] [stdout] test spectral::cie::tests::test_all_illuminants_positive ... ok
[INFO] [stdout] test spectral::cie::tests::test_all_observers_produce_positive_xyz_for_d65 ... ok
[INFO] [stdout] test spectral::cie::tests::test_all_illuminants_to_xyz_positive ... ok
[INFO] [stdout] test spectral::cie::tests::test_cct_d65 ... ok
[INFO] [stdout] test spectral::cie::tests::test_cct_warm ... ok
[INFO] [stdout] test ray::tests::test_refract_3d_bends_toward_normal ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_1964_all_non_negative ... ok
[INFO] [stdout] test ray::tests::test_refract_3d_preserves_tangent_plane ... ok
[INFO] [stdout] test ray::tests::test_refract_3d_snell_law_holds ... ok
[INFO] [stdout] test ray::tests::test_snell_bends_away_from_normal_leaving_denser ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_1964_table_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_1964_y_peaks_near_555 ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_2015_10deg_table_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_2015_2deg_starts_zero ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_cmf_all_non_negative ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_cmf_interpolation ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_cmf_interpolation_midpoint ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_cmf_out_of_range ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_cmf_peak_y_at_555nm ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_cmf_table_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_cri_d65_perfect ... ok
[INFO] [stdout] test spectral::cie::tests::test_cri_fluorescent_lower_than_daylight ... ok
[INFO] [stdout] test spectral::cie::tests::test_cri_range ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_d50_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_d65_is_borrowed ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_a_warm ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_d65_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_d65_normalized_at_560 ... ok
[INFO] [stdout] test spectral::cie::tests::test_cie_2015_2deg_table_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_cri_blackbody_high ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_d50_is_borrowed ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_f2_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_observer_enum_returns_correct_table ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_blackbody_all_positive ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_blackbody_is_owned ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_f11_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_cow_clone_borrowed_stays_borrowed ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_cow_to_xyz_identical ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_f11_is_borrowed ... ok
[INFO] [stdout] test spectral::cie::tests::test_illuminant_f2_is_borrowed ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_new_owns ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_out_of_range ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_interpolation ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_blackbody_length ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_to_srgb_blackbody_reasonable ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_from_static_borrows ... ok
[INFO] [stdout] test spectral::cie::tests::test_srgb_gamma_roundtrip ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_cow_serde_roundtrip ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_to_xyz_observer_default_matches ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_to_xyz_positive ... ok
[INFO] [stdout] test spectral::cie::tests::test_srgb_gamma_monotonic ... ok
[INFO] [stdout] test spectral::cie::tests::test_xyz_to_srgb_black ... ok
[INFO] [stdout] test spectral::cie::tests::test_xyz_to_srgb_white ... ok
[INFO] [stdout] test spectral::cie::tests::test_xyz_to_xyy_black ... ok
[INFO] [stdout] test spectral::photometry::tests::test_scotopic_higher_blue_sensitivity ... ok
[INFO] [stdout] test spectral::cie::tests::test_spd_to_xyz_1964_differs_from_1931 ... ok
[INFO] [stdout] test spectral::photometry::tests::test_v_lambda_photopic_range ... ok
[INFO] [stdout] test spectral::photometry::tests::test_v_lambda_photopic_peak ... ok
[INFO] [stdout] test spectral::cie::tests::test_xyz_to_xyy_roundtrip ... ok
[INFO] [stdout] test spectral::photometry::tests::test_luminous_efficacy_d65 ... ok
[INFO] [stdout] test spectral::photometry::tests::test_luminous_efficacy_max_at_555 ... ok
[INFO] [stdout] test spectral::cie::tests::test_xyz_to_xyy_white ... ok
[INFO] [stdout] test spectral::photometry::tests::test_luminous_flux_scotopic_positive ... ok
[INFO] [stdout] test spectral::photometry::tests::test_luminous_flux_d65_positive ... ok
[INFO] [stdout] test spectral::tests::test_planck_constant_value ... ok
[INFO] [stdout] test spectral::tests::test_boltzmann_constant_value ... ok
[INFO] [stdout] test spectral::tests::test_color_temp_candle ... ok
[INFO] [stdout] test spectral::tests::test_color_temp_cool ... ok
[INFO] [stdout] test spectral::tests::test_photon_energy_joules_tiny ... ok
[INFO] [stdout] test spectral::tests::test_color_temp_daylight ... ok
[INFO] [stdout] test error::tests::test_invalid_parameter ... ok
[INFO] [stdout] test spectral::tests::test_color_temp_range_produces_valid_rgb ... ok
[INFO] [stdout] test spectral::tests::test_color_temp_warm ... ok
[INFO] [stdout] test spectral::tests::test_photon_energy_blue_greater_than_red ... ok
[INFO] [stdout] test spectral::tests::test_photon_energy_ev_positive ... ok
[INFO] [stdout] test spectral::tests::test_photon_energy_visible ... ok
[INFO] [stdout] test spectral::tests::test_planck_extreme_low_temperature ... ok
[INFO] [stdout] test spectral::photometry::tests::test_v_lambda_scotopic_peak_near_507 ... ok
[INFO] [stdout] test spectral::tests::test_planck_extreme_high_temperature ... ok
[INFO] [stdout] test spectral::tests::test_planck_hotter_means_more_radiance ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_boundary ... ok
[INFO] [stdout] test spectral::tests::test_planck_radiance_peaks_at_wien ... ok
[INFO] [stdout] test spectral::tests::test_planck_radiance_positive ... ok
[INFO] [stdout] test spectral::tests::test_planck_wien_approximation_regime ... ok
[INFO] [stdout] test spectral::tests::test_planck_zero_temperature ... ok
[INFO] [stdout] test spectral::tests::test_rgb_clamp ... ok
[INFO] [stdout] test spectral::tests::test_rgb_clamp_already_valid ... ok
[INFO] [stdout] test spectral::tests::test_rgb_luminance ... ok
[INFO] [stdout] test spectral::tests::test_rgb_luminance_coefficients_sum_to_one ... ok
[INFO] [stdout] test spectral::tests::test_rgb_serde_roundtrip ... ok
[INFO] [stdout] test spectral::tests::test_rgb_to_u8 ... ok
[INFO] [stdout] test spectral::tests::test_rgb_to_u8_clamps_overrange ... ok
[INFO] [stdout] test spectral::tests::test_shorter_wavelength_higher_frequency ... ok
[INFO] [stdout] test spectral::tests::test_speed_of_light_value ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_to_rgb_green ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_to_rgb_red ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_to_rgb_yellow ... ok
[INFO] [stdout] test spectral::tests::test_wien_peak_hot ... ok
[INFO] [stdout] test spectral::tests::test_wien_inverse_proportionality ... ok
[INFO] [stdout] test spectral::tests::test_wien_peak_sun ... ok
[INFO] [stdout] test wave::diffraction::tests::test_ar_quarter_wave_thickness ... ok
[INFO] [stdout] test wave::diffraction::tests::test_coating_reflectance_at_design_wavelength ... ok
[INFO] [stdout] test wave::diffraction::tests::test_coating_reflectance_varies_with_wavelength ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fraunhofer_1d_uniform_aperture ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fraunhofer_rect_central_max ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fraunhofer_rect_separable ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fraunhofer_1d_non_negative ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_edge_falloff ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fraunhofer_rect_decreases_off_axis ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_frequency_roundtrip ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_c_known_value ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_to_rgb_blue ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_c_converges_to_half ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_to_rgb_cyan ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_c_odd_function ... ok
[INFO] [stdout] test wave::diffraction::tests::test_ar_ideal_index ... ok
[INFO] [stdout] test wave::diffraction::tests::test_coating_reflectance_range ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_edge_deep_shadow ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_c_at_zero ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_out_of_range ... ok
[INFO] [stdout] test spectral::tests::test_wavelength_to_rgb_all_components_valid ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_edge_illuminated ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_edge_shadow_boundary ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_number_near_field ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_parameter ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_s_at_zero ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_s_known_value ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_s_odd_function ... ok
[INFO] [stdout] test wave::diffraction::tests::test_huygens_fresnel_1d_peak_on_axis ... ok
[INFO] [stdout] test wave::diffraction::tests::test_huygens_fresnel_1d_positive ... ok
[INFO] [stdout] test wave::diffraction::tests::test_multilayer_no_layers ... ok
[INFO] [stdout] test wave::diffraction::tests::test_multilayer_reflectance_range ... ok
[INFO] [stdout] test wave::diffraction::tests::test_tmm_bare_surface_at_angle ... ok
[INFO] [stdout] test wave::diffraction::tests::test_multilayer_two_layer_valid ... ok
[INFO] [stdout] test wave::diffraction::tests::test_tmm_reflectance_range ... ok
[INFO] [stdout] test wave::diffraction::tests::test_tmm_energy_conservation ... ok
[INFO] [stdout] test wave::diffraction::tests::test_tmm_sp_differ_at_oblique ... ok
[INFO] [stdout] test wave::diffraction::tests::test_vcoat_ideal_zero_reflectance ... ok
[INFO] [stdout] test wave::diffraction::tests::test_tmm_sp_equal_at_normal ... ok
[INFO] [stdout] test wave::diffraction::tests::test_vcoat_mgf2_on_glass ... ok
[INFO] [stdout] test wave::pattern::tests::test_diffraction_2d_non_power_of_2 ... ok
[INFO] [stdout] test wave::pattern::tests::test_diffraction_2d_dimensions ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_number_far_field ... ok
[INFO] [stdout] test wave::pattern::tests::test_interference_all_non_negative ... ok
[INFO] [stdout] test wave::pattern::tests::test_interference_single_source ... ok
[INFO] [stdout] test wave::pattern::tests::test_interference_two_sources_fringes ... ok
[INFO] [stdout] test wave::pattern::tests::test_fft_two_elements ... ok
[INFO] [stdout] test wave::pattern::tests::test_fft_parseval ... ok
[INFO] [stdout] test wave::diffraction::tests::test_fresnel_s_converges_to_half ... ok
[INFO] [stdout] test wave::pattern::tests::test_pattern_max_intensity ... ok
[INFO] [stdout] test wave::diffraction::tests::test_multilayer_single_layer_matches_coating ... ok
[INFO] [stdout] test wave::diffraction::tests::test_tmm_normal_matches_simple ... ok
[INFO] [stdout] test wave::pattern::tests::test_diffraction_circular_center_brightest ... ok
[INFO] [stdout] test wave::pattern::tests::test_fft_roundtrip ... ok
[INFO] [stdout] test wave::pattern::tests::test_diffraction_2d_all_non_negative ... ok
[INFO] [stdout] test wave::pattern::tests::test_diffraction_circular_symmetric ... ok
[INFO] [stdout] test wave::pattern::tests::test_diffraction_2d_center_peak ... ok
[INFO] [stdout] test wave::pattern::tests::test_fft_single_element ... ok
[INFO] [stdout] test wave::pattern::tests::test_pattern_normalized_zero ... ok
[INFO] [stdout] test wave::polarization::tests::test_birefringence_magnitude ... ok
[INFO] [stdout] test wave::polarization::tests::test_birefringent_mueller ... ok
[INFO] [stdout] test wave::pattern::tests::test_pattern_normalized ... ok
[INFO] [stdout] test wave::pattern::tests::test_psf_diffraction_limited ... ok
[INFO] [stdout] test wave::pattern::tests::test_spectrum_strip_count ... ok
[INFO] [stdout] test wave::pattern::tests::test_spectrum_strip_custom_range ... ok
[INFO] [stdout] test wave::pattern::tests::test_psf_aberrated_broader ... ok
[INFO] [stdout] test wave::pattern::tests::test_spectrum_strip_red_end ... ok
[INFO] [stdout] test wave::pattern::tests::test_interference_constructive ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_identity ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_multiply_identity ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_half_wave_flips_s2_s3 ... ok
[INFO] [stdout] test wave::pattern::tests::test_psf_perfect_wavefront ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_horizontal_polarizer_blocks_vertical ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_horizontal_polarizer_passes_horizontal ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_polarizer_arbitrary_angle ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_quarter_wave_h_to_circular ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_retarder_pi_is_half_wave ... ok
[INFO] [stdout] test wave::pattern::tests::test_spectrum_strip_range ... ok
[INFO] [stdout] test wave::polarization::tests::test_all_presets_valid ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_horizontal_polarizer_halves_unpolarized ... ok
[INFO] [stdout] test wave::pattern::tests::test_spectrum_strip_blue_start ... ok
[INFO] [stdout] test wave::polarization::tests::test_quarter_wave_half_wave_relationship ... ok
[INFO] [stdout] test wave::polarization::tests::test_quartz_positive_birefringence ... ok
[INFO] [stdout] test wave::polarization::tests::test_retardation_quarter_wave ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_circular ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_dop_partial ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_ellipticity_circular ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_orientation_45 ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_orientation_horizontal ... ok
[INFO] [stdout] test spectral::cie::tests::test_linear_srgb_roundtrip ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_retarder_zero_is_identity ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_rotation_preserves_intensity ... ok
[INFO] [stdout] test wave::polarization::tests::test_retardation_half_wave ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_horizontal ... ok
[INFO] [stdout] test wave::tests::test_airy_always_non_negative ... ok
[INFO] [stdout] test wave::tests::test_airy_central_maximum ... ok
[INFO] [stdout] test wave::tests::test_airy_first_zero_location ... ok
[INFO] [stdout] test wave::tests::test_airy_scales_with_i0 ... ok
[INFO] [stdout] test wave::tests::test_bessel_j1_continuity_at_boundary ... ok
[INFO] [stdout] test wave::tests::test_bessel_j1_at_zero ... ok
[INFO] [stdout] test wave::tests::test_bessel_j1_known_values ... ok
[INFO] [stdout] test wave::tests::test_bessel_j1_odd_symmetry ... ok
[INFO] [stdout] test wave::tests::test_coherence_length_narrower_bandwidth_longer ... ok
[INFO] [stdout] test wave::tests::test_coherence_length_white_light ... ok
[INFO] [stdout] test wave::tests::test_coherence_ratio ... ok
[INFO] [stdout] test wave::tests::test_constructive_destructive_mutual_exclusion ... ok
[INFO] [stdout] test wave::tests::test_coherence_time_positive ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_vertical ... ok
[INFO] [stdout] test wave::tests::test_constructive_interference ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_zero_intensity ... ok
[INFO] [stdout] test wave::tests::test_destructive_interference ... ok
[INFO] [stdout] test wave::tests::test_airy_decreases_off_axis ... ok
[INFO] [stdout] test wave::tests::test_coherence_area_increases_with_distance ... ok
[INFO] [stdout] test wave::tests::test_double_slit_central ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_retarder_halfpi_is_quarter_wave ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_ellipticity_linear ... ok
[INFO] [stdout] test wave::polarization::tests::test_stokes_unpolarized ... ok
[INFO] [stdout] test wave::tests::test_bessel_j1_large_argument ... ok
[INFO] [stdout] test wave::tests::test_double_slit_greater_than_single_at_center ... ok
[INFO] [stdout] test wave::tests::test_fp_finesse ... ok
[INFO] [stdout] test wave::tests::test_fp_finesse_coefficient ... ok
[INFO] [stdout] test wave::tests::test_fp_finesse_increases_with_reflectance ... ok
[INFO] [stdout] test wave::tests::test_fp_fsr ... ok
[INFO] [stdout] test wave::tests::test_fp_fsr_thicker_cavity_narrower ... ok
[INFO] [stdout] test wave::tests::test_fp_fsr_wavelength ... ok
[INFO] [stdout] test wave::tests::test_fp_resolving_power ... ok
[INFO] [stdout] test wave::tests::test_fp_resolving_power_increases_with_reflectance ... ok
[INFO] [stdout] test wave::tests::test_fp_transmittance_at_resonance ... ok
[INFO] [stdout] test wave::tests::test_fp_transmittance_low_reflectance_broad ... ok
[INFO] [stdout] test wave::tests::test_fp_transmittance_range ... ok
[INFO] [stdout] test wave::tests::test_double_slit_non_negative ... ok
[INFO] [stdout] test wave::tests::test_fp_finesse_coefficient_zero ... ok
[INFO] [stdout] test wave::tests::test_coherence_length_laser ... ok
[INFO] [stdout] test wave::tests::test_grating_maxima_limited_by_sin ... ok
[INFO] [stdout] test wave::tests::test_grating_maxima_multiple_orders ... ok
[INFO] [stdout] test wave::tests::test_interference_constructive_max ... ok
[INFO] [stdout] test wave::tests::test_interference_destructive_zero ... ok
[INFO] [stdout] test wave::tests::test_interference_single_wave ... ok
[INFO] [stdout] test wave::tests::test_interference_unequal_amplitudes ... ok
[INFO] [stdout] test wave::tests::test_jones_to_stokes_circular_right ... ok
[INFO] [stdout] test wave::tests::test_jones_to_stokes_degree_of_polarization ... ok
[INFO] [stdout] test wave::tests::test_jones_to_stokes_circular_left ... ok
[INFO] [stdout] test wave::tests::test_jones_to_stokes_intensity_preserved ... ok
[INFO] [stdout] test wave::tests::test_jones_to_stokes_vertical ... ok
[INFO] [stdout] test wave::tests::test_malus_law_30_degrees ... ok
[INFO] [stdout] test wave::tests::test_jones_to_stokes_horizontal ... ok
[INFO] [stdout] test wave::tests::test_grating_maxima_zeroth_order ... ok
[INFO] [stdout] test wave::tests::test_grating_maxima_symmetric ... ok
[INFO] [stdout] test wave::tests::test_malus_law_aligned ... ok
[INFO] [stdout] test wave::tests::test_malus_law_45 ... ok
[INFO] [stdout] test wave::tests::test_path_to_phase_half_wavelength ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_chain_two_polarizers ... ok
[INFO] [stdout] test wave::polarization::tests::test_mueller_crossed_polarizers_zero ... ok
[INFO] [stdout] test wave::tests::test_polarization_circular_left ... ok
[INFO] [stdout] test wave::tests::test_polarization_circular_right ... ok
[INFO] [stdout] test wave::tests::test_polarization_horizontal ... ok
[INFO] [stdout] test wave::tests::test_polarization_through_aligned ... ok
[INFO] [stdout] test wave::tests::test_malus_law_60_degrees ... ok
[INFO] [stdout] test wave::tests::test_polarization_serde_roundtrip ... ok
[INFO] [stdout] test wave::polarization::tests::test_calcite_negative_birefringence ... ok
[INFO] [stdout] test wave::tests::test_path_to_phase ... ok
[INFO] [stdout] test wave::tests::test_polarization_vertical ... ok
[INFO] [stdout] test wave::tests::test_rayleigh_criterion ... ok
[INFO] [stdout] test wave::tests::test_polarization_through_crossed ... ok
[INFO] [stdout] test wave::tests::test_rayleigh_larger_aperture_better ... ok
[INFO] [stdout] test wave::tests::test_single_slit_central_max ... ok
[INFO] [stdout] test wave::tests::test_malus_law_crossed ... ok
[INFO] [stdout] test wave::tests::test_single_slit_first_minimum ... ok
[INFO] [stdout] test wave::tests::test_single_slit_scales_with_i0 ... ok
[INFO] [stdout] test wave::tests::test_spatial_coherence_angle ... ok
[INFO] [stdout] test wave::tests::test_malus_law_scales_with_intensity ... ok
[INFO] [stdout] test wave::tests::test_path_to_phase_zero ... ok
[INFO] [stdout] test wave::tests::test_single_slit_decreases_off_axis ... ok
[INFO] [stdout] test wave::tests::test_single_slit_always_non_negative ... ok
[INFO] [stdout] test wave::tests::test_thin_film_range ... ok
[INFO] [stdout] test wave::tests::test_thin_film_varies_with_wavelength ... ok
[INFO] [stdout] test wave::zernike::tests::test_coma_symmetry ... ok
[INFO] [stdout] test wave::zernike::tests::test_noll_first_terms ... ok
[INFO] [stdout] test wave::zernike::tests::test_radial_defocus ... ok
[INFO] [stdout] test wave::zernike::tests::test_noll_roundtrip ... ok
[INFO] [stdout] test wave::zernike::tests::test_radial_spherical ... ok
[INFO] [stdout] test wave::zernike::tests::test_radial_tilt ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_flat ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_strehl_marechal ... ok
[INFO] [stdout] test wave::zernike::tests::test_radial_invalid_nm ... ok
[INFO] [stdout] test wave::zernike::tests::test_radial_piston ... ok
[INFO] [stdout] test wave::zernike::tests::test_zernike_piston ... ok
[INFO] [stdout] test wave::zernike::tests::test_named_aberrations ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_rms ... ok
[INFO] [stdout] test wave::zernike::tests::test_zernike_tilt_y ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_to_grid ... ok
[INFO] [stdout] test wave::zernike::tests::test_zernike_outside_pupil ... ok
[INFO] [stdout] test wave::zernike::tests::test_zernike_defocus ... ok
[INFO] [stdout] test wave::tests::test_thin_film_quarter_wave ... ok
[INFO] [stdout] test wave::zernike::tests::test_zernike_tilt_x ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_pv ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_strehl_diffraction_limited ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_defocus ... ok
[INFO] [stdout] test wave::zernike::tests::test_wavefront_rms_excludes_piston_tilt ... ok
[INFO] [stdout] test wave::zernike::tests::test_zernike_orthogonality_low_order ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 577 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.05s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests prakash
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test src/spectral/mod.rs - spectral::wavelength_to_rgb (line 85) ... ok
[INFO] [stdout] test src/wave/zernike.rs - wave::zernike::zernike (line 88) ... ok
[INFO] [stdout] test src/ray/mod.rs - ray::snell (line 110) ... ok
[INFO] [stdout] test src/ray/fresnel.rs - ray::fresnel::fresnel_normal (line 67) ... ok
[INFO] [stdout] test src/wave/mod.rs - wave::interference_intensity (line 13) ... ok
[INFO] [stdout] test src/lens.rs - lens::thin_lens_image_distance (line 13) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 0.89s; merged doctests compilation took 0.87s
[INFO] running `Command { std: "docker" "inspect" "867815de3e4e0440feb1593c7cafd736474b3119d161e815b6415d2e4efd77f1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "867815de3e4e0440feb1593c7cafd736474b3119d161e815b6415d2e4efd77f1", kill_on_drop: false }`
[INFO] [stdout] 867815de3e4e0440feb1593c7cafd736474b3119d161e815b6415d2e4efd77f1
