use crate::locale::Locale;
use crate::num_formats::ToFormattedString;
#[test]
fn test_diverse_numerical_symbols() {
assert_eq!(1.23f64.to_formatted_string(&Locale::de), "1,23");
assert_eq!(1.23f64.to_formatted_string(&Locale::en), "1.23");
assert_eq!(1000.to_formatted_string(&Locale::de), "1.000");
let gsw_res = 1000.to_formatted_string(&Locale::gsw);
assert!(gsw_res.contains('\'') || gsw_res.contains(' '));
let neg_val = -100;
let res_ar = neg_val.to_formatted_string(&Locale::ar_EG);
assert!(res_ar.contains(Locale::ar_EG.minus_sign()));
}
#[test]
fn test_native_numbering_systems_exhaustive() {
let val = 1234567;
let res = val.to_formatted_string(&Locale::ar_EG);
assert!(!res.contains('1'));
assert!(!res.contains('2'));
assert!(res.contains(Locale::ar_EG.grouping_separator()));
}
#[test]
fn test_float_special_cases_and_signs() {
let neg_inf = f64::NEG_INFINITY;
let res = neg_inf.to_formatted_string(&Locale::ar_EG);
let expected_sign = Locale::ar_EG.minus_sign();
assert!(res.contains(expected_sign));
assert!(res.contains("inf"));
}
#[test]
fn test_macro_type_coverage() {
assert_eq!((-1i8).to_formatted_string(&Locale::en), "-1");
assert!(1000u128.to_formatted_string(&Locale::en).contains(','));
assert_eq!(1.5f32.to_formatted_string(&Locale::en), "1.5");
assert_eq!(1.5f64.to_formatted_string(&Locale::en), "1.5");
}
#[test]
fn test_grouping_exhaustion_detailed() {
let hi_ = &Locale::hi;
assert_eq!(10000000.to_formatted_string(hi_), "1,00,00,000");
}