Add tests for de, es, fr, js, pt, pt-br and improve other tests

This commit is contained in:
Alessandro Pellizzari 2018-12-09 09:14:47 +00:00
parent 90d0599c3d
commit 2eff6a0e8e
8 changed files with 614 additions and 114 deletions

83
tests/de.rs Normal file
View file

@ -0,0 +1,83 @@
extern crate chrono;
extern crate chrono_locale;
use chrono::{FixedOffset, TimeZone, Timelike};
use chrono_locale::LocaleDate;
// This test is copied from chrono's, disabling unsupported features
#[test]
fn format_it() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "de";
// date specifiers
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "Juli");
assert_eq!(dt.formatl("%B", locale).to_string(), "Juli");
assert_eq!(dt.formatl("%h", locale).to_string(), "Juli");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "So");
assert_eq!(dt.formatl("%A", locale).to_string(), "Sonntag");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-Juli-2001");
// time specifiers
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "am");
assert_eq!(dt.formatl("%p", locale).to_string(), "AM");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 AM");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", locale).to_string(), "So Juli 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}

View file

@ -8,75 +8,76 @@ use chrono_locale::LocaleDate;
#[test]
fn format_en() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "en";
// date specifiers
assert_eq!(dt.formatl("%Y", "en").to_string(), "2001");
assert_eq!(dt.formatl("%C", "en").to_string(), "20");
assert_eq!(dt.formatl("%y", "en").to_string(), "01");
assert_eq!(dt.formatl("%m", "en").to_string(), "07");
assert_eq!(dt.formatl("%b", "en").to_string(), "Jul");
assert_eq!(dt.formatl("%B", "en").to_string(), "July");
assert_eq!(dt.formatl("%h", "en").to_string(), "Jul");
assert_eq!(dt.formatl("%d", "en").to_string(), "08");
assert_eq!(dt.formatl("%e", "en").to_string(), " 8");
assert_eq!(dt.formatl("%e", "en").to_string(), dt.formatl("%_d", "en").to_string());
assert_eq!(dt.formatl("%a", "en").to_string(), "Sun");
assert_eq!(dt.formatl("%A", "en").to_string(), "Sunday");
assert_eq!(dt.formatl("%w", "en").to_string(), "0");
assert_eq!(dt.formatl("%u", "en").to_string(), "7");
assert_eq!(dt.formatl("%U", "en").to_string(), "28");
assert_eq!(dt.formatl("%W", "en").to_string(), "27");
assert_eq!(dt.formatl("%G", "en").to_string(), "2001");
assert_eq!(dt.formatl("%g", "en").to_string(), "01");
assert_eq!(dt.formatl("%V", "en").to_string(), "27");
assert_eq!(dt.formatl("%j", "en").to_string(), "189");
assert_eq!(dt.formatl("%D", "en").to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", "en").to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", "en").to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", "en").to_string(), " 8-Jul-2001");
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "Jul");
assert_eq!(dt.formatl("%B", locale).to_string(), "July");
assert_eq!(dt.formatl("%h", locale).to_string(), "Jul");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "Sun");
assert_eq!(dt.formatl("%A", locale).to_string(), "Sunday");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-Jul-2001");
// time specifiers
assert_eq!(dt.formatl("%H", "en").to_string(), "00");
assert_eq!(dt.formatl("%k", "en").to_string(), " 0");
assert_eq!(dt.formatl("%k", "en").to_string(), dt.formatl("%_H", "en").to_string());
assert_eq!(dt.formatl("%I", "en").to_string(), "12");
assert_eq!(dt.formatl("%l", "en").to_string(), "12");
assert_eq!(dt.formatl("%l", "en").to_string(), dt.formatl("%_I", "en").to_string());
assert_eq!(dt.formatl("%P", "en").to_string(), "am");
assert_eq!(dt.formatl("%p", "en").to_string(), "AM");
assert_eq!(dt.formatl("%M", "en").to_string(), "34");
assert_eq!(dt.formatl("%S", "en").to_string(), "60");
assert_eq!(dt.formatl("%f", "en").to_string(), "026490708");
assert_eq!(dt.formatl("%.f", "en").to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", "en").to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", "en").to_string(), ".026");
assert_eq!(dt.formatl("%.6f", "en").to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", "en").to_string(), ".026490708");
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "am");
assert_eq!(dt.formatl("%p", locale).to_string(), "AM");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", "en").to_string(), "026");
// assert_eq!(dt.formatl("%6f", "en").to_string(), "026490");
// assert_eq!(dt.formatl("%9f", "en").to_string(), "026490708");
assert_eq!(dt.formatl("%R", "en").to_string(), "00:34");
assert_eq!(dt.formatl("%T", "en").to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", "en").to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", "en").to_string(), "12:34:60 AM");
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 AM");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", "en").to_string(), "ACST");
assert_eq!(dt.formatl("%z", "en").to_string(), "+0930");
assert_eq!(dt.formatl("%:z", "en").to_string(), "+09:30");
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", "en").to_string(), "Sun Jul 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", "en").to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(dt.formatl("%c", locale).to_string(), "Sun Jul 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", "en").to_string(),
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", "en").to_string(), "994518299");
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", "en").to_string(), "\t");
assert_eq!(dt.formatl("%n", "en").to_string(), "\n");
assert_eq!(dt.formatl("%%", "en").to_string(), "%");
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}

