test_bad_input_file_duplicate_json_key (test_p20_audit.P20FixtureCase.test_bad_input_file_duplicate_json_key) ... ok
test_cache_modified_even_if_hashes_reissued (test_p20_audit.P20FixtureCase.test_cache_modified_even_if_hashes_reissued) ... ok
test_dag_root_modified_and_resealed (test_p20_audit.P20FixtureCase.test_dag_root_modified_and_resealed) ... FAIL
test_duplicate_memo (test_p20_audit.P20FixtureCase.test_duplicate_memo) ... ok
test_duplicate_source_term (test_p20_audit.P20FixtureCase.test_duplicate_source_term) ... ok
test_empty_source_change_no_pin_silent_success (test_p20_audit.P20FixtureCase.test_empty_source_change_no_pin_silent_success) ... ok
test_exact_manual_spot_checks (test_p20_audit.P20FixtureCase.test_exact_manual_spot_checks) ... ok
test_explicit_zero_outside_support (test_p20_audit.P20FixtureCase.test_explicit_zero_outside_support) ... ok
test_fraction_ratio_exact (test_p20_audit.P20FixtureCase.test_fraction_ratio_exact) ... ok
test_full_positive (test_p20_audit.P20FixtureCase.test_full_positive) ... ok
test_invalid_digit_out_of_radix (test_p20_audit.P20FixtureCase.test_invalid_digit_out_of_radix) ... ok
test_invalid_leading_zero_digits (test_p20_audit.P20FixtureCase.test_invalid_leading_zero_digits) ... ok
test_invalid_memo_sign (test_p20_audit.P20FixtureCase.test_invalid_memo_sign) ... ok
test_invalid_query_bool (test_p20_audit.P20FixtureCase.test_invalid_query_bool) ... ok
test_invalid_query_bounds (test_p20_audit.P20FixtureCase.test_invalid_query_bounds) ... ok
test_invalid_signed_negative_source (test_p20_audit.P20FixtureCase.test_invalid_signed_negative_source) ... ok
test_invalid_zero_denominator (test_p20_audit.P20FixtureCase.test_invalid_zero_denominator) ... ok
test_matches_original_tcgct_p16_and_p18_digest (test_p20_audit.P20FixtureCase.test_matches_original_tcgct_p16_and_p18_digest) ... ok
test_memo_outside_support (test_p20_audit.P20FixtureCase.test_memo_outside_support) ... ok
test_missing_external_source_pin (test_p20_audit.P20FixtureCase.test_missing_external_source_pin) ... ok
test_multi_digit_memo_zero_sign (test_p20_audit.P20FixtureCase.test_multi_digit_memo_zero_sign) ... ok
test_new_claim_status_injected (test_p20_audit.P20FixtureCase.test_new_claim_status_injected) ... ok
test_new_radix_profile_requires_new_source_pins (test_p20_audit.P20FixtureCase.test_new_radix_profile_requires_new_source_pins) ... ok
test_noncanonical_whitespace (test_p20_audit.P20FixtureCase.test_noncanonical_whitespace) ... ok
test_p19_source_commit_modified_and_resealed (test_p20_audit.P20FixtureCase.test_p19_source_commit_modified_and_resealed) ... ok
test_record_list_source_order (test_p20_audit.P20FixtureCase.test_record_list_source_order) ... ok
test_reduced_memo_equivalence_accepted (test_p20_audit.P20FixtureCase.test_reduced_memo_equivalence_accepted) ... ok
test_schema_typo (test_p20_audit.P20FixtureCase.test_schema_typo) ... ok
test_source_extra_field (test_p20_audit.P20FixtureCase.test_source_extra_field) ... ok
test_source_limits (test_p20_audit.P20FixtureCase.test_source_limits) ... ok
test_source_modified_even_if_inner_hash_and_file_reissued (test_p20_audit.P20FixtureCase.test_source_modified_even_if_inner_hash_and_file_reissued) ... ok
test_support_index_modified_and_resealed (test_p20_audit.P20FixtureCase.test_support_index_modified_and_resealed) ... ok
test_trust_flags_tampered (test_p20_audit.P20FixtureCase.test_trust_flags_tampered) ... ok
test_unsorted_memo (test_p20_audit.P20FixtureCase.test_unsorted_memo) ... ok
test_unsupported_precision_not_rounded (test_p20_audit.P20FixtureCase.test_unsupported_precision_not_rounded) ... ok
test_wrong_builder (test_p20_audit.P20FixtureCase.test_wrong_builder) ... ok
test_wrong_external_dag_root (test_p20_audit.P20FixtureCase.test_wrong_external_dag_root) ... ok
test_wrong_external_file_pin (test_p20_audit.P20FixtureCase.test_wrong_external_file_pin) ... ok
test_wrong_external_source_pin (test_p20_audit.P20FixtureCase.test_wrong_external_source_pin) ... ok
test_zero_memo_supported (test_p20_audit.P20FixtureCase.test_zero_memo_supported) ... ok

======================================================================
FAIL: test_dag_root_modified_and_resealed (test_p20_audit.P20FixtureCase.test_dag_root_modified_and_resealed)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/mnt/data/FELRA_Compute_First_M2_TCGCT_P20_v0.1_2026-11-05/tests/test_p20_audit.py", line 85, in test_dag_root_modified_and_resealed
    self.assert_reject(d,'P19 root mismatch')
    ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/mnt/data/FELRA_Compute_First_M2_TCGCT_P20_v0.1_2026-11-05/tests/test_p20_audit.py", line 36, in assert_reject
    if msg:self.assertIn(msg,str(cm.exception))
           ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'P19 root mismatch' not found in 'out-of-band P18 DAG root mismatch'

----------------------------------------------------------------------
Ran 40 tests in 0.094s

FAILED (failures=1)
