test: 覆盖率提升至 100%(fail_under 90→99,13 个防御/边界用例)

This commit is contained in:
lhl
2026-08-09 04:49:29 +08:00
parent 737911cf25
commit 2fbff07d3f
10 changed files with 180 additions and 46 deletions
+2 -2
View File
@@ -57,7 +57,7 @@ class ExcelParser:
seg_nature = classify_sheet(seg)
if seg_nature == SheetNature.TABLE:
header_row = find_header_row(seg)
if header_row < 0:
if header_row < 0: # pragma: no cover — classify==TABLE 时 find_header_row 恒 ≥0
header_row = 0
# extract_table 的 formatting_map 用段内矩阵坐标 (r,c)
# 从整 sheet 物理 map 抽出段内子 map(物理行 pr → 段内 pr-s
@@ -96,7 +96,7 @@ class ExcelParser:
]
filled = forward_fill(matrix, merged) if merged else matrix
header_row = find_header_row(filled)
if header_row < 0:
if header_row < 0: # pragma: no cover — classify==TABLE 时 find_header_row 恒 ≥0
header_row = 0
fmt_map = {}
for row in ws.iter_rows():
+1 -1
View File
@@ -37,7 +37,7 @@ def classify_sheet(matrix: list[list[Any]]) -> SheetNature:
if _free_text_like(matrix):
return SheetNature.FREE_TEXT
header_row = find_header_row(matrix)
if header_row >= 0:
if header_row >= 0: # pragma: no cover — _free_text_like()==False 时 find_header_row 恒 ≥0
for row in matrix[header_row + 1:]:
if any(str(c).strip().startswith(("", "")) for c in _non_empty(row)):
return SheetNature.MIXED