← 메인 화면프로젝트 자료·코드
← 자료 목록

cc/tests/test_engine.py

프로그램·코드 · 1.5 KB원본 다운로드

원본 내용을 읽기 전용으로 표시합니다.

  1. import pandas as pd
  2. from startup_app.engine import COLUMNS, geometry_contains, load_stores, ring_contains
  3. def test_boundary_including_holes():
  4. outer = [[0, 0], [4, 0], [4, 4], [0, 4], [0, 0]]
  5. hole = [[1, 1], [2, 1], [2, 2], [1, 2], [1, 1]]
  6. polygon = {"type": "Polygon", "coordinates": [outer, hole]}
  7. assert geometry_contains(3, 3, polygon)
  8. assert not geometry_contains(1.5, 1.5, polygon)
  9. assert not geometry_contains(5, 3, polygon)
  10. assert ring_contains(0, 2, outer)
  11. assert geometry_contains(3, 3, {"type": "MultiPolygon", "coordinates": [[outer, hole]]})
  12. def test_data_cleaning_preserves_ids_and_reports_removals(tmp_path):
  13. base = {key: "테스트" for key in COLUMNS}
  14. base.update({"위도": 36.5, "경도": 127.2, "건물명": None, "상가업소번호": "0001"})
  15. rows = [base, base.copy(), {**base, "상가업소번호": "0002", "위도": None}, {**base, "상가업소번호": "0003", "경도": 128}]
  16. path = tmp_path / "stores.csv"
  17. pd.DataFrame(rows).to_csv(path, index=False)
  18. frame, audit = load_stores(path)
  19. assert frame["상가업소번호"].tolist() == ["0001"]
  20. assert frame["건물명"].tolist() == [""]
  21. assert audit == {"원본행": 4, "좌표ID오류제외": 2, "중복ID제외": 1, "사용행": 1}
  22. def test_comparison_baseline_uses_other_categories_only():
  23. import numpy as np
  24. from startup_app.engine import 엔진
  25. predicted = 엔진.비례예측(np.array([10., 20.]), np.array([2., 4.]), np.array([5., 15.]))
  26. np.testing.assert_allclose(predicted, [1., 3.])
파일 확인 정보

SHA-256: bf546e6696cf636cc67bc3657934c8646a01c1700a6deb0ad72b9868c509f3bc