#!/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()