자동 생성 — scripts/generate_spec_trace.py. Living.
v0.4.0+ 신규 spec 의 인수조건 ↔ 테스트 매핑. 기존 v0.1.0 ~ v0.3.0 Frozen spec 은 AC ID 부여 안 함 (CONVENTIONS § Trace report).
| Spec | AC | Tests |
|---|---|---|
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_document_can_be_used_in_same_thread |
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_hwpx |
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_ir_shares_cache |
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_no_external_dependency |
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_raises_file_not_found_for_missing_path |
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_result_equivalent_to_parse |
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_returns_document_instance |
| v0.1.0/rhwp-python | — | tests/test_async.py::test_aparse_source_uri_matches_arg |
| v0.1.0/rhwp-python | — | tests/test_errors.py::TestFileNotFound::test_constructor_raises_file_not_found |
| v0.1.0/rhwp-python | — | tests/test_errors.py::TestFileNotFound::test_parse_raises_file_not_found |
| v0.1.0/rhwp-python | — | tests/test_errors.py::TestInvalidFormat::test_constructor_empty_file |
| v0.1.0/rhwp-python | — | tests/test_errors.py::TestInvalidFormat::test_empty_file_raises_valueerror |
| v0.1.0/rhwp-python | — | tests/test_errors.py::TestInvalidFormat::test_garbage_bytes_raises_valueerror |
| v0.1.0/rhwp-python | — | tests/test_from_bytes.py::test_from_bytes_equivalent_to_parse |
| v0.1.0/rhwp-python | — | tests/test_from_bytes.py::test_from_bytes_hwpx |
| v0.1.0/rhwp-python | — | tests/test_from_bytes.py::test_from_bytes_invalid_data_raises |
| v0.1.0/rhwp-python | — | tests/test_from_bytes.py::test_from_bytes_ir_equivalent_to_parse |
| v0.1.0/rhwp-python | — | tests/test_from_bytes.py::test_from_bytes_returns_document |
| v0.1.0/rhwp-python | — | tests/test_from_bytes.py::test_from_bytes_with_source_uri |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestGetters::test_page_count_type |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestGetters::test_paragraph_count_type |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestGetters::test_section_count_type |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestParsing::test_parse_hwp5 |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestParsing::test_parse_hwpx |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestParsing::test_parse_is_alias_of_constructor |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestParsing::test_returns_document_instance |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestRepr::test_repr_contains_counts |
| v0.1.0/rhwp-python | — | tests/test_parse.py::TestRepr::test_repr_format |
| v0.1.0/rhwp-python | — | tests/test_pdf_rendering.py::TestExportPdf::test_pdf_signature_in_file |
| v0.1.0/rhwp-python | — | tests/test_pdf_rendering.py::TestExportPdf::test_returns_size_as_int |
| v0.1.0/rhwp-python | — | tests/test_pdf_rendering.py::TestExportPdf::test_writes_file |
| v0.1.0/rhwp-python | — | tests/test_pdf_rendering.py::TestRenderPdf::test_pdf_signature |
| v0.1.0/rhwp-python | — | tests/test_pdf_rendering.py::TestRenderPdf::test_returns_bytes |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_all_exports_available |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_native_module_path |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_pyi_and_py_all_match |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_rhwp_core_version_matches_semver |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_rhwp_core_version_returns_string |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_version_is_package_version |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_version_matches_semver |
| v0.1.0/rhwp-python | — | tests/test_smoke.py::test_version_returns_string |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestExportSvg::test_creates_output_dir |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestExportSvg::test_default_prefix_is_page |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestExportSvg::test_multipage_uses_numbering |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestExportSvg::test_writes_files |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestRenderAllSvg::test_all_start_with_svg_tag |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestRenderAllSvg::test_count_matches_page_count |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestRenderAllSvg::test_returns_list_of_str |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestRenderSvg::test_out_of_range_raises_valueerror |
| v0.1.0/rhwp-python | — | tests/test_svg_rendering.py::TestRenderSvg::test_render_single_page |
| v0.1.0/rhwp-python | — | tests/test_text_extraction.py::TestExtractText::test_contains_korean |
| v0.1.0/rhwp-python | — | tests/test_text_extraction.py::TestExtractText::test_hwpx_extract_text |
| v0.1.0/rhwp-python | — | tests/test_text_extraction.py::TestExtractText::test_returns_string |
| v0.1.0/rhwp-python | — | tests/test_text_extraction.py::TestExtractTextConsistency::test_extract_text_equals_join_nonempty_paragraphs |
| v0.1.0/rhwp-python | — | tests/test_text_extraction.py::TestParagraphs::test_hwpx_paragraphs |
| v0.1.0/rhwp-python | — | tests/test_text_extraction.py::TestParagraphs::test_length_matches_paragraph_count |
| v0.1.0/rhwp-python | — | tests/test_text_extraction.py::TestParagraphs::test_returns_list_of_str |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_all_scope_body_first_then_furniture |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_body_recurse_enters_table_cells |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_default_equals_body |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_furniture_order_is_headers_footers_footnotes |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_furniture_yields_consistent_with_lists |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_handles_three_level_nesting |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_recurse_false_matches_body_len |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_recurse_false_skips_nested_blocks |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_recurse_visits_nested_table_cells |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_recurse_yields_more_on_real_sample |
| v0.2.0/ir | — | tests/test_ir_iter_blocks.py::test_iter_blocks_yields_only_known_block_types |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_build_inline_runs_all_zero_width_from_zero_triggers_fallback |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_build_inline_runs_empty_char_runs_fallback |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_build_inline_runs_empty_text_returns_empty |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_build_inline_runs_prepends_prefix_when_first_run_not_at_zero |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_build_inline_runs_preserves_prefix_when_rest_zero_width |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_cell_role_header |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_cell_role_merged_empty_is_layout |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_cell_role_merged_nonempty_is_data |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_cell_role_merged_whitespace_only_is_layout |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_cell_role_unmerged_empty_is_data |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_cell_role_unmerged_is_data |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_escape_html_all_special_chars |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_escape_html_ampersand_first |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_escape_html_does_not_escape_apostrophe |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_escape_html_preserves_non_ascii |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_escape_html_quote |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_table_to_html_escapes_cell_text |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_table_to_html_header_uses_th |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_table_to_html_rowspan_before_colspan |
| v0.2.0/ir | — | tests/test_ir_mapper.py::test_table_to_html_span_one_omits_attribute |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_field_with_cached_value |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_field_without_cached_value_returns_none |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_formula_empty_returns_none |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_formula_falls_back_to_script |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_formula_prefers_text_alt |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_join_caption_blocks_works_via_attribute |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_join_empty_list |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_join_includes_list_item_in_caption_or_footnote |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_join_mixes_paragraph_listitem_formula_field |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_join_skips_blocks_with_no_inline_text |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_list_item_empty_text_with_marker_returns_marker |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_list_item_fully_empty_returns_none |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_list_item_includes_marker |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_paragraph_empty_returns_none |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_paragraph_with_text |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_structural_blocks_return_none |
| v0.2.0/ir | — | tests/test_ir_plain_text.py::test_unknown_block_returns_none |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_body_contains_only_known_block_kinds |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_document_source_is_frozen |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_document_source_uri_property |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_furniture_lists_have_correct_types |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_hwp_document_direct_construction_allows_null_source |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_hwp_document_json_null_source_roundtrip |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_inline_run_has_styled_runs |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_inline_run_text_concatenates_to_paragraph_text |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_ir_body_text_joined_matches_extract_text |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_ir_is_frozen |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_ir_section_count_matches_document |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_metadata_fields_are_none |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_paragraph_block_count_matches |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_provenance_char_end_matches_text_length |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_provenance_monotonic |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_source_uri_matches_parse_path |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_source_uri_matches_parse_path_hwpx |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_to_ir_caches_same_object |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_to_ir_json_indent_option |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_to_ir_json_parses_back |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_to_ir_on_hwpx_sample |
| v0.2.0/ir | — | tests/test_ir_roundtrip.py::test_to_ir_returns_hwp_document |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_discriminator_routes_known_kinds |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_discriminator_routes_unknown_kind |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_extra_forbid_raises_on_unknown_field |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_frozen_raises_on_mutation |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_frozen_unknown_block_cannot_be_mutated |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_hwp_document_roundtrip |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_inline_run_defaults |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_paragraph_block_roundtrip |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_provenance_char_offsets_are_codepoint_based |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_schema_version_accepts_valid |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_schema_version_minor_bump_does_not_warn |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_schema_version_rejects_invalid |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_schema_version_warns_on_future_major |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_table_block_simple_roundtrip |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_table_nested_three_levels |
| v0.2.0/ir | — | tests/test_ir_schema.py::test_unknown_block_preserves_arbitrary_kind |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_export_schema_defs_are_exactly_the_known_nodes |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_export_schema_has_id_and_dialect |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_export_schema_known_blocks_forbid_additional |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_export_schema_no_numeric_range_keywords |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_export_schema_passes_meta_validation |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_export_schema_root_additional_properties_false |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_invalid_kind_fails_schema_validation |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_load_schema_is_valid_draft_2020_12 |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_load_schema_matches_export_schema |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_load_schema_raises_file_not_found_when_packaged_json_missing |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_minimal_hwp_document_validates |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_paragraph_block_with_inlines_validates |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_real_hwp_document_validates_against_schema |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_schema_id_has_immutable_v1_path |
| v0.2.0/ir | — | tests/test_ir_schema_export.py::test_unknown_kind_routing_pydantic_matches_schema |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_hwp5_sample_tables_follow_contract |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_hwpx_sample_has_tables |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_layout_role_on_merged_empty_cells |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_nested_tables_are_block_compatible |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_table_block_fields_populated |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_table_block_shares_provenance_with_paragraph |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_table_block_survives_json_roundtrip |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_table_cells_blocks_are_paragraph_or_table |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_table_cells_have_valid_coordinates |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_table_html_tr_td_structure |
| v0.2.0/ir | — | tests/test_ir_tables.py::test_table_text_row_and_cell_separators |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestConstruction::test_default_mode_is_single |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestConstruction::test_explicit_paragraph_mode |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestConstruction::test_explicit_single_mode |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestConstruction::test_invalid_mode_empty_string |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestConstruction::test_invalid_mode_raises |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestErrors::test_file_not_found |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestErrors::test_invalid_format |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestHwpxFormat::test_paragraph_mode_works |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestHwpxFormat::test_single_mode_works |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestLazyLoad::test_returns_iterator |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestLazyLoad::test_yields_same_content |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestLazyLoad::test_yields_same_count_as_load |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestParagraphMode::test_base_metadata_shared_across_docs |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestParagraphMode::test_count_matches_non_empty_paragraphs |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestParagraphMode::test_each_doc_has_paragraph_index |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestParagraphMode::test_no_empty_paragraphs |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestParagraphMode::test_paragraph_indices_are_ascending |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestParagraphMode::test_paragraph_indices_are_from_original_list |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestParagraphMode::test_returns_list_of_documents |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestSingleMode::test_metadata_counts_match_rhwp |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestSingleMode::test_metadata_has_required_keys |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestSingleMode::test_metadata_no_paragraph_index_in_single_mode |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestSingleMode::test_metadata_source_matches_input |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestSingleMode::test_page_content_matches_extract_text |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestSingleMode::test_returns_list_with_one_document |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestTextSplitterIntegration::test_chunk_size_respected |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestTextSplitterIntegration::test_metadata_propagates_to_chunks |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestTextSplitterIntegration::test_paragraph_mode_chunks_preserve_paragraph_index |
| v0.2.0/ir | — | tests/test_langchain_loader.py::TestTextSplitterIntegration::test_split_produces_chunks |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_caption_with_formula_and_field_includes_them |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_footnote_with_list_items_includes_them_in_content |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_include_furniture_default_false |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_include_furniture_ignored_in_paragraph_mode |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_include_furniture_marks_scope_metadata |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_include_furniture_yields_extra_documents |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_invalid_mode_still_rejects_after_ir_addition |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_includes_both_paragraph_and_table |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_metadata_has_base_fields |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_mode_accepted |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_mode_lazy_load_yields_documents |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_mode_returns_list_of_documents |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_mode_works_on_hwp5_sample |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_paragraph_content_is_text |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_preserves_iter_blocks_order |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_skips_empty_paragraphs |
| v0.2.0/ir | — | tests/test_langchain_loader_ir.py::test_ir_blocks_table_content_is_html |
| v0.3.0/cli | — | tests/test_cli.py::test_block_to_text_includes_list_items_in_footnote |
| v0.3.0/cli | — | tests/test_cli.py::test_blocks_format_json_returns_array |
| v0.3.0/cli | — | tests/test_cli.py::test_blocks_format_text_outputs_plain_strings |
| v0.3.0/cli | — | tests/test_cli.py::test_blocks_kind_filter_table |
| v0.3.0/cli | — | tests/test_cli.py::test_blocks_ndjson_each_line_is_independent_json |
| v0.3.0/cli | — | tests/test_cli.py::test_blocks_no_recurse_skips_table_cells |
| v0.3.0/cli | — | tests/test_cli.py::test_blocks_scope_furniture_exits_zero |
| v0.3.0/cli | — | tests/test_cli.py::test_chunks_include_furniture_yields_more_or_equal |
| v0.3.0/cli | — | tests/test_cli.py::test_chunks_ir_blocks_mode |
| v0.3.0/cli | — | tests/test_cli.py::test_chunks_missing_file_exit_1 |
| v0.3.0/cli | — | tests/test_cli.py::test_chunks_missing_text_splitters_exit_2 |
| v0.3.0/cli | — | tests/test_cli.py::test_chunks_paragraph_default |
| v0.3.0/cli | — | tests/test_cli.py::test_help_lists_all_subcommands |
| v0.3.0/cli | — | tests/test_cli.py::test_ir_default_compact_single_line |
| v0.3.0/cli | — | tests/test_cli.py::test_ir_indent_produces_multiline |
| v0.3.0/cli | — | tests/test_cli.py::test_ir_to_file |
| v0.3.0/cli | — | tests/test_cli.py::test_parse_missing_file_exit_1 |
| v0.3.0/cli | — | tests/test_cli.py::test_parse_summary_format |
| v0.3.0/cli | — | tests/test_cli.py::test_schema_stdout_matches_export_schema |
| v0.3.0/cli | — | tests/test_cli.py::test_schema_to_file_writes_valid_json |
| v0.3.0/cli | — | tests/test_cli.py::test_version_outputs_match_rhwp_module |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_build_caption_block_paragraphs_flattened |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_build_caption_block_preserves_known_directions |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_build_caption_block_unknown_direction_falls_back_to_bottom |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_build_hwp_document_table_with_caption_block_routed |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_build_picture_block_caption_none_when_raw_caption_none |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_build_picture_block_with_caption_field |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_build_picture_preserves_description_alongside_caption |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_caption_block_accepts_valid_directions |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_caption_block_default_direction_is_bottom |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_caption_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_caption_block_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_caption_block_minimal_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_caption_block_rejects_unknown_direction |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_caption_block_routes_via_discriminator_in_body |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_iter_blocks_recurse_does_not_enter_picture_caption |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_iter_blocks_recurse_does_not_enter_table_caption_block |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_iter_blocks_recurse_enters_caption_inside_table_cell |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_iter_blocks_recurse_enters_standalone_caption_in_body |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_picture_block_caption_field_default_none |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_picture_block_caption_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_table_block_caption_block_field_default_none |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_table_block_caption_str_and_caption_block_coexist |
| v0.3.0/ir-expansion | — | tests/test_ir_caption.py::test_table_block_caption_str_only_v0_2_0_pattern |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_build_field_block_known_kind_passes_through |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_build_field_block_preserves_provenance |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_build_field_block_preserves_raw_instruction |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_build_field_block_unknown_kind_falls_back_to_unknown |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_accepts_all_known_kinds |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_calc_distinguishes_from_formula_block |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_default_field_kind_is_unknown |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_full_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_minimal_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_rejects_invalid_field_kind |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_routes_via_discriminator |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_block_with_toc_kind_is_user_constructible_only |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_field_kind_literal_has_15_values |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_flatten_paragraph_multiple_fields_in_order |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_flatten_paragraph_yields_field_block_when_fields_present |
| v0.3.0/ir-expansion | — | tests/test_ir_field.py::test_valid_field_kinds_set_matches_literal |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_build_endnote_block_mirrors_footnote_pattern |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_build_footnote_block_flattens_inner_paragraphs |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_build_footnote_block_preserves_number_and_marker |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_build_hwp_document_routes_endnotes_to_furniture |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_build_hwp_document_routes_footnotes_to_furniture |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_endnote_block_minimal_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnote_block_blocks_supports_recursion_with_table |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnote_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnote_block_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnote_block_marker_and_prov_separately_assignable |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnote_block_minimal_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnote_block_routes_via_discriminator |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnote_block_separate_from_endnote_block |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_footnotes_endnotes_never_appear_in_body |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_iter_blocks_furniture_order_includes_footnotes_endnotes |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_iter_blocks_recurse_enters_endnote_blocks |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_iter_blocks_recurse_enters_footnote_blocks |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_real_sample_endnotes_exposed_in_furniture |
| v0.3.0/ir-expansion | — | tests/test_ir_footnote.py::test_real_sample_footnotes_exposed_in_furniture |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_build_formula_block_preserves_script_and_prov |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_build_formula_block_preserves_text_alt |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_build_formula_block_preserves_text_alt_verbatim |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_build_formula_block_text_alt_can_be_none |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_accepts_known_script_kinds |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_full_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_kind_is_formula |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_minimal_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_model_copy_pattern_for_external_latex_conversion |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_rejects_unknown_script_kind |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_block_routes_via_discriminator |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_inside_footnote_body_is_flattened |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_formula_inside_table_cell_is_flattened |
| v0.3.0/ir-expansion | — | tests/test_ir_formula.py::test_real_sample_formulas_have_required_fields |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_build_hwp_document_footnotes_empty_when_raw_empty |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_build_hwp_document_furniture_paragraphs_share_section_idx |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_build_hwp_document_header_with_table_flattens_to_furniture |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_build_hwp_document_preserves_header_footer_order |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_build_hwp_document_routes_footers_to_furniture |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_build_hwp_document_routes_headers_to_furniture |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_furniture_accepts_endnotes_field_in_s2 |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_furniture_default_lists_are_empty |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_furniture_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_furniture_frozen_blocks_mutation |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_iter_blocks_all_then_furniture_order |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_iter_blocks_furniture_recurse_enters_header_table_cells |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_real_sample_body_excludes_header_footer_text |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_real_sample_furniture_yields_paragraph_blocks |
| v0.3.0/ir-expansion | — | tests/test_ir_furniture.py::test_real_sample_iter_blocks_furniture_matches_lists |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_build_list_item_inlines_match_paragraph_pattern |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_build_list_item_marker_placeholder_by_head_type |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_build_list_item_preserves_provenance |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_build_list_item_raises_when_list_info_none |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_build_list_item_unknown_head_type_falls_back |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_list_item_block_default_fields |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_list_item_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_list_item_block_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_list_item_block_minimal_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_list_item_block_routes_via_discriminator |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_list_item_blocks_can_appear_in_table_cell |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_marker_is_placeholder_in_v0_3_0 |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_paragraph_with_list_info_yields_list_item_block |
| v0.3.0/ir-expansion | — | tests/test_ir_list.py::test_paragraph_without_list_info_yields_paragraph_block |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_build_picture_block_broken_reference_routes_to_none |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_build_picture_block_no_extension_falls_back |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_build_picture_block_preserves_description |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_build_picture_block_unknown_extension_falls_back |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_build_picture_block_with_known_extension |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_bytes_for_image_raises_on_broken_reference |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_bytes_for_image_raises_on_invalid_uri |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_bytes_for_image_raises_on_lookup_miss |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_bytes_for_image_raises_on_out_of_range |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_bytes_for_image_raises_on_unsupported_scheme |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_image_ref_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_image_ref_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_image_ref_required_fields |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_image_ref_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_mime_mapping_known_extensions |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_mime_mapping_none_falls_back |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_mime_mapping_unknown_falls_back |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_picture_block_broken_reference |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_picture_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_picture_block_kind_is_picture |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_picture_block_roundtrip_with_image |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_picture_block_routes_via_discriminator |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_real_sample_bytes_for_image_returns_nonempty |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_real_sample_picture_block_kind_is_picture |
| v0.3.0/ir-expansion | — | tests/test_ir_picture.py::test_real_sample_picture_uri_is_bin_scheme |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_build_toc_block_empty_entries |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_build_toc_block_with_entries |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_build_toc_entry_is_stale_always_false_v0_3_0 |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_build_toc_entry_target_section_idx_always_none_v0_3_0 |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_flatten_paragraph_multiple_tocs |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_flatten_paragraph_yields_toc_block_when_tocs_present |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_iter_blocks_yields_toc_block_only |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_block_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_block_minimal_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_block_routes_via_discriminator |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_block_with_entries_roundtrip |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_entry_block_default_values |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_entry_block_extra_forbidden |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_entry_block_frozen |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_entry_block_full_fields |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_entry_block_is_not_in_block_union |
| v0.3.0/ir-expansion | — | tests/test_ir_toc.py::test_toc_entry_block_minimal_roundtrip |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_changelog_records_pin_bump |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_char_offsets_empty_falls_back_to_none |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_endnote_marker_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_field_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_footnote_marker_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_formula_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_no_synthetic_fixture_directory |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_picture_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_real_sample_field_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_real_sample_footnote_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_real_sample_has_none_fallback_paragraphs |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_real_sample_ir_json_roundtrip |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_real_sample_picture_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_real_sample_table_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_real_sample_zero_width_invariant |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_rust_uses_assert_eq_not_debug_assert |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_schema_provenance_char_start_anyof_integer_or_null |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_schema_version_remains_1_1 |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_table_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_toc_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | — | tests/test_ir_marker_char_offset.py::test_zero_width_invariant_holds_across_distinct_offsets |
| v0.3.1/ir-marker-char-offset | AC-1 | tests/test_ir_marker_char_offset.py::test_footnote_marker_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | AC-1 | tests/test_ir_marker_char_offset.py::test_real_sample_footnote_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | AC-10 | tests/test_ir_schema_export.py::test_real_hwp_document_validates_against_schema |
| v0.3.1/ir-marker-char-offset | AC-11 | tests/test_ir_marker_char_offset.py::test_real_sample_zero_width_invariant |
| v0.3.1/ir-marker-char-offset | AC-11 | tests/test_ir_marker_char_offset.py::test_zero_width_invariant_holds_across_distinct_offsets |
| v0.3.1/ir-marker-char-offset | AC-12 | tests/test_ir_marker_char_offset.py::test_rust_uses_assert_eq_not_debug_assert |
| v0.3.1/ir-marker-char-offset | AC-13 | tests/test_ir_marker_char_offset.py::test_changelog_records_pin_bump |
| v0.3.1/ir-marker-char-offset | AC-14 | tests/test_ir_marker_char_offset.py::test_no_synthetic_fixture_directory |
| v0.3.1/ir-marker-char-offset | AC-2 | tests/test_ir_marker_char_offset.py::test_endnote_marker_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | AC-3 | tests/test_ir_marker_char_offset.py::test_picture_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | AC-3 | tests/test_ir_marker_char_offset.py::test_real_sample_picture_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | AC-4 | tests/test_ir_marker_char_offset.py::test_formula_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | AC-5 | tests/test_ir_marker_char_offset.py::test_field_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | AC-5 | tests/test_ir_marker_char_offset.py::test_real_sample_field_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | AC-6 | tests/test_ir_marker_char_offset.py::test_toc_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | AC-7 | tests/test_ir_marker_char_offset.py::test_real_sample_table_marker_populates_or_falls_back |
| v0.3.1/ir-marker-char-offset | AC-7 | tests/test_ir_marker_char_offset.py::test_table_char_offset_populated_zero_width |
| v0.3.1/ir-marker-char-offset | AC-8 | tests/test_ir_marker_char_offset.py::test_char_offsets_empty_falls_back_to_none |
| v0.3.1/ir-marker-char-offset | AC-8 | tests/test_ir_marker_char_offset.py::test_real_sample_has_none_fallback_paragraphs |
| v0.3.1/ir-marker-char-offset | AC-9 | tests/test_ir_marker_char_offset.py::test_schema_provenance_char_start_anyof_integer_or_null |
| v0.3.1/ir-marker-char-offset | AC-9 | tests/test_ir_marker_char_offset.py::test_schema_version_remains_1_1 |
| v0.4.0/view-renderer | — | tests/test_view_baseline.py::test_aift_to_ir_byte_equal_to_v0_3_2_baseline |
| v0.4.0/view-renderer | — | tests/test_view_baseline.py::test_table_vpos_to_ir_byte_equal_to_v0_3_2_baseline |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_alternating_list_kind_creates_separate_lists |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_consecutive_list_items_group_into_single_ul |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_endnote_uses_separate_id_namespace |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_enumerated_list_uses_ol |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_footnote_and_endnote_coexist_with_separate_id_namespaces |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_footnote_renders_sup_ref_and_aside_def |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_formula_hwp_eq_preserves_script_in_pre_code |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_formula_latex_display_wraps_in_div_math |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_formula_latex_inline_wraps_in_span_math |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_formula_mathml_preserves_script_in_pre_code |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_list_item_level_preserved_via_data_level_attribute |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_page_headers_and_footers_excluded_from_html |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_picture_real_fixture_no_base64 |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_picture_renders_as_img_with_uri_passthrough |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_picture_without_image_renders_alt_only_no_src |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_real_fixture_furniture_paragraph_text_excluded_from_html |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_table_html_appears_as_substring_unchanged |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_table_html_real_fixture_appears_as_substring |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_byte_equal_on_repeated_calls |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_byte_equal_with_and_without_css_distinct |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_default_has_zero_style_tags |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_empty_document_still_well_formed |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_escapes_special_chars_in_paragraph |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_include_css_real_fixture_well_formed |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_include_css_true_has_exactly_one_style_in_head |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_real_fixture_well_formed |
| v0.4.0/view-renderer | — | tests/test_view_html.py::test_to_html_returns_doctype_and_html5_skeleton |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_endnote_uses_separate_number_space_with_en_prefix |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_footnote_and_endnote_coexist_with_separate_prefixes |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_footnote_reference_appears_in_paragraph_and_definition_at_end |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_formula_hwp_eq_uses_fenced_block |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_formula_latex_display_uses_double_dollar |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_formula_latex_inline_uses_single_dollar |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_formula_mathml_uses_fenced_block |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_list_item_level_indented_in_markdown |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_merged_table_falls_back_to_html_inline |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_page_header_and_footer_text_excluded_from_markdown |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_picture_description_with_brackets_is_backslash_escaped |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_picture_real_fixture_no_base64 |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_picture_with_image_renders_as_markdown_image |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_picture_without_image_renders_alt_only |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_real_fixture_furniture_paragraph_text_excluded |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_simple_table_renders_as_gfm_pipe_table |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_does_not_mutate_ir |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_empty_document_returns_empty_string |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_is_byte_equal_on_repeated_calls |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_paragraphs_separated_by_blank_line |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_real_fixture_code_fences_balanced |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_real_fixture_footnote_refs_match_defs |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_real_fixture_gfm_tables_are_consistent |
| v0.4.0/view-renderer | — | tests/test_view_markdown.py::test_to_markdown_returns_string_ending_in_newline |
| v0.4.0/view-renderer | AC-1 | tests/test_view_markdown.py::test_picture_description_with_brackets_is_backslash_escaped |
| v0.4.0/view-renderer | AC-1 | tests/test_view_markdown.py::test_to_markdown_empty_document_returns_empty_string |
| v0.4.0/view-renderer | AC-1 | tests/test_view_markdown.py::test_to_markdown_paragraphs_separated_by_blank_line |
| v0.4.0/view-renderer | AC-1 | tests/test_view_markdown.py::test_to_markdown_real_fixture_code_fences_balanced |
| v0.4.0/view-renderer | AC-1 | tests/test_view_markdown.py::test_to_markdown_real_fixture_footnote_refs_match_defs |
| v0.4.0/view-renderer | AC-1 | tests/test_view_markdown.py::test_to_markdown_real_fixture_gfm_tables_are_consistent |
| v0.4.0/view-renderer | AC-1 | tests/test_view_markdown.py::test_to_markdown_returns_string_ending_in_newline |
| v0.4.0/view-renderer | AC-10 | tests/test_view_html.py::test_to_html_byte_equal_on_repeated_calls |
| v0.4.0/view-renderer | AC-10 | tests/test_view_html.py::test_to_html_byte_equal_with_and_without_css_distinct |
| v0.4.0/view-renderer | AC-10 | tests/test_view_markdown.py::test_to_markdown_does_not_mutate_ir |
| v0.4.0/view-renderer | AC-10 | tests/test_view_markdown.py::test_to_markdown_is_byte_equal_on_repeated_calls |
| v0.4.0/view-renderer | AC-11 | tests/test_view_baseline.py::test_aift_to_ir_byte_equal_to_v0_3_2_baseline |
| v0.4.0/view-renderer | AC-11 | tests/test_view_baseline.py::test_table_vpos_to_ir_byte_equal_to_v0_3_2_baseline |
| v0.4.0/view-renderer | AC-2 | tests/test_view_html.py::test_to_html_empty_document_still_well_formed |
| v0.4.0/view-renderer | AC-2 | tests/test_view_html.py::test_to_html_escapes_special_chars_in_paragraph |
| v0.4.0/view-renderer | AC-2 | tests/test_view_html.py::test_to_html_real_fixture_well_formed |
| v0.4.0/view-renderer | AC-2 | tests/test_view_html.py::test_to_html_returns_doctype_and_html5_skeleton |
| v0.4.0/view-renderer | AC-3 | tests/test_view_markdown.py::test_merged_table_falls_back_to_html_inline |
| v0.4.0/view-renderer | AC-3 | tests/test_view_markdown.py::test_simple_table_renders_as_gfm_pipe_table |
| v0.4.0/view-renderer | AC-4 | tests/test_view_html.py::test_table_html_appears_as_substring_unchanged |
| v0.4.0/view-renderer | AC-4 | tests/test_view_html.py::test_table_html_real_fixture_appears_as_substring |
| v0.4.0/view-renderer | AC-5 | tests/test_view_html.py::test_picture_real_fixture_no_base64 |
| v0.4.0/view-renderer | AC-5 | tests/test_view_html.py::test_picture_renders_as_img_with_uri_passthrough |
| v0.4.0/view-renderer | AC-5 | tests/test_view_html.py::test_picture_without_image_renders_alt_only_no_src |
| v0.4.0/view-renderer | AC-5 | tests/test_view_markdown.py::test_picture_description_with_brackets_is_backslash_escaped |
| v0.4.0/view-renderer | AC-5 | tests/test_view_markdown.py::test_picture_real_fixture_no_base64 |
| v0.4.0/view-renderer | AC-5 | tests/test_view_markdown.py::test_picture_with_image_renders_as_markdown_image |
| v0.4.0/view-renderer | AC-5 | tests/test_view_markdown.py::test_picture_without_image_renders_alt_only |
| v0.4.0/view-renderer | AC-6 | tests/test_view_html.py::test_formula_hwp_eq_preserves_script_in_pre_code |
| v0.4.0/view-renderer | AC-6 | tests/test_view_html.py::test_formula_latex_display_wraps_in_div_math |
| v0.4.0/view-renderer | AC-6 | tests/test_view_html.py::test_formula_latex_inline_wraps_in_span_math |
| v0.4.0/view-renderer | AC-6 | tests/test_view_html.py::test_formula_mathml_preserves_script_in_pre_code |
| v0.4.0/view-renderer | AC-6 | tests/test_view_markdown.py::test_formula_hwp_eq_uses_fenced_block |
| v0.4.0/view-renderer | AC-6 | tests/test_view_markdown.py::test_formula_latex_display_uses_double_dollar |
| v0.4.0/view-renderer | AC-6 | tests/test_view_markdown.py::test_formula_latex_inline_uses_single_dollar |
| v0.4.0/view-renderer | AC-6 | tests/test_view_markdown.py::test_formula_mathml_uses_fenced_block |
| v0.4.0/view-renderer | AC-7 | tests/test_view_html.py::test_endnote_uses_separate_id_namespace |
| v0.4.0/view-renderer | AC-7 | tests/test_view_html.py::test_footnote_and_endnote_coexist_with_separate_id_namespaces |
| v0.4.0/view-renderer | AC-7 | tests/test_view_html.py::test_footnote_renders_sup_ref_and_aside_def |
| v0.4.0/view-renderer | AC-7 | tests/test_view_markdown.py::test_endnote_uses_separate_number_space_with_en_prefix |
| v0.4.0/view-renderer | AC-7 | tests/test_view_markdown.py::test_footnote_and_endnote_coexist_with_separate_prefixes |
| v0.4.0/view-renderer | AC-7 | tests/test_view_markdown.py::test_footnote_reference_appears_in_paragraph_and_definition_at_end |
| v0.4.0/view-renderer | AC-8 | tests/test_view_html.py::test_page_headers_and_footers_excluded_from_html |
| v0.4.0/view-renderer | AC-8 | tests/test_view_html.py::test_real_fixture_furniture_paragraph_text_excluded_from_html |
| v0.4.0/view-renderer | AC-8 | tests/test_view_markdown.py::test_page_header_and_footer_text_excluded_from_markdown |
| v0.4.0/view-renderer | AC-8 | tests/test_view_markdown.py::test_real_fixture_furniture_paragraph_text_excluded |
| v0.4.0/view-renderer | AC-9 | tests/test_view_html.py::test_to_html_default_has_zero_style_tags |
| v0.4.0/view-renderer | AC-9 | tests/test_view_html.py::test_to_html_include_css_real_fixture_well_formed |
| v0.4.0/view-renderer | AC-9 | tests/test_view_html.py::test_to_html_include_css_true_has_exactly_one_style_in_head |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestBackwardsCompat::test_chunks_structured_content_matches_v050_dump |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestBackwardsCompat::test_get_ir_structured_content_matches_v050_dump |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestBackwardsCompat::test_iter_blocks_structured_content_matches_v050_dump |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestChunks::test_default_paragraph_mode |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestChunks::test_include_furniture_appends_furniture_chunks |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestChunks::test_include_furniture_ignored_outside_ir_blocks |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestChunks::test_missing_extras_does_not_break_other_tools |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestChunks::test_missing_extras_raises_tool_error |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestChunks::test_modes_all_supported |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestChunks::test_size_overlap_pass_through |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestErrorHandling::test_extract_text_missing_file |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestErrorHandling::test_iter_blocks_invalid_kind |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestErrorHandling::test_unknown_tool_name |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestExtractText::test_returns_string |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestGetIr::test_returns_typed_hwp_document |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestIterBlocks::test_default_returns_typed_blocks |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestIterBlocks::test_kind_filter_paragraph |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestIterBlocks::test_limit_truncates |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestIterBlocks::test_scope_furniture_subset |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestPackagingSurface::test_entry_point_dispatches_to_run |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestPackagingSurface::test_module_is_top_level_not_under_integrations |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestPackagingSurface::test_pyproject_declares_fastmcp_extras_and_script |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestParseHwpSummary::test_returns_counts_matching_doc |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestSyncHandler::test_all_registered_tools_are_sync |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToHtml::test_matches_view_api_no_css |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToHtml::test_matches_view_api_with_css |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToHtml::test_returns_html5_document |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToMarkdown::test_matches_view_api |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToMarkdown::test_returns_non_empty_string |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToolRegistry::test_each_tool_has_description |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToolRegistry::test_iter_blocks_kind_schema_is_enum |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToolRegistry::test_iter_blocks_scope_schema_is_enum |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestToolRegistry::test_lists_exactly_expected_tools |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_argparse_custom_host |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_argparse_default_transport_stdio |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_argparse_invalid_transport_exits |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_argparse_port_out_of_range_exits |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_argparse_streamable_http_with_port |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_run_dispatch_stdio |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_run_dispatch_streamable_http |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_run_stdio_with_non_default_host_exits |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_run_stdio_with_non_default_port_exits |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTransportCli::test_streamable_http_real_round_trip |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedClientData::test_chunks_client_data_is_typed_list |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedClientData::test_get_ir_client_data_has_typed_attributes |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedClientData::test_iter_blocks_client_data_is_typed_list |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedModelRoundTrip::test_chunk_record_round_trip |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedModelRoundTrip::test_get_ir_round_trip |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedOutputSchema::test_chunks_schema_exposes_chunk_record_fields |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedOutputSchema::test_get_ir_schema_exposes_hwp_document_defs |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedOutputSchema::test_iter_blocks_schema_exposes_block_union_variants |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedSignatures::test_chunk_record_is_exposed_on_tools_module |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedSignatures::test_chunk_record_metadata_annotation_is_free_dict |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedSignatures::test_chunks_return_annotation_is_list_of_chunk_record |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedSignatures::test_get_ir_return_annotation_is_hwp_document |
| v0.5.0/mcp | — | tests/test_mcp_server.py::TestTypedSignatures::test_iter_blocks_return_annotation_is_list_of_block |
| v0.5.0/mcp | AC-10 | tests/test_mcp_server.py::TestPackagingSurface::test_module_is_top_level_not_under_integrations |
| v0.5.0/mcp | AC-2 | tests/test_mcp_server.py::TestToolRegistry::test_lists_exactly_expected_tools |
| v0.5.0/mcp | AC-3 | tests/test_mcp_server.py::TestErrorHandling::test_iter_blocks_invalid_kind |
| v0.5.0/mcp | AC-4 | tests/test_mcp_server.py::TestErrorHandling::test_extract_text_missing_file |
| v0.5.0/mcp | AC-5 | tests/test_mcp_server.py::TestSyncHandler::test_all_registered_tools_are_sync |
| v0.5.0/mcp | AC-6 | tests/test_mcp_server.py::TestToHtml::test_matches_view_api_no_css |
| v0.5.0/mcp | AC-6 | tests/test_mcp_server.py::TestToHtml::test_matches_view_api_with_css |
| v0.5.0/mcp | AC-6 | tests/test_mcp_server.py::TestToMarkdown::test_matches_view_api |
| v0.5.0/mcp | AC-7 | tests/test_mcp_server.py::TestChunks::test_missing_extras_does_not_break_other_tools |
| v0.5.0/mcp | AC-7 | tests/test_mcp_server.py::TestChunks::test_missing_extras_raises_tool_error |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_argparse_custom_host |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_argparse_default_transport_stdio |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_argparse_invalid_transport_exits |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_argparse_port_out_of_range_exits |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_argparse_streamable_http_with_port |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_run_dispatch_stdio |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_run_dispatch_streamable_http |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_run_stdio_with_non_default_host_exits |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_run_stdio_with_non_default_port_exits |
| v0.5.0/mcp | AC-8 | tests/test_mcp_server.py::TestTransportCli::test_streamable_http_real_round_trip |
| v0.5.0/mcp | AC-9 | tests/test_mcp_server.py::TestPackagingSurface::test_entry_point_dispatches_to_run |
| v0.5.0/mcp | AC-9 | tests/test_mcp_server.py::TestPackagingSurface::test_pyproject_declares_fastmcp_extras_and_script |
| v0.5.1/mcp-typed-output | AC-1 | tests/test_mcp_server.py::TestTypedModelRoundTrip::test_get_ir_round_trip |
| v0.5.1/mcp-typed-output | AC-1 | tests/test_mcp_server.py::TestTypedSignatures::test_get_ir_return_annotation_is_hwp_document |
| v0.5.1/mcp-typed-output | AC-2 | tests/test_mcp_server.py::TestTypedSignatures::test_iter_blocks_return_annotation_is_list_of_block |
| v0.5.1/mcp-typed-output | AC-3 | tests/test_mcp_server.py::TestTypedModelRoundTrip::test_chunk_record_round_trip |
| v0.5.1/mcp-typed-output | AC-3 | tests/test_mcp_server.py::TestTypedSignatures::test_chunk_record_is_exposed_on_tools_module |
| v0.5.1/mcp-typed-output | AC-3 | tests/test_mcp_server.py::TestTypedSignatures::test_chunks_return_annotation_is_list_of_chunk_record |
| v0.5.1/mcp-typed-output | AC-4 | tests/test_mcp_server.py::TestTypedOutputSchema::test_chunks_schema_exposes_chunk_record_fields |
| v0.5.1/mcp-typed-output | AC-4 | tests/test_mcp_server.py::TestTypedOutputSchema::test_get_ir_schema_exposes_hwp_document_defs |
| v0.5.1/mcp-typed-output | AC-4 | tests/test_mcp_server.py::TestTypedOutputSchema::test_iter_blocks_schema_exposes_block_union_variants |
| v0.5.1/mcp-typed-output | AC-5 | tests/test_mcp_server.py::TestBackwardsCompat::test_chunks_structured_content_matches_v050_dump |
| v0.5.1/mcp-typed-output | AC-5 | tests/test_mcp_server.py::TestBackwardsCompat::test_get_ir_structured_content_matches_v050_dump |
| v0.5.1/mcp-typed-output | AC-5 | tests/test_mcp_server.py::TestBackwardsCompat::test_iter_blocks_structured_content_matches_v050_dump |
| v0.5.1/mcp-typed-output | AC-6 | tests/test_mcp_server.py::TestTypedClientData::test_chunks_client_data_is_typed_list |
| v0.5.1/mcp-typed-output | AC-6 | tests/test_mcp_server.py::TestTypedClientData::test_get_ir_client_data_has_typed_attributes |
| v0.5.1/mcp-typed-output | AC-6 | tests/test_mcp_server.py::TestTypedClientData::test_iter_blocks_client_data_is_typed_list |
| v0.5.1/mcp-typed-output | AC-7 | tests/test_mcp_server.py::TestTypedSignatures::test_chunk_record_metadata_annotation_is_free_dict |
| v0.6.0/png-vlm-render | AC-1 | tests/test_render_png.py::TestRenderPng::test_returns_png_magic |
| v0.6.0/png-vlm-render | AC-2 | tests/test_render_png.py::TestRenderPng::test_render_all_count_matches_page_count |
| v0.6.0/png-vlm-render | AC-3 | tests/test_render_png.py::TestRenderPng::test_scale_doubles_width |
| v0.6.0/png-vlm-render | AC-4 | tests/test_render_png.py::TestRenderPng::test_max_pixels_guard_raises |
| v0.6.0/png-vlm-render | AC-5 | tests/test_render_png.py::TestMcpRenderPagePng::test_returns_image_content |
| v0.6.0/png-vlm-render | AC-6 | tests/test_render_png.py::TestArenderPng::test_async_returns_png_without_panic |
| v0.6.0/png-vlm-render | AC-7 | tests/test_render_png.py::TestExportPng::test_writes_files_with_png_magic |