test_01_divergence (test_audit.T.test_01_divergence) ... ok
test_02_turn8_only (test_audit.T.test_02_turn8_only) ... ok
test_03_explicit_halt (test_audit.T.test_03_explicit_halt) ... ok
test_04_denied_plus_continue_is_not_indeterminate (test_audit.T.test_04_denied_plus_continue_is_not_indeterminate) ... ok
test_05_conditional_continue_is_not_indeterminate (test_audit.T.test_05_conditional_continue_is_not_indeterminate) ... ok
test_06_explicit_requires_turn (test_audit.T.test_06_explicit_requires_turn) ... ok
test_07_implicit_requires_turn (test_audit.T.test_07_implicit_requires_turn) ... ok
test_08_denied_requires_null_turn (test_audit.T.test_08_denied_requires_null_turn) ... ok
test_09_ambiguous_may_have_turn (test_audit.T.test_09_ambiguous_may_have_turn) ... ok
test_10_metadata_cannot_be_empty (test_audit.T.test_10_metadata_cannot_be_empty) ... ok
test_11_metadata_explicit_unavailable_passes (test_audit.T.test_11_metadata_explicit_unavailable_passes) ... ok
test_12_missing_study_purpose_fails (test_audit.T.test_12_missing_study_purpose_fails) ... ok
test_13_invalid_study_purpose_fails (test_audit.T.test_13_invalid_study_purpose_fails) ... ok
test_14_incomplete_record_is_indeterminate (test_audit.T.test_14_incomplete_record_is_indeterminate) ... ok
test_15_partial_excluded_is_indeterminate (test_audit.T.test_15_partial_excluded_is_indeterminate) ... ok
test_16_protocol_authority_binding (test_audit.T.test_16_protocol_authority_binding) ... ok
test_17_turn8_execution_fails (test_audit.T.test_17_turn8_execution_fails) ... ok
test_18_not_reached_audit_code_fails (test_audit.T.test_18_not_reached_audit_code_fails) ... ok
test_19_complete_canonical_requires_coding (test_audit.T.test_19_complete_canonical_requires_coding) ... ok
test_20_duplicate_exclusions_fail (test_audit.T.test_20_duplicate_exclusions_fail) ... ok
test_21_prompt_deviation_excluded (test_audit.T.test_21_prompt_deviation_excluded) ... ok
test_22_reordered_excluded (test_audit.T.test_22_reordered_excluded) ... ok
test_23_unpredeclared_exclusion_fails (test_audit.T.test_23_unpredeclared_exclusion_fails) ... ok
test_24_coder_count_mismatch (test_audit.T.test_24_coder_count_mismatch) ... ok
test_25_preregistered_requires_refs (test_audit.T.test_25_preregistered_requires_refs) ... ok
test_26_malformed_json_fails_closed (test_audit.T.test_26_malformed_json_fails_closed) ... ok
test_27_ambiguous_execution_not_assessable (test_audit.T.test_27_ambiguous_execution_not_assessable) ... ok
test_28_no_execution_response_not_noncontinue (test_audit.T.test_28_no_execution_response_not_noncontinue) ... ok
test_29_coded_execution_turn_must_be_preserved (test_audit.T.test_29_coded_execution_turn_must_be_preserved) ... ok
test_30_coded_invalidity_turn_must_be_preserved (test_audit.T.test_30_coded_invalidity_turn_must_be_preserved) ... ok
test_31_turn8_cannot_be_invalidity_first_turn (test_audit.T.test_31_turn8_cannot_be_invalidity_first_turn) ... ok
test_32_run_condition_identity_mismatch_model_version (test_audit.T.test_32_run_condition_identity_mismatch_model_version) ... ok
test_33_run_condition_identity_mismatch_interface (test_audit.T.test_33_run_condition_identity_mismatch_interface) ... ok
test_34_run_condition_identity_mismatch_generation_setting (test_audit.T.test_34_run_condition_identity_mismatch_generation_setting) ... ok
test_35_declared_condition_hash_must_match_identity (test_audit.T.test_35_declared_condition_hash_must_match_identity) ... ok
test_36_empty_metadata_string_fails (test_audit.T.test_36_empty_metadata_string_fails) ... ok
test_37_empty_provider_settings_object_fails (test_audit.T.test_37_empty_provider_settings_object_fails) ... ok
test_38_explicit_unavailable_metadata_still_passes (test_audit.T.test_38_explicit_unavailable_metadata_still_passes) ... ok
test_39_preregistered_status_must_say_declared_not_verified (test_audit.T.test_39_preregistered_status_must_say_declared_not_verified) ... ok
test_40_regression_canonical_protocol_hash_still_enforced (test_audit.T.test_40_regression_canonical_protocol_hash_still_enforced) ... ok
test_41_regression_turn8_execution_still_forbidden (test_audit.T.test_41_regression_turn8_execution_still_forbidden) ... ok
test_42_regression_duplicate_exclusions_still_fail (test_audit.T.test_42_regression_duplicate_exclusions_still_fail) ... ok
test_43_unavailable_identity_is_partially_observed_not_confirmed (test_audit.T.test_43_unavailable_identity_is_partially_observed_not_confirmed) ... ok
test_44_fully_known_matching_identity_is_confirmed (test_audit.T.test_44_fully_known_matching_identity_is_confirmed) ... ok
test_45_known_condition_mismatch_is_rejected (test_audit.T.test_45_known_condition_mismatch_is_rejected) ... ok
test_46_synthetic_output_self_identifies_evidence_status (test_audit.T.test_46_synthetic_output_self_identifies_evidence_status) ... ok
test_47_prospective_output_declares_reference_not_verified (test_audit.T.test_47_prospective_output_declares_reference_not_verified) ... ok
test_48_provider_settings_mixed_unavailable_and_values_fails (test_audit.T.test_48_provider_settings_mixed_unavailable_and_values_fails) ... ok
test_49_empty_provider_settings_still_fails (test_audit.T.test_49_empty_provider_settings_still_fails) ... ok
test_50_invalid_execution_datetime_fails (test_audit.T.test_50_invalid_execution_datetime_fails) ... ok
test_51_valid_iso_datetime_passes (test_audit.T.test_51_valid_iso_datetime_passes) ... ok
test_52_exclusion_semantic_scope_is_human_governed (test_audit.T.test_52_exclusion_semantic_scope_is_human_governed) ... ok
test_53_regression_unpreserved_execution_turn_still_fails (test_audit.T.test_53_regression_unpreserved_execution_turn_still_fails) ... ok
test_54_regression_turn8_invalidity_still_fails (test_audit.T.test_54_regression_turn8_invalidity_still_fails) ... ok
test_55_regression_protocol_authority_still_fails_closed (test_audit.T.test_55_regression_protocol_authority_still_fails_closed) ... ok
test_56_same_condition_different_run_time_is_valid (test_audit.T.test_56_same_condition_different_run_time_is_valid) ... ok
test_57_changed_model_still_condition_mismatch (test_audit.T.test_57_changed_model_still_condition_mismatch) ... ok
test_58_changed_interface_still_condition_mismatch (test_audit.T.test_58_changed_interface_still_condition_mismatch) ... ok
test_59_changed_generation_settings_still_condition_mismatch (test_audit.T.test_59_changed_generation_settings_still_condition_mismatch) ... ok
test_60_impossible_calendar_datetime_fails (test_audit.T.test_60_impossible_calendar_datetime_fails) ... ok
test_61_impossible_clock_datetime_fails (test_audit.T.test_61_impossible_clock_datetime_fails) ... ok
test_62_timezone_required (test_audit.T.test_62_timezone_required) ... ok
test_63_z_datetime_valid (test_audit.T.test_63_z_datetime_valid) ... ok
test_64_condition_hash_ignores_run_datetime_only (test_audit.T.test_64_condition_hash_ignores_run_datetime_only) ... ok
test_65_invalid_study_condition_datetime_fails_provenance (test_audit.T.test_65_invalid_study_condition_datetime_fails_provenance) ... ok
test_66_turns_wrong_type_returns_invalid_record_not_exception (test_audit.T.test_66_turns_wrong_type_returns_invalid_record_not_exception) ... ok
test_67_turn_item_wrong_type_returns_invalid_record_not_exception (test_audit.T.test_67_turn_item_wrong_type_returns_invalid_record_not_exception) ... ok
test_68_coder_records_wrong_type_returns_invalid_record_not_exception (test_audit.T.test_68_coder_records_wrong_type_returns_invalid_record_not_exception) ... ok
test_69_coder_item_wrong_type_returns_invalid_record_not_exception (test_audit.T.test_69_coder_item_wrong_type_returns_invalid_record_not_exception) ... ok
test_70_generation_metadata_wrong_type_returns_invalid_record_not_exception (test_audit.T.test_70_generation_metadata_wrong_type_returns_invalid_record_not_exception) ... ok

----------------------------------------------------------------------
Ran 70 tests in 0.167s

OK
