data-comparison/test_ba_confirmed_cases.py
2025-08-20 15:55:21 +07:00

101 lines
3.7 KiB
Python

#!/usr/bin/env python3
from data_comparator import KSTCoordiComparator
def test_ba_confirmed_cases():
"""Test that the comparison logic matches BA confirmed expectations"""
print("Testing BA confirmed duplicate cases...")
# Create comparator and load data
comparator = KSTCoordiComparator("data/sample-data.xlsx")
if not comparator.load_data():
print("Failed to load data!")
return
print("\n=== US URGENT Sheet - BA Confirmed Cases ===")
us_summary = comparator.get_comparison_summary('US URGENT')
# Check for expected duplicates in US URGENT
coordi_duplicates = us_summary['mismatch_details']['coordi_duplicates']
mixed_duplicates = us_summary['mismatch_details']['mixed_duplicates']
expected_coordi_duplicates = [
('금수의 영역', '17'),
('신결', '23')
]
expected_mixed_duplicates = [
('트윈 가이드', '31')
]
print("Coordi duplicates found:")
found_coordi = []
for item in coordi_duplicates:
key = (item['title'], item['episode'])
found_coordi.append(key)
print(f" - {item['title']} - Episode {item['episode']}")
print("\nMixed duplicates found:")
found_mixed = []
for item in mixed_duplicates:
key = (item['title'], item['episode'])
found_mixed.append(key)
print(f" - {item['title']} - Episode {item['episode']} ({item['reason']})")
# Verify expected cases
print("\n✓ Verification:")
for expected in expected_coordi_duplicates:
if expected in found_coordi:
print(f" ✓ Found expected Coordi duplicate: {expected[0]} - Episode {expected[1]}")
else:
print(f" ✗ Missing expected Coordi duplicate: {expected[0]} - Episode {expected[1]}")
for expected in expected_mixed_duplicates:
if expected in found_mixed:
print(f" ✓ Found expected mixed duplicate: {expected[0]} - Episode {expected[1]}")
else:
print(f" ✗ Missing expected mixed duplicate: {expected[0]} - Episode {expected[1]}")
print("\n=== TH URGENT Sheet - BA Confirmed Cases ===")
th_summary = comparator.get_comparison_summary('TH URGENT')
# Check for expected duplicates in TH URGENT
kst_duplicates = th_summary['mismatch_details']['kst_duplicates']
coordi_only = th_summary['mismatch_details']['coordi_only']
expected_kst_duplicates = [
('백라이트', '53-1x(휴재)')
]
print("KST duplicates found:")
found_kst = []
for item in kst_duplicates:
key = (item['title'], item['episode'])
found_kst.append(key)
print(f" - {item['title']} - Episode {item['episode']}")
# Check that 백라이트 - Episode 53-1x(휴재) doesn't appear in Coordi
print("\nChecking that 백라이트 - Episode 53-1x(휴재) doesn't appear in Coordi:")
found_in_coordi = False
for item in coordi_only:
if item['title'] == '백라이트' and item['episode'] == '53-1x(휴재)':
found_in_coordi = True
break
if not found_in_coordi:
print(" ✓ 백라이트 - Episode 53-1x(휴재) correctly does NOT appear in Coordi data")
else:
print(" ✗ 백라이트 - Episode 53-1x(휴재) incorrectly appears in Coordi data")
# Verify expected cases
print("\n✓ Verification:")
for expected in expected_kst_duplicates:
if expected in found_kst:
print(f" ✓ Found expected KST duplicate: {expected[0]} - Episode {expected[1]}")
else:
print(f" ✗ Missing expected KST duplicate: {expected[0]} - Episode {expected[1]}")
print("\n✓ All BA confirmed cases tested!")
if __name__ == "__main__":
test_ba_confirmed_cases()