use shlesha::Shlesha;
fn main() {
let shlesha = Shlesha::new();
println!("๐ Debugging Direct Mapping");
println!("===========================");
let test_cases = vec![
("namaste", "ISO words with exact matches"),
("ka", "Single consonant"),
("ga", "Another consonant"),
("dharma", "Word with 'dha'"),
("yoga", "Word with 'ya'"),
];
for (input, desc) in test_cases {
println!("\n๐งช Testing: {} ({})", input, desc);
match shlesha.transliterate(input, "iso15919", "devanagari") {
Ok(result) => println!(" โ
iso15919 โ devanagari: {} โ {}", input, result),
Err(e) => println!(" โ iso15919 โ devanagari: {} โ Error: {}", input, e),
}
if let Ok(deva_result) = shlesha.transliterate(input, "iso15919", "devanagari") {
match shlesha.transliterate(&deva_result, "devanagari", "iso15919") {
Ok(back_to_iso) => println!(
" โ
Round-trip: {} โ {} โ {}",
input, deva_result, back_to_iso
),
Err(e) => println!(" โ Round-trip failed: {}", e),
}
}
match shlesha.transliterate(input, "iast", "devanagari") {
Ok(hub_result) => println!(" ๐ Hub-based (IAST): {} โ {}", input, hub_result),
Err(e) => println!(" โ Hub-based error: {}", e),
}
}
println!("\n๐ก Analysis:");
println!("- Direct mappings should handle exact sequences like 'ka', 'ga', 'dha'");
println!("- Differences between direct and hub-based show pre-computation impact");
}