Coverage report of fpdf2_textindex: 75.79%

Files Functions Classes

coverage.py v7.14.1, created at 2026-06-01 14:22 +0000

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
fpdf2_textindex/__init__.py (no function)   100.00% 15 0 0   100.00% 0 0   100.00%
fpdf2_textindex/_fpdf/__init__.py (no function)   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/_fpdf/_fpdf.py FPDF.__init__   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/_fpdf/_fpdf.py FPDF._disable_writing   88.24% 17 2 0   75.00% 4 1   85.71%
fpdf2_textindex/_fpdf/_fpdf.py FPDF._insert_table_of_contents   78.18% 55 12 0   66.67% 24 4   74.68%
fpdf2_textindex/_fpdf/_fpdf.py FPDF._join_text_lines   86.84% 38 5 0   76.92% 26 2   82.81%
fpdf2_textindex/_fpdf/_fpdf.py FPDF._parse_chars   56.35% 126 55 0   52.44% 82 15   54.81%
fpdf2_textindex/_fpdf/_fpdf.py FPDF._parse_chars.frag   53.33% 15 7 0   50.00% 2 1   52.94%
fpdf2_textindex/_fpdf/_fpdf.py FPDF._render_styled_text_line   74.74% 190 48 0   65.62% 128 34   71.07%
fpdf2_textindex/_fpdf/_fpdf.py FPDF.insert_toc_placeholder   0.00% 10 10 0   0.00% 8 0   0.00%
fpdf2_textindex/_fpdf/_fpdf.py FPDF.multi_cell   0.00% 118 118 0   0.00% 70 0   0.00%
fpdf2_textindex/_fpdf/_fpdf.py (no function)   100.00% 62 0 0   100.00% 0 0   100.00%
fpdf2_textindex/_fpdf/line_break.py CurrentLine.add_character   84.21% 19 3 0   71.43% 14 4   78.79%
fpdf2_textindex/_fpdf/line_break.py MultiLineBreak.get_line   82.61% 69 12 0   78.57% 42 3   81.08%
fpdf2_textindex/_fpdf/line_break.py (no function)   100.00% 25 0 0   100.00% 0 0   100.00%
fpdf2_textindex/alias.py AliasRegistry.__init__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/alias.py AliasRegistry.__getitem__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/alias.py AliasRegistry.__iter__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/alias.py AliasRegistry.__len__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/alias.py AliasRegistry.__repr__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/alias.py AliasRegistry.define   66.67% 9 3 0   50.00% 4 2   61.54%
fpdf2_textindex/alias.py AliasRegistry.define_or_replace_from_label_path   39.29% 28 17 0   35.71% 14 1   38.10%
fpdf2_textindex/alias.py AliasRegistry._replace_match   100.00% 5 0 0   100.00% 2 0   100.00%
fpdf2_textindex/alias.py AliasRegistry.replace_aliases   100.00% 3 0 0   100.00% 2 0   100.00%
fpdf2_textindex/alias.py AliasRegistry.strip_alias   100.00% 8 0 0   100.00% 2 0   100.00%
fpdf2_textindex/alias.py (no function)   100.00% 20 0 3   100.00% 0 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList.__init__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList.__getitem__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList.__getitem__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList.__getitem__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList.__len__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList.__repr__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList.from_file   100.00% 12 0 0   100.00% 2 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList._parse_file   95.83% 24 1 0   93.75% 16 1   95.00%
fpdf2_textindex/concordance.py ConcordanceList.parse_text   100.00% 10 0 0   100.00% 2 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList._exclude_ranges   100.00% 6 0 0   100.00% 2 0   100.00%
fpdf2_textindex/concordance.py ConcordanceList._match_terms   88.00% 25 3 0   83.33% 12 2   86.49%
fpdf2_textindex/concordance.py (no function)   100.00% 25 0 5   100.00% 0 0   100.00%
fpdf2_textindex/constants.py (no function)   100.00% 27 0 0   100.00% 0 0   100.00%
fpdf2_textindex/errors.py (no function)   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/__init__.py (no function)   100.00% 10 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/abc.py _LabelPathABC.label_path   100.00% 0 0 2   100.00% 0 0   100.00%
fpdf2_textindex/interface/abc.py _LabelPathABC.joined_label_path   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/abc.py (no function)   100.00% 6 0 4   100.00% 0 0   100.00%
fpdf2_textindex/interface/alias.py Alias.__post_init__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/alias.py Alias.__repr__   100.00% 0 0 4   100.00% 0 0   100.00%
fpdf2_textindex/interface/alias.py (no function)   100.00% 11 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/cross_reference.py CrossReference.__post_init__   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/cross_reference.py CrossReference.__str__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/interface/cross_reference.py CrossReference.link   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/cross_reference.py (no function)   100.00% 21 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/entry.py TextIndexEntryP.depth   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/entry.py TextIndexEntryP.label   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/entry.py TextIndexEntryP.sort_label   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/entry.py TextIndexEntry.__hash__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/interface/entry.py TextIndexEntry.cross_references   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/entry.py TextIndexEntry.references   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/entry.py TextIndexEntry.sort_label   83.33% 6 1 0   75.00% 4 1   80.00%
fpdf2_textindex/interface/entry.py TextIndexEntry.sorted_children   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/entry.py TextIndexEntry.add_cross_reference   37.50% 8 5 0   25.00% 4 1   33.33%
fpdf2_textindex/interface/entry.py TextIndexEntry.add_reference   27.27% 11 8 0   12.50% 8 1   21.05%
fpdf2_textindex/interface/entry.py TextIndexEntry.update_latest_reference_end   60.00% 5 2 0   50.00% 2 1   57.14%
fpdf2_textindex/interface/entry.py (no function)   100.00% 41 0 4   100.00% 0 0   100.00%
fpdf2_textindex/interface/enums.py CrossReferenceType.__str__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/enums.py CrossReferenceType._missing_   0.00% 5 5 0   0.00% 4 0   0.00%
fpdf2_textindex/interface/enums.py (no function)   100.00% 13 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/label_path.py LabelPath.__new__   42.86% 14 8 0   40.00% 10 2   41.67%
fpdf2_textindex/interface/label_path.py LabelPath.__getitem__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/label_path.py LabelPath.__getitem__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/label_path.py LabelPath.__getitem__   100.00% 4 0 0   100.00% 2 0   100.00%
fpdf2_textindex/interface/label_path.py LabelPath.__repr__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/label_path.py LabelPath.__str__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/interface/label_path.py LabelPath.join   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/label_path.py LabelPath.split_str   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/label_path.py (no function)   100.00% 15 0 5   100.00% 0 0   100.00%
fpdf2_textindex/interface/link_location.py (no function)   100.00% 13 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/node.py Node.__post_init__   100.00% 4 0 0   100.00% 2 0   100.00%
fpdf2_textindex/interface/node.py Node.__bool__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/node.py Node.__iter__   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/node.py Node.__hash__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/interface/node.py Node.__repr__   100.00% 0 0 11   100.00% 0 0   100.00%
fpdf2_textindex/interface/node.py Node.__str__   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/interface/node.py Node.children   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/node.py Node.depth   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/node.py Node.label_path   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/node.py Node.add_child   50.00% 12 6 0   50.00% 8 4   50.00%
fpdf2_textindex/interface/node.py Node.get_child   100.00% 4 0 0   100.00% 2 0   100.00%
fpdf2_textindex/interface/node.py Node.iter_children   100.00% 2 0 0   100.00% 2 0   100.00%
fpdf2_textindex/interface/node.py Node.iter_parents   100.00% 6 0 0   100.00% 4 0   100.00%
fpdf2_textindex/interface/node.py (no function)   100.00% 35 0 1   100.00% 0 0   100.00%
fpdf2_textindex/interface/reference.py Reference.start_link   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/interface/reference.py Reference.end_link   100.00% 3 0 0   100.00% 2 0   100.00%
fpdf2_textindex/interface/reference.py (no function)   100.00% 24 0 0   100.00% 0 0   100.00%
fpdf2_textindex/md_emphasis.py MDEmphasis.font_style   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/md_emphasis.py MDEmphasis.marker   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/md_emphasis.py MDEmphasis.text_emphasis   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/md_emphasis.py MDEmphasis.format   100.00% 3 0 0   100.00% 0 0   100.00%
fpdf2_textindex/md_emphasis.py MDEmphasis.parse   78.57% 14 3 0   75.00% 8 2   77.27%
fpdf2_textindex/md_emphasis.py MDEmphasis.remove   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/md_emphasis.py (no function)   100.00% 32 0 5   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.__init__   100.00% 5 0 0   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.__iter__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.__len__   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.__repr__   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.aliases   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/parser.py TextIndexParser.entries   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.last_directive_id   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.last_index_id   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser.entry_at_label_path   84.62% 13 2 0   83.33% 6 1   84.21%
fpdf2_textindex/parser.py TextIndexParser.parse_text   89.36% 47 5 0   85.71% 14 2   88.52%
fpdf2_textindex/parser.py TextIndexParser._create_link   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/parser.py TextIndexParser._parse_cross_ref   100.00% 30 0 2   100.00% 14 0   100.00%
fpdf2_textindex/parser.py TextIndexParser._parse_final_marker   100.00% 10 0 0   100.00% 4 0   100.00%
fpdf2_textindex/parser.py TextIndexParser._parse_label   100.00% 13 0 0   90.00% 10 1   95.65%
fpdf2_textindex/parser.py TextIndexParser._parse_label_path   85.71% 21 3 0   87.50% 8 1   86.21%
fpdf2_textindex/parser.py TextIndexParser._parse_sort_key   100.00% 9 0 0   100.00% 2 0   100.00%
fpdf2_textindex/parser.py TextIndexParser._parse_suffix   100.00% 9 0 0   100.00% 2 0   100.00%
fpdf2_textindex/parser.py TextIndexParser._parse_toggling_directive   100.00% 14 0 0   83.33% 6 1   95.00%
fpdf2_textindex/parser.py TextIndexParser._parse_wildcards   94.44% 18 1 0   87.50% 8 1   92.31%
fpdf2_textindex/parser.py TextIndexParser._prefix_search   75.00% 4 1 0   75.00% 4 1   75.00%
fpdf2_textindex/parser.py TextIndexParser._update_index   80.77% 26 5 2   80.00% 20 4   80.43%
fpdf2_textindex/parser.py (no function)   100.00% 51 0 4   100.00% 0 0   100.00%
fpdf2_textindex/pdf.py FPDF.__init__   100.00% 9 0 0   100.00% 0 0   100.00%
fpdf2_textindex/pdf.py FPDF._set_index_link_locations   91.30% 23 2 0   87.50% 16 2   89.74%
fpdf2_textindex/pdf.py FPDF._insert_index   100.00% 17 0 0   100.00% 0 0   100.00%
fpdf2_textindex/pdf.py FPDF._preload_font_styles   100.00% 17 0 0   100.00% 10 0   100.00%
fpdf2_textindex/pdf.py FPDF.index_entries   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/pdf.py FPDF.add_index_entry   0.00% 3 3 2   100.00% 0 0   0.00%
fpdf2_textindex/pdf.py FPDF.index_entry_at_label_path   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/pdf.py FPDF.insert_index_placeholder   57.14% 14 6 0   62.50% 8 3   59.09%
fpdf2_textindex/pdf.py FPDF.multi_cell   72.13% 122 34 0   64.86% 74 16   69.39%
fpdf2_textindex/pdf.py FPDF.output   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/pdf.py FPDF.output   100.00% 0 0 1   100.00% 0 0   100.00%
fpdf2_textindex/pdf.py FPDF.output   65.62% 32 11 0   53.33% 30 10   59.68%
fpdf2_textindex/pdf.py (no function)   100.00% 62 0 29   100.00% 0 0   100.00%
fpdf2_textindex/renderer.py _AlsoPseudoEntry.label   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/renderer.py _AlsoPseudoEntry.sort_label   0.00% 1 1 0   100.00% 0 0   0.00%
fpdf2_textindex/renderer.py TextIndexRenderer.__init__   80.00% 20 4 0   50.00% 6 1   73.08%
fpdf2_textindex/renderer.py TextIndexRenderer.render_text_index   92.31% 26 2 0   88.89% 18 2   90.91%
fpdf2_textindex/renderer.py TextIndexRenderer._render_entry   100.00% 11 0 2   100.00% 0 0   100.00%
fpdf2_textindex/renderer.py TextIndexRenderer._render_header   92.31% 13 1 0   83.33% 6 1   89.47%
fpdf2_textindex/renderer.py TextIndexRenderer._add_to_outline   100.00% 13 0 0   100.00% 4 0   100.00%
fpdf2_textindex/renderer.py TextIndexRenderer._calc_entry_size   78.57% 14 3 3   50.00% 2 1   75.00%
fpdf2_textindex/renderer.py TextIndexRenderer._calc_min_header_height   100.00% 7 0 0   100.00% 0 0   100.00%
fpdf2_textindex/renderer.py TextIndexRenderer._entry_at_label_path   77.78% 9 2 0   66.67% 6 2   73.33%
fpdf2_textindex/renderer.py TextIndexRenderer._get_text_style   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/renderer.py TextIndexRenderer._prepare_entry   94.44% 36 2 0   91.67% 24 2   93.33%
fpdf2_textindex/renderer.py TextIndexRenderer._prepare_cross_references   85.45% 55 8 0   82.35% 34 4   84.27%
fpdf2_textindex/renderer.py TextIndexRenderer._prepare_references   85.71% 21 3 4   80.00% 10 2   83.87%
fpdf2_textindex/renderer.py TextIndexRenderer._prepare_referenced_page   100.00% 14 0 0   100.00% 4 0   100.00%
fpdf2_textindex/renderer.py TextIndexRenderer._run_in_children   100.00% 3 0 0   100.00% 2 0   100.00%
fpdf2_textindex/renderer.py TextIndexRenderer._set_links   100.00% 15 0 0   100.00% 6 0   100.00%
fpdf2_textindex/renderer.py (no function)   100.00% 41 0 17   100.00% 0 0   100.00%
fpdf2_textindex/utils.py escape_square_brackets   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/utils.py insert_at_match   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/utils.py md_link   100.00% 2 0 0   100.00% 0 0   100.00%
fpdf2_textindex/utils.py remove_match_from_str   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/utils.py remove_quotes   100.00% 1 0 0   100.00% 0 0   100.00%
fpdf2_textindex/utils.py (no function)   100.00% 6 0 0   100.00% 0 0   100.00%
fpdf2_textindex/version.py (no function)   100.00% 4 0 0   100.00% 0 0   100.00%
Total     80.09% 2220 442 123   64.92% 878 140   75.79%

No items found using the specified filter.