83
tests/es.rs Normal file
View file

@ -0,0 +1,83 @@
extern crate chrono;
extern crate chrono_locale;
use chrono::{FixedOffset, TimeZone, Timelike};
use chrono_locale::LocaleDate;
// This test is copied from chrono's, disabling unsupported features
#[test]
fn format_it() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "es";
// date specifiers
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "jul");
assert_eq!(dt.formatl("%B", locale).to_string(), "julio");
assert_eq!(dt.formatl("%h", locale).to_string(), "jul");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "dom");
assert_eq!(dt.formatl("%A", locale).to_string(), "domingo");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-jul-2001");
// time specifiers
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "am");
assert_eq!(dt.formatl("%p", locale).to_string(), "AM");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 AM");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", locale).to_string(), "dom jul 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}

83
tests/fr.rs Normal file
View file

@ -0,0 +1,83 @@
extern crate chrono;
extern crate chrono_locale;
use chrono::{FixedOffset, TimeZone, Timelike};
use chrono_locale::LocaleDate;
// This test is copied from chrono's, disabling unsupported features
#[test]
fn format_it() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "fr";
// date specifiers
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "juil");
assert_eq!(dt.formatl("%B", locale).to_string(), "juillet");
assert_eq!(dt.formatl("%h", locale).to_string(), "juil");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "dim");
assert_eq!(dt.formatl("%A", locale).to_string(), "dimanche");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-juil-2001");
// time specifiers
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "am");
assert_eq!(dt.formatl("%p", locale).to_string(), "AM");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 AM");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", locale).to_string(), "dim juil 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}

View file

