원본과 JSON을 비교하는 Python 검증 스크립트를 작성한다.
화면 표시 검증은 Playwright로 자동화한다.
이번 과제에서는 계획만 작성하고 코드는 변경하지 않는다.
## 목적
화천 관망도에 표시되는 시설과 제원이 원본 SWMM 자료와 일치하는지 검증한다.
## 검증 방법
- 원본 INP와 network.json의 시설 종류별 개수 및 ID를 비교한다.
- 맨홀 좌표·바닥고, 관로 연결 노드·길이·단면 치수를 대조한다.
- 화면에서 시설을 선택했을 때 표시되는 제원을 JSON과 비교한다.
- 좌표 누락 등 표시할 수 없는 시설의 제외 사유를 확인한다.
## 완료 기준
- 비교 대상 항목의 불일치가 없거나, 차이의 원인이 설명되어 있다.
- 표시 제외 시설의 목록과 사유가 확인된다.
- 검증 결과와 재현 방법을 이슈에 남긴다.
## 후속 구현 계획
원본과 JSON을 비교하는 Python 검증 스크립트를 작성한다.
화면 표시 검증은 Playwright로 자동화한다.
이번 과제에서는 계획만 작성하고 코드는 변경하지 않는다.
npm install 및 npx playwright install chromium 후, 별도 터미널에서 python3 start.py 실행 → npm run test:ui
결과 요약: validation/issue-1-result.json. 실행 결과 JSON과 스크린샷은 test-results/에 생성되며 Git에서 제외됩니다. 원본 INP는 업로드하지 않았습니다.
남은 범위
이슈의 기존 '이번 과제는 계획만 작성' 문구를 보존하기 위해 main에 자동 병합하지 않았습니다. PR 검토와 WSL 환경에서의 재실행이 남아 있어 이슈는 열어둡니다. 이번 결과는 입력/JSON/정보창의 일치 검증이며 수리해석, 측량 정확성 또는 전체 브라우저 호환성 검증 완료를 뜻하지 않습니다. WSL 원본 작업 폴더와 로컬 README 변경은 수정하지 않았습니다.
검증 도구 구현과 1차 실행을 완료했습니다. 변경 내용은 PR #2에서 검토할 수 있습니다: https://gitea.hmac.kr/dekim2/hwacheon-network-viewer/pulls/2
### 수행 범위
- 웹사이트 코드와 network.json은 변경하지 않고 별도 브랜치 codex/issue-1-validation에 검증 도구를 추가했습니다.
- Python: 원본 해시, 시설 종류별 ID·수량, 좌표·바닥고·깊이, 연결, 관로 길이·경사·단면·접속고, 미배치 사유를 비교합니다.
- Playwright: 전체 1,662개 시설의 제원 정보창과 대표 6개 시설의 실제 검색·선택, 배율·레이어·평면 보기·초기화·미배치 사유를 확인했습니다.
### 실행 결과
- 원본 HC_A.inp ↔ network.json: 29,378회 비교, 불일치 0건.
- 오류 탐지용 합성 자료 테스트: 11개 통과. 관경 변경, 연결 오류, ID 누락, null/0 구분, 중복 ID, 원본 해시 차이, 절대표고 오프셋, 사각 단면 폭·높이, 미배치 사유 누락, 미지원 단면 등을 검사했습니다.
- 브라우저: Windows / Playwright 1.62.1 / headless Edge 156.0.4314.42에서 통과. 전체 화면과 사각관 선택 화면도 시각 확인했습니다.
- 배치 제외: OUT_PUMP(좌표 없음), C_OUT_PUMP(연결 노드 좌표 없음), UHR1-01411(양 끝 평면 좌표가 같음). 입력 시설은 보존되고 제외 사유가 표시됩니다.
### 재현 방법
PR #2 브랜치의 README 검증 절을 따릅니다.
1. python3 tools/validate_network.py --inp "/원본경로/HC_A.inp" --output test-results/data-validation.json
2. python3 -m unittest discover -s tests -p 'test_*.py' -v
3. npm install 및 npx playwright install chromium 후, 별도 터미널에서 python3 start.py 실행 → npm run test:ui
결과 요약: validation/issue-1-result.json. 실행 결과 JSON과 스크린샷은 test-results/에 생성되며 Git에서 제외됩니다. 원본 INP는 업로드하지 않았습니다.
### 남은 범위
이슈의 기존 '이번 과제는 계획만 작성' 문구를 보존하기 위해 main에 자동 병합하지 않았습니다. PR 검토와 WSL 환경에서의 재실행이 남아 있어 이슈는 열어둡니다. 이번 결과는 입력/JSON/정보창의 일치 검증이며 수리해석, 측량 정확성 또는 전체 브라우저 호환성 검증 완료를 뜻하지 않습니다. WSL 원본 작업 폴더와 로컬 README 변경은 수정하지 않았습니다.
후속 이슈 #3, #4를 각각 생성 → 구현 → 테스트 → 결과 기록 → main 병합 → 닫기 순서로 처리했습니다. PR #2 병합 커밋: 2e0460d464.
현재 결과: Python 회귀 테스트 15개 통과, 원본 INP 대조 29,378회 불일치 0건, 브라우저 실행 실패 기록 회귀 검사 통과, 실제 Edge 정보창/화면 검사 1,662개 시설 통과. 자세한 결과는 각 후속 이슈와 validation/issue-1-result.json에 있습니다.
이슈 #1은 WSL에서 재실행하는 확인이 아직 남아 있어 열어둡니다. WSL 작업 폴더에는 로컬 README 변경이 있어 자동 pull/덮어쓰기를 하지 않았습니다. 추후 로컬 변경을 보존하고 main을 받아 재실행하면 됩니다.
후속 이슈 #3, #4를 각각 생성 → 구현 → 테스트 → 결과 기록 → main 병합 → 닫기 순서로 처리했습니다. PR #2 병합 커밋: 2e0460d4649c5d01ce336883dd10eff0134e5f66.
현재 결과: Python 회귀 테스트 15개 통과, 원본 INP 대조 29,378회 불일치 0건, 브라우저 실행 실패 기록 회귀 검사 통과, 실제 Edge 정보창/화면 검사 1,662개 시설 통과. 자세한 결과는 각 후속 이슈와 validation/issue-1-result.json에 있습니다.
이슈 #1은 WSL에서 재실행하는 확인이 아직 남아 있어 열어둡니다. WSL 작업 폴더에는 로컬 README 변경이 있어 자동 pull/덮어쓰기를 하지 않았습니다. 추후 로컬 변경을 보존하고 main을 받아 재실행하면 됩니다.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
목적
화천 관망도에 표시되는 시설과 제원이 원본 SWMM 자료와 일치하는지 검증한다.
검증 방법
완료 기준
후속 구현 계획
원본과 JSON을 비교하는 Python 검증 스크립트를 작성한다.
화면 표시 검증은 Playwright로 자동화한다.
이번 과제에서는 계획만 작성하고 코드는 변경하지 않는다.
검증 도구 구현과 1차 실행을 완료했습니다. 변경 내용은 PR #2에서 검토할 수 있습니다: #2
수행 범위
실행 결과
재현 방법
PR #2 브랜치의 README 검증 절을 따릅니다.
결과 요약: validation/issue-1-result.json. 실행 결과 JSON과 스크린샷은 test-results/에 생성되며 Git에서 제외됩니다. 원본 INP는 업로드하지 않았습니다.
남은 범위
이슈의 기존 '이번 과제는 계획만 작성' 문구를 보존하기 위해 main에 자동 병합하지 않았습니다. PR 검토와 WSL 환경에서의 재실행이 남아 있어 이슈는 열어둡니다. 이번 결과는 입력/JSON/정보창의 일치 검증이며 수리해석, 측량 정확성 또는 전체 브라우저 호환성 검증 완료를 뜻하지 않습니다. WSL 원본 작업 폴더와 로컬 README 변경은 수정하지 않았습니다.
후속 이슈 #3, #4를 각각 생성 → 구현 → 테스트 → 결과 기록 → main 병합 → 닫기 순서로 처리했습니다. PR #2 병합 커밋:
2e0460d464.현재 결과: Python 회귀 테스트 15개 통과, 원본 INP 대조 29,378회 불일치 0건, 브라우저 실행 실패 기록 회귀 검사 통과, 실제 Edge 정보창/화면 검사 1,662개 시설 통과. 자세한 결과는 각 후속 이슈와 validation/issue-1-result.json에 있습니다.
이슈 #1은 WSL에서 재실행하는 확인이 아직 남아 있어 열어둡니다. WSL 작업 폴더에는 로컬 README 변경이 있어 자동 pull/덮어쓰기를 하지 않았습니다. 추후 로컬 변경을 보존하고 main을 받아 재실행하면 됩니다.