AI_MMI_Analyser/tests/test_parser_comparison.py

55 lines
1.6 KiB
Python

import time
import os
import sys
from app.data.fast_parser import FastLogParser
from app.core.reference_data import ref_data
import polars as pl
def test_parser():
# Setup
input_file = "d:/py_train/mmi/sample/20250723_180942_13_HCR_TC2_edit.dat"
if not os.path.exists(input_file):
print(f"Input file not found: {input_file}")
return
# Reference Data는 자동으로 SQLite에서 로드됨
print(f"Reference Data loaded. Version: {ref_data.get_version()}")
# Run Fast Parser
print("Running FastLogParser...")
start_time = time.time()
output_parquet = FastLogParser.parse_to_parquet(input_file)
end_time = time.time()
if output_parquet:
print(f"Success! Saved to: {output_parquet}")
print(f"Time taken: {end_time - start_time:.4f} seconds")
# Verify Data
df = pl.read_parquet(output_parquet)
print(f"Rows: {len(df)}")
# Check System ID
if "system_id" in df.columns:
print("System ID Counts:")
print(df["system_id"].value_counts())
else:
print("ERROR: 'system_id' column NOT found!")
print("Columns found:", df.columns[:10])
# Check VDI/VDO fields
print("\nVDI/VDO Sample:")
vdi_cols = [c for c in df.columns if "vdi" in c or "vdo" in c]
if vdi_cols:
print(f"Found {len(vdi_cols)} VDI/VDO columns.")
print(df.select(vdi_cols[:5]).head())
else:
print("WARNING: No VDI/VDO columns found!")
else:
print("Parsing Failed.")
if __name__ == "__main__":
test_parser()