@ -8,75 +8,76 @@ use chrono_locale::LocaleDate;
#[test]
fn format_it() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "it";
// date specifiers
assert_eq!(dt.formatl("%Y", "it").to_string(), "2001");
assert_eq!(dt.formatl("%C", "it").to_string(), "20");
assert_eq!(dt.formatl("%y", "it").to_string(), "01");
assert_eq!(dt.formatl("%m", "it").to_string(), "07");
assert_eq!(dt.formatl("%b", "it").to_string(), "lug");
assert_eq!(dt.formatl("%B", "it").to_string(), "luglio");
assert_eq!(dt.formatl("%h", "it").to_string(), "lug");
assert_eq!(dt.formatl("%d", "it").to_string(), "08");
assert_eq!(dt.formatl("%e", "it").to_string(), " 8");
assert_eq!(dt.formatl("%e", "it").to_string(), dt.formatl("%_d", "it").to_string());
assert_eq!(dt.formatl("%a", "it").to_string(), "dom");
assert_eq!(dt.formatl("%A", "it").to_string(), "domenica");
assert_eq!(dt.formatl("%w", "it").to_string(), "0");
assert_eq!(dt.formatl("%u", "it").to_string(), "7");
assert_eq!(dt.formatl("%U", "it").to_string(), "28");
assert_eq!(dt.formatl("%W", "it").to_string(), "27");
assert_eq!(dt.formatl("%G", "it").to_string(), "2001");
assert_eq!(dt.formatl("%g", "it").to_string(), "01");
assert_eq!(dt.formatl("%V", "it").to_string(), "27");
assert_eq!(dt.formatl("%j", "it").to_string(), "189");
assert_eq!(dt.formatl("%D", "it").to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", "it").to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", "it").to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", "it").to_string(), " 8-lug-2001");
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "lug");
assert_eq!(dt.formatl("%B", locale).to_string(), "luglio");
assert_eq!(dt.formatl("%h", locale).to_string(), "lug");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "dom");
assert_eq!(dt.formatl("%A", locale).to_string(), "domenica");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-lug-2001");
// time specifiers
assert_eq!(dt.formatl("%H", "it").to_string(), "00");
assert_eq!(dt.formatl("%k", "it").to_string(), " 0");
assert_eq!(dt.formatl("%k", "it").to_string(), dt.formatl("%_H", "it").to_string());
assert_eq!(dt.formatl("%I", "it").to_string(), "12");
assert_eq!(dt.formatl("%l", "it").to_string(), "12");
assert_eq!(dt.formatl("%l", "it").to_string(), dt.formatl("%_I", "it").to_string());
assert_eq!(dt.formatl("%P", "it").to_string(), "am");
assert_eq!(dt.formatl("%p", "it").to_string(), "AM");
assert_eq!(dt.formatl("%M", "it").to_string(), "34");
assert_eq!(dt.formatl("%S", "it").to_string(), "60");
assert_eq!(dt.formatl("%f", "it").to_string(), "026490708");
assert_eq!(dt.formatl("%.f", "it").to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", "it").to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", "it").to_string(), ".026");
assert_eq!(dt.formatl("%.6f", "it").to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", "it").to_string(), ".026490708");
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "am");
assert_eq!(dt.formatl("%p", locale).to_string(), "AM");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", "it").to_string(), "026");
// assert_eq!(dt.formatl("%6f", "it").to_string(), "026490");
// assert_eq!(dt.formatl("%9f", "it").to_string(), "026490708");
assert_eq!(dt.formatl("%R", "it").to_string(), "00:34");
assert_eq!(dt.formatl("%T", "it").to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", "it").to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", "it").to_string(), "12:34:60 AM");
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 AM");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", "it").to_string(), "ACST");
assert_eq!(dt.formatl("%z", "it").to_string(), "+0930");
assert_eq!(dt.formatl("%:z", "it").to_string(), "+09:30");
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", "it").to_string(), "dom lug 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", "it").to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(dt.formatl("%c", locale).to_string(), "dom lug 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", "it").to_string(),
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", "it").to_string(), "994518299");
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", "it").to_string(), "\t");
assert_eq!(dt.formatl("%n", "it").to_string(), "\n");
assert_eq!(dt.formatl("%%", "it").to_string(), "%");
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}

83
tests/ja.rs Normal file
View file

@ -0,0 +1,83 @@
extern crate chrono;
extern crate chrono_locale;
use chrono::{FixedOffset, TimeZone, Timelike};
use chrono_locale::LocaleDate;
// This test is copied from chrono's, disabling unsupported features
#[test]
fn format_it() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "ja";
// date specifiers
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "7月");
assert_eq!(dt.formatl("%B", locale).to_string(), "7月");
assert_eq!(dt.formatl("%h", locale).to_string(), "7月");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "");
assert_eq!(dt.formatl("%A", locale).to_string(), "日曜日");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-7月-2001");
// time specifiers
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "午前");
assert_eq!(dt.formatl("%p", locale).to_string(), "午前");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 午前");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", locale).to_string(), "日 7月 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}

83
tests/pt-br.rs Normal file
View file

@ -0,0 +1,83 @@
extern crate chrono;
extern crate chrono_locale;
use chrono::{FixedOffset, TimeZone, Timelike};
use chrono_locale::LocaleDate;
// This test is copied from chrono's, disabling unsupported features
#[test]
fn format_it() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "pt_BR";
// date specifiers
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "jul");
assert_eq!(dt.formatl("%B", locale).to_string(), "julho");
assert_eq!(dt.formatl("%h", locale).to_string(), "jul");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "dom");
assert_eq!(dt.formatl("%A", locale).to_string(), "domingo");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-jul-2001");
// time specifiers
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "am");
assert_eq!(dt.formatl("%p", locale).to_string(), "AM");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 AM");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", locale).to_string(), "dom jul 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}

83
tests/pt.rs Normal file
View file

