#!/usr/bin/env python3
import difflib
import re

def read_file(path):
    with open(path, 'r', encoding='utf-8') as f:
        return f.read()

def clean_myanmar_text(text):
    lines = text.splitlines()
    cleaned_lines = []
    for line in lines:
        if re.search(r'[\u1000-\u109F]', line):
            cleaned_lines.append(line.strip())
    cleaned = '\n'.join(cleaned_lines)
    cleaned = re.sub(r'\s+', ' ', cleaned)
    return cleaned.strip()

standard = clean_myanmar_text(read_file("tam_bao_011_020_standard.txt"))
gemini = clean_myanmar_text(read_file("tam_bao_011_020.md"))

# Take first 1000 characters for comparison
std_sample = standard[:1000]
gem_sample = gemini[:1000]

print("=== Standard (first 1000 chars) ===")
print(std_sample)
print("\n=== Gemini (first 1000 chars) ===")
print(gem_sample)
print("\n=== Character diff (unified diff) ===")
diff = difflib.unified_diff(std_sample, gem_sample, lineterm='', n=0)
diff_list = list(diff)
# diff output is messy for characters, let's just show side-by-side with markers
print("Side-by-side comparison (S: Standard, G: Gemini)")
for i, (s, g) in enumerate(zip(std_sample, gem_sample)):
    if s != g:
        print(f"Pos {i}: S='{s}' (U+{ord(s):04X}) vs G='{g}' (U+{ord(g):04X})")
        if i > 10:
            # Show context
            start = max(0, i-5)
            end = min(len(std_sample), i+5)
            print(f"  Context S: {std_sample[start:end]}")
            print(f"  Context G: {gem_sample[start:end]}")
            break

# Count differences in first 1000 chars
diff_count = sum(1 for s,g in zip(std_sample, gem_sample) if s != g)
print(f"\nNumber of differing characters in first 1000 chars: {diff_count}")
print(f"Similarity in first 1000 chars: {(1-diff_count/1000)*100:.2f}%")