test_table_recognition_v2.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import pytest
  2. from paddleocr import TableRecognitionPipelineV2
  3. from ..testing_utils import (
  4. TEST_DATA_DIR,
  5. check_simple_inference_result,
  6. check_wrapper_simple_inference_param_forwarding,
  7. )
  8. @pytest.fixture(scope="module")
  9. def table_recognition_v2_pipeline():
  10. return TableRecognitionPipelineV2()
  11. @pytest.mark.parametrize(
  12. "image_path",
  13. [
  14. TEST_DATA_DIR / "table.jpg",
  15. ],
  16. )
  17. def test_predict(table_recognition_v2_pipeline, image_path):
  18. result = table_recognition_v2_pipeline.predict(
  19. str(image_path), use_doc_orientation_classify=False, use_doc_unwarping=False
  20. )
  21. check_simple_inference_result(result)
  22. res = result[0]
  23. assert len(res["table_res_list"]) > 0
  24. assert isinstance(res["table_res_list"][0], dict)
  25. assert len(res["table_res_list"][0]["cell_box_list"]) > 0
  26. assert isinstance(res["table_res_list"][0]["pred_html"], str)
  27. assert isinstance(res["table_res_list"][0]["table_ocr_pred"], dict)
  28. @pytest.mark.parametrize(
  29. "params",
  30. [
  31. {"use_doc_orientation_classify": False},
  32. {"use_doc_unwarping": False},
  33. {"use_layout_detection": False},
  34. {"use_ocr_model": False},
  35. {"text_det_limit_side_len": 640, "text_det_limit_type": "min"},
  36. {"text_det_thresh": 0.5},
  37. {"text_det_box_thresh": 0.3},
  38. {"text_det_unclip_ratio": 3.0},
  39. {"text_rec_score_thresh": 0.5},
  40. ],
  41. )
  42. def test_predict_params(
  43. monkeypatch,
  44. table_recognition_v2_pipeline,
  45. params,
  46. ):
  47. check_wrapper_simple_inference_param_forwarding(
  48. monkeypatch,
  49. table_recognition_v2_pipeline,
  50. "paddlex_pipeline",
  51. "dummy_path",
  52. params,
  53. )
  54. # TODO: Test constructor and other methods