* UPDATE: Adds time formats This is the initial implementation of time formats. Simple things like: "hh:mm:ss AM/PM" works * FIX: Correct padded vs unppadded time formats Thank you copilot!
33 lines
953 B
Rust
33 lines
953 B
Rust
#![allow(clippy::unwrap_used)]
|
|
|
|
use crate::{
|
|
formatter::format::format_number,
|
|
locale::{get_locale, Locale},
|
|
};
|
|
|
|
fn get_default_locale() -> &'static Locale {
|
|
get_locale("en").unwrap()
|
|
}
|
|
|
|
#[test]
|
|
fn simple_test() {
|
|
let locale = get_default_locale();
|
|
let format = "h:mm AM/PM";
|
|
let value = 16.001_423_611_111_11; // =1/86400 => 12:02 AM
|
|
let formatted = format_number(value, format, locale);
|
|
assert_eq!(formatted.text, "12:02 AM");
|
|
}
|
|
|
|
#[test]
|
|
fn padded_vs_unpadded() {
|
|
let locale = get_default_locale();
|
|
let padded_format = "hh:mm:ss AM/PM";
|
|
let unpadded_format = "h:m:s AM/PM";
|
|
let value = 0.25351851851851853; // => 6:05:04 AM (21904/(24*60*60)) where 21904 = 6 * 3600 + 5*60 + 4
|
|
let formatted = format_number(value, padded_format, locale);
|
|
assert_eq!(formatted.text, "06:05:04 AM");
|
|
|
|
let formatted = format_number(value, unpadded_format, locale);
|
|
assert_eq!(formatted.text, "6:5:4 AM");
|
|
}
|