test: 覆盖率提升至 100%(fail_under 90→99,13 个防御/边界用例)
This commit is contained in:
@@ -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():
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user