test_61_adapter_valid (test_typed_field.HistoricalAdapter.test_61_adapter_valid) ... ok
test_62_adapter_source_hash_recorded (test_typed_field.HistoricalAdapter.test_62_adapter_source_hash_recorded) ... ok
test_63_adapter_does_not_merge_tension (test_typed_field.HistoricalAdapter.test_63_adapter_does_not_merge_tension) ... ok
test_64_adapter_null_stays_unknown (test_typed_field.HistoricalAdapter.test_64_adapter_null_stays_unknown) ... ok
test_65_adapter_zero_stays_observed (test_typed_field.HistoricalAdapter.test_65_adapter_zero_stays_observed) ... ok
test_66_adapter_invalid_hash_rejected (test_typed_field.HistoricalAdapter.test_66_adapter_invalid_hash_rejected) ... ok
test_67_adapter_deterministic (test_typed_field.HistoricalAdapter.test_67_adapter_deterministic) ... ok
test_68_adapter_sensible_projection (test_typed_field.HistoricalAdapter.test_68_adapter_sensible_projection) ... ok
test_69_adapter_preserves_all_cells (test_typed_field.HistoricalAdapter.test_69_adapter_preserves_all_cells) ... ok
test_70_adapter_has_no_added_physics (test_typed_field.HistoricalAdapter.test_70_adapter_has_no_added_physics) ... ok
test_01_valid_scene (test_typed_field.TypedFieldContracts.test_01_valid_scene) ... ok
test_02_canonical_bytes_deterministic (test_typed_field.TypedFieldContracts.test_02_canonical_bytes_deterministic) ... ok
test_03_digest_same_after_axes_cells_observations_reordered (test_typed_field.TypedFieldContracts.test_03_digest_same_after_axes_cells_observations_reordered) ... ok
test_04_source_numeric_value_change_modifies_digest (test_typed_field.TypedFieldContracts.test_04_source_numeric_value_change_modifies_digest) ... ok
test_05_duplicate_cell_rejected (test_typed_field.TypedFieldContracts.test_05_duplicate_cell_rejected) ... ok
test_06_missing_cell_rejected (test_typed_field.TypedFieldContracts.test_06_missing_cell_rejected) ... ok
test_07_extra_cell_rejected (test_typed_field.TypedFieldContracts.test_07_extra_cell_rejected) ... ok
test_08_invalid_coord_rejected (test_typed_field.TypedFieldContracts.test_08_invalid_coord_rejected) ... ok
test_09_bool_grid_rejected (test_typed_field.TypedFieldContracts.test_09_bool_grid_rejected) ... ok
test_10_oversize_grid_rejected (test_typed_field.TypedFieldContracts.test_10_oversize_grid_rejected) ... ok
test_11_duplicate_axis_rejected (test_typed_field.TypedFieldContracts.test_11_duplicate_axis_rejected) ... ok
test_12_axis_unreported_rejected (test_typed_field.TypedFieldContracts.test_12_axis_unreported_rejected) ... ok
test_13_axis_extra_measurement_rejected (test_typed_field.TypedFieldContracts.test_13_axis_extra_measurement_rejected) ... ok
test_14_unknown_axis_rejected (test_typed_field.TypedFieldContracts.test_14_unknown_axis_rejected) ... ok
test_15_observed_missing_evidence_rejected (test_typed_field.TypedFieldContracts.test_15_observed_missing_evidence_rejected) ... ok
test_16_unknown_with_numeric_value_rejected (test_typed_field.TypedFieldContracts.test_16_unknown_with_numeric_value_rejected) ... ok
test_17_unknown_with_no_reason_rejected (test_typed_field.TypedFieldContracts.test_17_unknown_with_no_reason_rejected) ... ok
test_18_not_applicable_with_reason_accepted (test_typed_field.TypedFieldContracts.test_18_not_applicable_with_reason_accepted) ... ok
test_19_numeric_zero_is_legitimate (test_typed_field.TypedFieldContracts.test_19_numeric_zero_is_legitimate) ... ok
test_20_numeric_bool_not_legitimate (test_typed_field.TypedFieldContracts.test_20_numeric_bool_not_legitimate) ... ok
test_21_realization_numeric_bool_rejected (test_typed_field.TypedFieldContracts.test_21_realization_numeric_bool_rejected) ... ok
test_22_nan_rejected (test_typed_field.TypedFieldContracts.test_22_nan_rejected) ... ok
test_23_inf_rejected (test_typed_field.TypedFieldContracts.test_23_inf_rejected) ... ok
test_24_value_outside_domain_rejected (test_typed_field.TypedFieldContracts.test_24_value_outside_domain_rejected) ... ok
test_25_reversed_interval_rejected (test_typed_field.TypedFieldContracts.test_25_reversed_interval_rejected) ... ok
test_26_interval_overflow_rejected (test_typed_field.TypedFieldContracts.test_26_interval_overflow_rejected) ... ok
test_27_interval_pair_valid (test_typed_field.TypedFieldContracts.test_27_interval_pair_valid) ... ok
test_28_category_rejects_new_label (test_typed_field.TypedFieldContracts.test_28_category_rejects_new_label) ... ok
test_29_category_does_not_become_numeric (test_typed_field.TypedFieldContracts.test_29_category_does_not_become_numeric) ... ok
test_30_interval_does_not_become_numeric_midpoint (test_typed_field.TypedFieldContracts.test_30_interval_does_not_become_numeric_midpoint) ... ok
test_31_ratio_axis_domain_requires_zero (test_typed_field.TypedFieldContracts.test_31_ratio_axis_domain_requires_zero) ... ok
test_32_nominal_category_requires_allowed_labels (test_typed_field.TypedFieldContracts.test_32_nominal_category_requires_allowed_labels) ... ok
test_33_schema_unknown (test_typed_field.TypedFieldContracts.test_33_schema_unknown) ... ok
test_34_origin_must_be_constructed (test_typed_field.TypedFieldContracts.test_34_origin_must_be_constructed) ... ok
test_35_unversioned_policy_rejected (test_typed_field.TypedFieldContracts.test_35_unversioned_policy_rejected) ... ok
test_36_wrong_policy_palette_rejected (test_typed_field.TypedFieldContracts.test_36_wrong_policy_palette_rejected) ... ok
test_37_unknown_policy_axis_rejected (test_typed_field.TypedFieldContracts.test_37_unknown_policy_axis_rejected) ... ok
test_38_render_valid_svg (test_typed_field.TypedFieldContracts.test_38_render_valid_svg) ... ok
test_39_svg_repeat_bytes_equal (test_typed_field.TypedFieldContracts.test_39_svg_repeat_bytes_equal) ... ok
test_40_svg_metadata_provenance (test_typed_field.TypedFieldContracts.test_40_svg_metadata_provenance) ... ok
test_41_svg_metadata_rejects_dtd (test_typed_field.TypedFieldContracts.test_41_svg_metadata_rejects_dtd) ... ok
test_42_svg_metadata_rejects_missing (test_typed_field.TypedFieldContracts.test_42_svg_metadata_rejects_missing) ... ok
test_43_svg_unknown_hatch (test_typed_field.TypedFieldContracts.test_43_svg_unknown_hatch) ... ok
test_44_svg_observed_zero_not_hatched (test_typed_field.TypedFieldContracts.test_44_svg_observed_zero_not_hatched) ... ok
test_45_policy_switch_preserves_source (test_typed_field.TypedFieldContracts.test_45_policy_switch_preserves_source) ... ok
test_46_known_interval_preserves_both_ends (test_typed_field.TypedFieldContracts.test_46_known_interval_preserves_both_ends) ... ok
test_47_future_dimension_unobserved_not_zero (test_typed_field.TypedFieldContracts.test_47_future_dimension_unobserved_not_zero) ... ok
test_48_directed_edge_kept_not_symmetrized (test_typed_field.TypedFieldContracts.test_48_directed_edge_kept_not_symmetrized) ... ok
test_49_wrong_relation_numeric_type (test_typed_field.TypedFieldContracts.test_49_wrong_relation_numeric_type) ... ok
test_50_duplicate_directed_relation (test_typed_field.TypedFieldContracts.test_50_duplicate_directed_relation) ... ok
test_51_relation_invalid_axis (test_typed_field.TypedFieldContracts.test_51_relation_invalid_axis) ... ok
test_52_source_altered_when_unknown_flipped (test_typed_field.TypedFieldContracts.test_52_source_altered_when_unknown_flipped) ... ok
test_53_same_weighted_score_unequal_typed_sources (test_typed_field.TypedFieldContracts.test_53_same_weighted_score_unequal_typed_sources) ... ok
test_54_provenance_change_is_semantic_change (test_typed_field.TypedFieldContracts.test_54_provenance_change_is_semantic_change) ... ok
test_55_noncommuting_display_mapping_returns_different_images (test_typed_field.TypedFieldContracts.test_55_noncommuting_display_mapping_returns_different_images) ... ok
test_56_svg_declared_no_physical_validation (test_typed_field.TypedFieldContracts.test_56_svg_declared_no_physical_validation) ... ok
test_57_edge_arrow_is_drawn_and_direction_tagged (test_typed_field.TypedFieldContracts.test_57_edge_arrow_is_drawn_and_direction_tagged) ... ok
test_58_no_arbitrary_script_in_svg (test_typed_field.TypedFieldContracts.test_58_no_arbitrary_script_in_svg) ... ok
test_59_output_metadata_is_independent_of_label_format (test_typed_field.TypedFieldContracts.test_59_output_metadata_is_independent_of_label_format) ... ok
test_60_palette_blend_endpoints (test_typed_field.TypedFieldContracts.test_60_palette_blend_endpoints) ... ok
test_60a_backend_rejects_fabricated_hex (test_typed_field.TypedFieldContracts.test_60a_backend_rejects_fabricated_hex) ... ok
test_60b_backend_rejects_fabricated_edge_geometry (test_typed_field.TypedFieldContracts.test_60b_backend_rejects_fabricated_edge_geometry) ... ok
test_60c_projection_ir_independently_valid (test_typed_field.TypedFieldContracts.test_60c_projection_ir_independently_valid) ... ok
test_60d_backend_rejects_corrupted_status (test_typed_field.TypedFieldContracts.test_60d_backend_rejects_corrupted_status) ... ok

----------------------------------------------------------------------
Ran 74 tests in 0.625s

OK
