Initial commit: 包装审核 POC、Docker 与前后端
Made-with: Cursor
This commit is contained in:
33
tests/backend/test_layout_cv.py
Normal file
33
tests/backend/test_layout_cv.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import cv2
|
||||
import numpy as np
|
||||
|
||||
from backend.app.layout_cv import Box, detect_text_lines, merge_text_and_rectangles
|
||||
|
||||
|
||||
def test_merge_text_and_rectangles_keeps_outer_table_box_and_drops_nested_cells() -> None:
|
||||
text_lines = [
|
||||
Box(20, 20, 120, 36, "line", "配料"),
|
||||
Box(20, 40, 120, 56, "line", "糯米"),
|
||||
Box(20, 60, 120, 76, "line", "红豆"),
|
||||
]
|
||||
rectangles = [
|
||||
Box(10, 10, 150, 90, "rectangle"),
|
||||
Box(12, 12, 78, 44, "rectangle"),
|
||||
Box(82, 12, 148, 44, "rectangle"),
|
||||
]
|
||||
|
||||
merged = merge_text_and_rectangles(text_lines, rectangles)
|
||||
|
||||
assert [box.kind for box in merged] == ["rectangle", "line", "line", "line"]
|
||||
assert merged[0].as_tuple() == (10, 10, 150, 90)
|
||||
|
||||
|
||||
def test_detect_text_lines_finds_two_text_rows_without_ocr() -> None:
|
||||
image = np.full((220, 420, 3), 255, dtype=np.uint8)
|
||||
cv2.putText(image, "LINE ONE", (20, 70), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 0), 2, cv2.LINE_AA)
|
||||
cv2.putText(image, "LINE TWO", (20, 140), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 0), 2, cv2.LINE_AA)
|
||||
|
||||
lines = detect_text_lines(image)
|
||||
|
||||
assert len(lines) == 2
|
||||
assert lines[0].y1 < lines[1].y0
|
||||
Reference in New Issue
Block a user