56 lines
2.0 KiB
Python
56 lines
2.0 KiB
Python
import sys
|
|
from pathlib import Path
|
|
|
|
# 프로젝트 루트와 app 디렉토리를 path에 추가
|
|
current_dir = Path(__file__).parent
|
|
project_root = current_dir.parent
|
|
app_dir = project_root / "app"
|
|
sys.path.append(str(app_dir))
|
|
|
|
from services.timetable_service import TimetableService
|
|
import json
|
|
|
|
def test_timetable():
|
|
print("=== Timetable Service Test ===")
|
|
|
|
# 서비스 초기화
|
|
service = TimetableService()
|
|
|
|
if not service.is_loaded:
|
|
print("Failed to load timetable. Check the file path.")
|
|
return
|
|
|
|
# 1. 특정 열차 번호로 검색 (예: 1017)
|
|
print("\n[1] Search by Train Number (1017):")
|
|
results = service.search_train(train_number=1017)
|
|
if results:
|
|
print(f"Found {len(results)} rows for train 1017")
|
|
# 첫 3개 행 출력
|
|
for r in results[:3]:
|
|
print(f" {r['diagram_type']} | {r['train_number']} | {r['station']} | {r['time']} | {r['direction']}")
|
|
else:
|
|
print("No results found for train 1017")
|
|
|
|
# 2. 역과 시간으로 열차 찾기
|
|
# 샘플 데이터에 노포 06:32:30 가 있으므로 이를 기준으로 테스트
|
|
print("\n[2] Find closest train at station '노포', time '06:30', direction '상선':")
|
|
match = service.find_train_by_time(station="노포", direction="상선", time_str="06:30", diagram_type="holiday")
|
|
if match:
|
|
print("Found matching train:")
|
|
print(f" Train: {match['train_number']}")
|
|
print(f" Time: {match['time']}")
|
|
print(f" Station: {match['station']}")
|
|
print(f" Diagram: {match['diagram_type']}")
|
|
else:
|
|
print("No matching train found.")
|
|
|
|
# 3. 특정 역 정차 열차 목록
|
|
print("\n[3] Search trains at '남산' station in holiday:")
|
|
results = service.search_train(station="남산", diagram_type="holiday")
|
|
print(f"Total matching rows: {len(results)}")
|
|
for r in results[:5]:
|
|
print(f" {r['train_number']} | {r['time']} | {r['direction']}")
|
|
|
|
if __name__ == "__main__":
|
|
test_timetable()
|