@ -0,0 +1,83 @@
extern crate chrono;
extern crate chrono_locale;
use chrono::{FixedOffset, TimeZone, Timelike};
use chrono_locale::LocaleDate;
// This test is copied from chrono's, disabling unsupported features
#[test]
fn format_it() {
let dt = FixedOffset::east(34200).ymd(2001, 7, 8).and_hms_nano(0, 34, 59, 1_026_490_708);
let locale = "pt";
// date specifiers
assert_eq!(dt.formatl("%Y", locale).to_string(), "2001");
assert_eq!(dt.formatl("%C", locale).to_string(), "20");
assert_eq!(dt.formatl("%y", locale).to_string(), "01");
assert_eq!(dt.formatl("%m", locale).to_string(), "07");
assert_eq!(dt.formatl("%b", locale).to_string(), "Jul");
assert_eq!(dt.formatl("%B", locale).to_string(), "Julho");
assert_eq!(dt.formatl("%h", locale).to_string(), "Jul");
assert_eq!(dt.formatl("%d", locale).to_string(), "08");
assert_eq!(dt.formatl("%e", locale).to_string(), " 8");
assert_eq!(dt.formatl("%e", locale).to_string(), dt.formatl("%_d", locale).to_string());
assert_eq!(dt.formatl("%a", locale).to_string(), "dom");
assert_eq!(dt.formatl("%A", locale).to_string(), "Domingo");
assert_eq!(dt.formatl("%w", locale).to_string(), "0");
assert_eq!(dt.formatl("%u", locale).to_string(), "7");
assert_eq!(dt.formatl("%U", locale).to_string(), "28");
assert_eq!(dt.formatl("%W", locale).to_string(), "27");
assert_eq!(dt.formatl("%G", locale).to_string(), "2001");
assert_eq!(dt.formatl("%g", locale).to_string(), "01");
assert_eq!(dt.formatl("%V", locale).to_string(), "27");
assert_eq!(dt.formatl("%j", locale).to_string(), "189");
assert_eq!(dt.formatl("%D", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%x", locale).to_string(), "07/08/01");
assert_eq!(dt.formatl("%F", locale).to_string(), "2001-07-08");
assert_eq!(dt.formatl("%v", locale).to_string(), " 8-Jul-2001");
// time specifiers
assert_eq!(dt.formatl("%H", locale).to_string(), "00");
assert_eq!(dt.formatl("%k", locale).to_string(), " 0");
assert_eq!(dt.formatl("%k", locale).to_string(), dt.formatl("%_H", locale).to_string());
assert_eq!(dt.formatl("%I", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), "12");
assert_eq!(dt.formatl("%l", locale).to_string(), dt.formatl("%_I", locale).to_string());
assert_eq!(dt.formatl("%P", locale).to_string(), "am");
assert_eq!(dt.formatl("%p", locale).to_string(), "AM");
assert_eq!(dt.formatl("%M", locale).to_string(), "34");
assert_eq!(dt.formatl("%S", locale).to_string(), "60");
assert_eq!(dt.formatl("%f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%.f", locale).to_string(), ".026490708");
assert_eq!(dt.with_nanosecond(1_026_490_000).unwrap().formatl("%.f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.3f", locale).to_string(), ".026");
assert_eq!(dt.formatl("%.6f", locale).to_string(), ".026490");
assert_eq!(dt.formatl("%.9f", locale).to_string(), ".026490708");
// The following formats are not exposed by chrono and cannot be formatted
// assert_eq!(dt.formatl("%3f", locale).to_string(), "026");
// assert_eq!(dt.formatl("%6f", locale).to_string(), "026490");
// assert_eq!(dt.formatl("%9f", locale).to_string(), "026490708");
assert_eq!(dt.formatl("%R", locale).to_string(), "00:34");
assert_eq!(dt.formatl("%T", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%X", locale).to_string(), "00:34:60");
assert_eq!(dt.formatl("%r", locale).to_string(), "12:34:60 AM");
// time zone specifiers
//assert_eq!(dt.formatl("%Z", locale).to_string(), "ACST");
assert_eq!(dt.formatl("%z", locale).to_string(), "+0930");
assert_eq!(dt.formatl("%:z", locale).to_string(), "+09:30");
// date & time specifiers
assert_eq!(dt.formatl("%c", locale).to_string(), "dom Jul 8 00:34:60 2001");
assert_eq!(dt.formatl("%+", locale).to_string(), "2001-07-08T00:34:60.026490708+09:30");
assert_eq!(
dt.with_nanosecond(1_026_490_000).unwrap().formatl("%+", locale).to_string(),
"2001-07-08T00:34:60.026490+09:30"
);
assert_eq!(dt.formatl("%s", locale).to_string(), "994518299");
// special specifiers
assert_eq!(dt.formatl("%t", locale).to_string(), "\t");
assert_eq!(dt.formatl("%n", locale).to_string(), "\n");
assert_eq!(dt.formatl("%%", locale).to_string(), "%");
}