ReviewQueue package 0.3 / conversation adapter 0.1
Verified 15 October 2026, 09:13 Asia/Tashkent
Command: python3 -m unittest -v demo test_conversation
Exit code: 0
Only original synthetic data; no account, network, publication, or submission.
28 model regression + 20 new adapter/integration tests. Not production accuracy.
The earlier report's standalone 19 Core assertions are historical and NOT added to this count.

test_all_original_values_preserved (demo.TestReview.test_all_original_values_preserved) ... ok
test_boolean_amount_is_not_a_number (demo.TestReview.test_boolean_amount_is_not_a_number) ... ok
test_cli_preserves_bytes_and_refuses_overwrite (demo.TestReview.test_cli_preserves_bytes_and_refuses_overwrite) ... ok
test_cli_rejects_invalid_utf8_without_writing (demo.TestReview.test_cli_rejects_invalid_utf8_without_writing) ... ok
test_cli_rejects_lossy_input_without_writing (demo.TestReview.test_cli_rejects_lossy_input_without_writing) ... ok
test_cli_rejects_unpaired_surrogate_without_writing (demo.TestReview.test_cli_rejects_unpaired_surrogate_without_writing) ... ok
test_currency_not_mixed (demo.TestReview.test_currency_not_mixed) ... ok
test_derived_overflow_is_flagged (demo.TestReview.test_derived_overflow_is_flagged) ... ok
test_duplicate_keys_rejected (demo.TestReview.test_duplicate_keys_rejected) ... ok
test_duplicates_kept_and_flagged (demo.TestReview.test_duplicates_kept_and_flagged) ... ok
test_empty_input (demo.TestReview.test_empty_input) ... ok
test_escaped_duplicate_keys_rejected (demo.TestReview.test_escaped_duplicate_keys_rejected) ... ok
test_float_overflow_rejected (demo.TestReview.test_float_overflow_rejected) ... ok
test_float_precision_loss_rejected (demo.TestReview.test_float_precision_loss_rejected) ... ok
test_float_underflow_rejected (demo.TestReview.test_float_underflow_rejected) ... ok
test_invalid_reference_fails_explicitly (demo.TestReview.test_invalid_reference_fails_explicitly) ... ok
test_leading_zero_and_order (demo.TestReview.test_leading_zero_and_order) ... ok
test_locale_not_guessed (demo.TestReview.test_locale_not_guessed) ... ok
test_missing_number (demo.TestReview.test_missing_number) ... ok
test_model_detects_synthetic_outlier (demo.TestReview.test_model_detects_synthetic_outlier) ... ok
test_nested_duplicate_keys_rejected (demo.TestReview.test_nested_duplicate_keys_rejected) ... ok
test_no_mutation (demo.TestReview.test_no_mutation) ... ok
test_no_network_during_review (demo.TestReview.test_no_network_during_review) ... ok
test_nontext_id_not_coerced (demo.TestReview.test_nontext_id_not_coerced) ... ok
test_regular_float_preserved (demo.TestReview.test_regular_float_preserved) ... ok
test_reproducible (demo.TestReview.test_reproducible) ... ok
test_small_reference_abstains (demo.TestReview.test_small_reference_abstains) ... ok
test_zero_quantity (demo.TestReview.test_zero_quantity) ... ok
test_cli_confirmed_export_preserves_complete_review (test_conversation.TestConversation.test_cli_confirmed_export_preserves_complete_review) ... ok
test_cli_does_not_overwrite_existing_file (test_conversation.TestConversation.test_cli_does_not_overwrite_existing_file) ... ok
test_cli_refuses_input_as_output (test_conversation.TestConversation.test_cli_refuses_input_as_output) ... ok
test_cli_rejects_duplicate_keys_before_output (test_conversation.TestConversation.test_cli_rejects_duplicate_keys_before_output) ... ok
test_cli_unconfirmed_export_creates_nothing (test_conversation.TestConversation.test_cli_unconfirmed_export_creates_nothing) ... ok
test_confirmation_before_review_refused (test_conversation.TestConversation.test_confirmation_before_review_refused) ... ok
test_empty_records_supported_without_fabricated_score (test_conversation.TestConversation.test_empty_records_supported_without_fabricated_score) ... ok
test_export_before_confirmation_refused (test_conversation.TestConversation.test_export_before_confirmation_refused) ... ok
test_input_hash_is_canonical_not_raw_file_hash (test_conversation.TestConversation.test_input_hash_is_canonical_not_raw_file_hash) ... ok
test_input_mutation_cannot_change_internal_export (test_conversation.TestConversation.test_input_mutation_cannot_change_internal_export) ... ok
test_network_is_not_used_by_model_or_session (test_conversation.TestConversation.test_network_is_not_used_by_model_or_session) ... ok
test_new_review_invalidates_confirmation (test_conversation.TestConversation.test_new_review_invalidates_confirmation) ... ok
test_original_rows_order_ids_and_ambiguous_values_survive (test_conversation.TestConversation.test_original_rows_order_ids_and_ambiguous_values_survive) ... ok
test_real_model_report_is_not_stubbed (test_conversation.TestConversation.test_real_model_report_is_not_stubbed) ... ok
test_report_digest_binds_flags_and_all_original_fields (test_conversation.TestConversation.test_report_digest_binds_flags_and_all_original_fields) ... ok
test_reset_invalidates_confirmation (test_conversation.TestConversation.test_reset_invalidates_confirmation) ... ok
test_session_does_not_mutate_input (test_conversation.TestConversation.test_session_does_not_mutate_input) ... ok
test_unpaired_unicode_rejected (test_conversation.TestConversation.test_unpaired_unicode_rejected) ... ok
test_view_copy_cannot_change_internal_export (test_conversation.TestConversation.test_view_copy_cannot_change_internal_export) ... ok
test_wrong_digest_refused (test_conversation.TestConversation.test_wrong_digest_refused) ... ok

----------------------------------------------------------------------
Ran 48 tests in 15.045s

OK

Additional check: python3 -m py_compile conversation.py test_conversation.py reviewqueue.py — exit code 0.

