import sys
import os

# 프로젝트 루트 경로 추가
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from app.core.reference_data import ref_data
from app.data.log_parser import DOSItoMMIClass

def test_station_mapping():
    print("▶ ReferenceData 로딩 테스트")
    
    # SQLite 기반 시스템은 자동으로 로드됨
    if not ref_data._is_loaded:
        print("[Fail] ReferenceData 로드 실패")
        return

    print(f"   TC1 역 개수: {len(ref_data.tc1_stations)}")
    print(f"   TC2 역 개수: {len(ref_data.tc2_stations)}")
    print(f"   데이터 버전: {ref_data.get_version()}")
    
    # 더미 데이터 기준: Code 1001 -> 역1
    station_name = ref_data.get_station_name(1001)
    print(f"   Code 1001 -> Name: {station_name}")
    
    if station_name != "역1":
        print(f"[Fail] 역 이름 매핑 오류. Expected '역1', Got '{station_name}'")
    else:
        print("[Pass] 역 이름 매핑 성공")

    print("\n▶ 로그 데이터 매핑 시뮬레이션")
    # 가상의 로그 데이터 생성
    log_item = DOSItoMMIClass()
    log_item.source = 16 # TC1
    log_item.pstn = 1001 # 현재 역 코드
    
    # 매핑 로직 (analysis_panel.py와 동일)
    if log_item.pstn > 0:
        st_name = ref_data.get_station_name(log_item.pstn)
        if st_name:
            log_item.station_name = st_name
            
    print(f"   Log Item Station Name: {log_item.station_name}")
    
    if log_item.station_name == "역1":
        print("[Pass] 로그 데이터 매핑 성공")
    else:
        print("[Fail] 로그 데이터 매핑 실패")

if __name__ == "__main__":
    test_station_mapping()
