use rtl_isolate_fix::{decorate_rtl_plain_text, FixConfig, LRI, PDI};
#[test]
fn wraps_csharp_in_rtl_sentence() {
let cfg = FixConfig::default();
let input = "زبان C# را دوست دارم.";
let out = decorate_rtl_plain_text(input, &cfg);
let expected = format!("زبان {lri}C#{pdi} را دوست دارم.", lri = LRI, pdi = PDI);
assert_eq!(out, expected);
}
#[test]
fn keeps_sentence_punct_outside_isolate() {
let cfg = FixConfig::default();
let input = "زبان C#. عالیه";
let out = decorate_rtl_plain_text(input, &cfg);
let expected = format!("زبان {lri}C#{pdi}. عالیه", lri = LRI, pdi = PDI);
assert_eq!(out, expected);
}
#[test]
fn does_not_wrap_urls() {
let cfg = FixConfig::default();
let input = "این لینک https://example.com خوب است.";
let out = decorate_rtl_plain_text(input, &cfg);
assert!(out.contains("https://example.com"));
assert!(!out.contains(&format!("{lri}https://", lri = LRI)));
}
#[test]
fn does_not_wrap_emails() {
let cfg = FixConfig::default();
let input = "ایمیل test.user+1@example.com را چک کن.";
let out = decorate_rtl_plain_text(input, &cfg);
assert!(out.contains("test.user+1@example.com"));
assert!(!out.contains(&format!("{lri}test.user", lri = LRI)));
}
#[test]
fn idempotent_when_already_isolated() {
let cfg = FixConfig::default();
let input = format!("زبان {lri}C#{pdi} را دوست دارم.", lri = LRI, pdi = PDI);
let out = decorate_rtl_plain_text(&input, &cfg);
assert_eq!(out, input);
}