import pytest from paddleocr import DocPreprocessor from ..testing_utils import ( TEST_DATA_DIR, check_simple_inference_result, check_wrapper_simple_inference_param_forwarding, ) @pytest.fixture(scope="module") def ocr_engine() -> DocPreprocessor: return DocPreprocessor() @pytest.mark.parametrize( "image_path", [ TEST_DATA_DIR / "book_rot180.jpg", ], ) def test_predict(ocr_engine: DocPreprocessor, image_path: str) -> None: """ Test PaddleOCR's doc preprocessor functionality. Args: ocr_engine: An instance of `DocPreprocessor`. image_path: Path to the image to be processed. """ result = ocr_engine.predict(str(image_path)) check_simple_inference_result(result) res = result[0] assert res["angle"] in {0, 90, 180, 270, -1} assert res["rot_img"] is not None assert res["output_img"] is not None @pytest.mark.parametrize( "params", [ {"use_doc_orientation_classify": False}, {"use_doc_unwarping": False}, ], ) def test_predict_params( monkeypatch, ocr_engine: DocPreprocessor, params: dict, ) -> None: check_wrapper_simple_inference_param_forwarding( monkeypatch, ocr_engine, "paddlex_pipeline", "dummy_path", params, )