-
Notifications
You must be signed in to change notification settings - Fork 229
Closed
Labels
C-calendarComponent: CalendarsComponent: CalendarsT-bugType: Bad behavior, security, privacyType: Bad behavior, security, privacyU-ecma402User: ECMA-402 compatibilityUser: ECMA-402 compatibility
Milestone
Description
There are assertion failures when testing the minimum and maximum allowed Temporal.PlainDate values for the Chinese, Dangi, IslamicObservational, and IslamicUmmAlQura calendars.
I don't know if #4904 will fix these issues, too.
(Tested with release 1.4.)
use icu::calendar::Date;
use icu::calendar::Calendar;
use icu::calendar::chinese::Chinese;
use icu::calendar::dangi::Dangi;
use icu::calendar::islamic::{IslamicObservational, IslamicUmmAlQura};
fn main() {
// Minimum and maximum dates allowed in ECMA-262 Temporal.
let min_date_iso = Date::try_new_iso_date(-271821, 4, 19).unwrap();
let max_date_iso = Date::try_new_iso_date(275760, 9, 13).unwrap();
// Assertion failure:
// > Month should be in range of u8! Value -1428 failed for RD RataDie(-99280838)
{
let cal = Chinese::new_always_calculating();
let min_date = cal.date_from_iso(min_date_iso);
let max_date = cal.date_from_iso(max_date_iso);
println!("min.year = {}, max.year = {}", cal.year(&min_date).number, cal.year(&max_date).number);
}
// Assertion failure:
// > Month should be in range of u8! Value -1428 failed for RD RataDie(-99280838)
{
let cal = Dangi::new_always_calculating();
let min_date = cal.date_from_iso(min_date_iso);
let max_date = cal.date_from_iso(max_date_iso);
println!("min.year = {}, max.year = {}", cal.year(&min_date).number, cal.year(&max_date).number);
}
// Assertion failure:
// > assertion failed: Date::try_new_observational_islamic_date(y, m, d, IslamicObservational::new_always_calculating()).is_ok()
{
let cal = IslamicObservational::new_always_calculating();
let min_date = cal.date_from_iso(min_date_iso);
let max_date = cal.date_from_iso(max_date_iso);
println!("min.year = {}, max.year = {}", cal.year(&min_date).number, cal.year(&max_date).number);
}
// Assertion failure:
// > assertion failed: Date::try_new_ummalqura_date(y, m, d, IslamicUmmAlQura::new_always_calculating()).is_ok()
{
let cal = IslamicUmmAlQura::new_always_calculating();
let min_date = cal.date_from_iso(min_date_iso);
let max_date = cal.date_from_iso(max_date_iso);
println!("min.year = {}, max.year = {}", cal.year(&min_date).number, cal.year(&max_date).number);
}
}Metadata
Metadata
Assignees
Labels
C-calendarComponent: CalendarsComponent: CalendarsT-bugType: Bad behavior, security, privacyType: Bad behavior, security, privacyU-ecma402User: ECMA-402 compatibilityUser: ECMA-402 compatibility