test_alpha_masks_pattern_light_before_exposure (test_cli.CLITests.test_alpha_masks_pattern_light_before_exposure) ... ok
test_bad_baseline_render_does_not_leave_first_output (test_cli.CLITests.test_bad_baseline_render_does_not_leave_first_output) ... ok
test_colliding_output_paths_and_negative_strength_are_rejected (test_cli.CLITests.test_colliding_output_paths_and_negative_strength_are_rejected) ... ok
test_existing_output_is_preserved_before_engine_creation (test_cli.CLITests.test_existing_output_is_preserved_before_engine_creation) ... ok
test_film_options_reach_the_engine_and_the_record (test_cli.CLITests.test_film_options_reach_the_engine_and_the_record) ... ok
test_invalid_input_and_nan_parameters_do_not_persist_output (test_cli.CLITests.test_invalid_input_and_nan_parameters_do_not_persist_output) ... ok
test_list_stocks_needs_no_other_arguments (test_cli.CLITests.test_list_stocks_needs_no_other_arguments) ... ok
test_list_stocks_without_the_engine_explains_the_install (test_cli.CLITests.test_list_stocks_without_the_engine_explains_the_install) ... ok
test_transparent_pattern_matches_baseline_and_records_provenance (test_cli.CLITests.test_transparent_pattern_matches_baseline_and_records_provenance) ... ok
test_alpha_half_adds_half_dose_without_dimming_photo (test_exposure.CombineLogExposuresTests.test_alpha_half_adds_half_dose_without_dimming_photo) ... ok
test_black_is_exact_zero_exposure_floor (test_exposure.CombineLogExposuresTests.test_black_is_exact_zero_exposure_floor) ... ok
test_black_pattern_is_exact_identity (test_exposure.CombineLogExposuresTests.test_black_pattern_is_exact_identity) ... ok
test_combines_linear_layer_exposures_with_ev (test_exposure.CombineLogExposuresTests.test_combines_linear_layer_exposures_with_ev) ... ok
test_complex_and_nonnumeric_arrays_are_rejected (test_exposure.CombineLogExposuresTests.test_complex_and_nonnumeric_arrays_are_rejected) ... ok
test_dose_is_monotonic (test_exposure.CombineLogExposuresTests.test_dose_is_monotonic) ... ok
test_equal_exposures_double_dose_not_log_values (test_exposure.CombineLogExposuresTests.test_equal_exposures_double_dose_not_log_values) ... ok
test_hdr_exposure_is_not_clamped_to_one (test_exposure.CombineLogExposuresTests.test_hdr_exposure_is_not_clamped_to_one) ... ok
test_inputs_are_not_mutated_and_read_only_arrays_work (test_exposure.CombineLogExposuresTests.test_inputs_are_not_mutated_and_read_only_arrays_work) ... ok
test_invalid_alpha_range_is_rejected (test_exposure.CombineLogExposuresTests.test_invalid_alpha_range_is_rejected) ... ok
test_invalid_scalars_and_extreme_ev_are_rejected (test_exposure.CombineLogExposuresTests.test_invalid_scalars_and_extreme_ev_are_rejected) ... ok
test_invalid_shapes_are_rejected (test_exposure.CombineLogExposuresTests.test_invalid_shapes_are_rejected) ... ok
test_nan_and_infinity_in_any_array_are_rejected (test_exposure.CombineLogExposuresTests.test_nan_and_infinity_in_any_array_are_rejected) ... ok
test_omitted_alpha_means_the_dose_is_already_masked (test_exposure.CombineLogExposuresTests.test_omitted_alpha_means_the_dose_is_already_masked) ... ok
test_pattern_one_ev_doubles_pattern_dose (test_exposure.CombineLogExposuresTests.test_pattern_one_ev_doubles_pattern_dose) ... ok
test_photo_ev_applies_when_pattern_is_disabled (test_exposure.CombineLogExposuresTests.test_photo_ev_applies_when_pattern_is_disabled) ... ok
test_singleton_alpha_channel_matches_2d_alpha (test_exposure.CombineLogExposuresTests.test_singleton_alpha_channel_matches_2d_alpha) ... ok
test_transparent_hidden_rgb_has_no_effect_even_if_very_large (test_exposure.CombineLogExposuresTests.test_transparent_hidden_rgb_has_no_effect_even_if_very_large) ... ok
test_unrepresentable_active_exposure_is_rejected (test_exposure.CombineLogExposuresTests.test_unrepresentable_active_exposure_is_rejected) ... ok
test_values_below_floor_are_treated_as_zero_exposure (test_exposure.CombineLogExposuresTests.test_values_below_floor_are_treated_as_zero_exposure) ... ok
test_zero_alpha_is_exact_identity (test_exposure.CombineLogExposuresTests.test_zero_alpha_is_exact_identity) ... ok
test_zero_dose_channels_are_exact_identity (test_exposure.CombineLogExposuresTests.test_zero_dose_channels_are_exact_identity) ... ok
test_zero_strength_is_exact_identity (test_exposure.CombineLogExposuresTests.test_zero_strength_is_exact_identity) ... ok
test_embedded_srgb_is_used_and_invalid_icc_is_rejected (test_image_io.ImageIOTests.test_embedded_srgb_is_used_and_invalid_icc_is_rejected) ... ok
test_exif_orientation_and_long_edge_limit (test_image_io.ImageIOTests.test_exif_orientation_and_long_edge_limit) ... ok
test_hidden_rgb_cannot_bleed_during_pattern_resize (test_image_io.ImageIOTests.test_hidden_rgb_cannot_bleed_during_pattern_resize) ... ok
test_invalid_output_and_unsupported_heic_leave_no_files (test_image_io.ImageIOTests.test_invalid_output_and_unsupported_heic_leave_no_files) ... ok
test_output_embeds_icc_and_will_not_overwrite (test_image_io.ImageIOTests.test_output_embeds_icc_and_will_not_overwrite) ... ok
test_output_files_get_ordinary_permissions (test_image_io.ImageIOTests.test_output_files_get_ordinary_permissions) ... ok
test_pattern_resize_is_linear_light_and_contain_pads_transparently (test_image_io.ImageIOTests.test_pattern_resize_is_linear_light_and_contain_pads_transparently) ... ok
test_resizing_a_hard_edge_adds_no_ringing_dose (test_image_io.ImageIOTests.test_resizing_a_hard_edge_adds_no_ringing_dose) ... ok
test_srgb_roundtrip_and_middle_gray (test_image_io.ImageIOTests.test_srgb_roundtrip_and_middle_gray) ... ok
test_transparent_photo_requires_explicit_flattening (test_image_io.ImageIOTests.test_transparent_photo_requires_explicit_flattening) ... ok
test_hidden_rgb_under_zero_alpha_cannot_reach_the_output (test_spektrafilm_integration.EndToEndCLITests.test_hidden_rgb_under_zero_alpha_cannot_reach_the_output) ... ok
test_more_pattern_dose_never_dims_the_photo_overall (test_spektrafilm_integration.EndToEndCLITests.test_more_pattern_dose_never_dims_the_photo_overall) ... ok
test_real_render_keeps_transparent_pixels_and_prints_flowers (test_spektrafilm_integration.EndToEndCLITests.test_real_render_keeps_transparent_pixels_and_prints_flowers) ... ok
test_slide_film_and_film_look_run_through_the_real_cli (test_spektrafilm_integration.EndToEndCLITests.test_slide_film_and_film_look_run_through_the_real_cli) ... ok
test_alpha_masks_light_before_it_spreads_in_the_film (test_spektrafilm_integration.FilmLookTests.test_alpha_masks_light_before_it_spreads_in_the_film) ... ok
test_area_far_from_pattern_keeps_the_baseline_tone (test_spektrafilm_integration.FilmLookTests.test_area_far_from_pattern_keeps_the_baseline_tone) ... ok
test_grain_appears_and_renders_reproducibly (test_spektrafilm_integration.FilmLookTests.test_grain_appears_and_renders_reproducibly) ... ok
test_metadata_reports_the_mode (test_spektrafilm_integration.FilmLookTests.test_metadata_reports_the_mode) ... ok
test_black_pattern_adds_no_exposure (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_black_pattern_adds_no_exposure) ... ok
test_colored_dose_raises_luminance_within_coupler_chemistry (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_colored_dose_raises_luminance_within_coupler_chemistry) ... ok
test_dose_reads_strongly_over_shadow_and_weakly_over_highlight (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_dose_reads_strongly_over_shadow_and_weakly_over_highlight) ... ok
test_film_exposure_is_proportional_to_light (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_film_exposure_is_proportional_to_light) ... ok
test_masking_before_exposure_equals_masking_after (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_masking_before_exposure_equals_masking_after) ... ok
test_neutral_dose_never_darkens_any_tone (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_neutral_dose_never_darkens_any_tone) ... ok
test_pattern_does_not_change_unexposed_pixels (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_pattern_does_not_change_unexposed_pixels) ... ok
test_pattern_ev_monotonically_increases_layer_exposure (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_pattern_ev_monotonically_increases_layer_exposure) ... ok
test_render_does_not_mutate_input_exposure (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_render_does_not_mutate_input_exposure) ... ok
test_render_handles_dimensions_different_from_last_exposure (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_render_handles_dimensions_different_from_last_exposure) ... ok
test_render_is_finite_deterministic_and_preserves_shape (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_render_is_finite_deterministic_and_preserves_shape) ... ok
test_same_pixel_exposure_is_independent_of_surroundings (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_same_pixel_exposure_is_independent_of_surroundings) ... ok
test_split_run_matches_upstream_end_to_end (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_split_run_matches_upstream_end_to_end) ... ok
test_transparent_pattern_preserves_baseline_render (test_spektrafilm_integration.SpektrafilmIntegrationTests.test_transparent_pattern_preserves_baseline_render) ... ok
test_a_fresh_engine_can_render_before_any_exposure (test_spektrafilm_integration.StockSelectionTests.test_a_fresh_engine_can_render_before_any_exposure) ... ok
test_every_film_keeps_a_rising_neutral_ramp (test_spektrafilm_integration.StockSelectionTests.test_every_film_keeps_a_rising_neutral_ramp) ... ok
test_every_print_stock_renders (test_spektrafilm_integration.StockSelectionTests.test_every_print_stock_renders) ... ok
test_slide_film_is_scanned_directly_and_pattern_light_brightens_it (test_spektrafilm_integration.StockSelectionTests.test_slide_film_is_scanned_directly_and_pattern_light_brightens_it) ... ok
test_spectral_luts_stay_within_one_8bit_level_of_exact_integration (test_spektrafilm_integration.StockSelectionTests.test_spectral_luts_stay_within_one_8bit_level_of_exact_integration) ... ok
test_unusable_stock_choices_are_explained (test_spektrafilm_integration.StockSelectionTests.test_unusable_stock_choices_are_explained) ... ok
test_flower_frame_has_a_clear_center_hidden_color_and_partial_alpha (test_synthetic.SyntheticImageTests.test_flower_frame_has_a_clear_center_hidden_color_and_partial_alpha) ... ok
test_images_are_deterministic (test_synthetic.SyntheticImageTests.test_images_are_deterministic) ... ok
test_landscape_spans_shadow_to_highlight (test_synthetic.SyntheticImageTests.test_landscape_spans_shadow_to_highlight) ... ok

----------------------------------------------------------------------
Ran 73 tests in 14.263s

OK
