Skip to content

Commit b279bdc

Browse files
authored
Don't use 1.x baked data in icu_datetime (#5553)
1 parent 47ba490 commit b279bdc

File tree

9 files changed

+564
-749
lines changed

9 files changed

+564
-749
lines changed

components/datetime/src/format/datetime.rs

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -959,56 +959,6 @@ mod tests {
959959
);
960960
}
961961

962-
#[test]
963-
#[cfg(feature = "serde")]
964-
fn test_basic() {
965-
use crate::provider::calendar::{GregorianDateSymbolsV1Marker, TimeSymbolsV1Marker};
966-
use icu_calendar::{Calendar, DateTime};
967-
use icu_provider::prelude::*;
968-
969-
let locale = "en".parse().unwrap();
970-
let req = DataRequest {
971-
id: DataIdentifierBorrowed::for_locale(&locale),
972-
..Default::default()
973-
};
974-
let date_data =
975-
DataProvider::<GregorianDateSymbolsV1Marker>::load(&crate::provider::Baked, req)
976-
.unwrap();
977-
let time_data =
978-
DataProvider::<TimeSymbolsV1Marker>::load(&crate::provider::Baked, req).unwrap();
979-
let pattern: runtime::Pattern = "MMM".parse().unwrap();
980-
let datetime = DateTime::try_new_gregorian_datetime(2020, 8, 1, 12, 34, 28).unwrap();
981-
let fixed_decimal_format =
982-
FixedDecimalFormatter::try_new(&locale, Default::default()).unwrap();
983-
984-
let mut sink = String::new();
985-
try_write_pattern(
986-
pattern.as_borrowed(),
987-
&ExtractedInput {
988-
year: Some(datetime.date.year()),
989-
month: Some(datetime.date.month()),
990-
day_of_month: Some(datetime.date.day_of_month()),
991-
iso_weekday: Some(datetime.date.day_of_week()),
992-
day_of_year_info: Some(datetime.date.day_of_year_info()),
993-
any_calendar_kind: datetime.date.calendar().any_calendar_kind(),
994-
hour: Some(datetime.time.hour),
995-
minute: Some(datetime.time.minute),
996-
second: Some(datetime.time.second),
997-
nanosecond: Some(datetime.time.nanosecond),
998-
..Default::default()
999-
},
1000-
Some(date_data.payload.get()),
1001-
Some(time_data.payload.get()),
1002-
None::<()>.as_ref(),
1003-
None,
1004-
Some(&fixed_decimal_format),
1005-
&mut writeable::adapters::CoreWriteAsPartsWrite(&mut sink),
1006-
)
1007-
.unwrap()
1008-
.unwrap();
1009-
println!("{sink}");
1010-
}
1011-
1012962
#[test]
1013963
fn test_format_number() {
1014964
let values = &[2, 20, 201, 2017, 20173];

components/datetime/src/options/components.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -164,16 +164,16 @@ impl Bag {
164164
}
165165

166166
#[allow(clippy::wrong_self_convention)]
167-
/// Converts the components::Bag into a Vec<Field>. The fields will be ordered in from most
167+
/// Converts the components::Bag into a `Vec<Field>`. The fields will be ordered in from most
168168
/// significant field to least significant. This is the order the fields are listed in
169169
/// the UTS 35 table - <https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table>
170170
///
171171
/// Arguments:
172172
///
173173
/// - `default_hour_cycle` specifies the hour cycle to use for the hour field if not in the Bag.
174174
/// `preferences::Bag::hour_cycle` takes precedence over this argument.
175-
#[cfg(any(test, feature = "datagen"))]
176-
pub(crate) fn to_vec_fields(
175+
#[cfg(feature = "datagen")]
176+
pub fn to_vec_fields(
177177
&self,
178178
default_hour_cycle: preferences::HourCycle,
179179
) -> alloc::vec::Vec<Field> {

components/datetime/src/provider/mod.rs

Lines changed: 1 addition & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,6 @@ pub mod neo;
3434
/// </div>
3535
pub struct Baked;
3636

37-
#[cfg(feature = "datagen")]
38-
include!("../../tests/data/date_skeleton_patterns_v1_marker.rs.data");
39-
4037
#[cfg(feature = "compiled_data")]
4138
#[allow(unused_imports)]
4239
const _: () = {
@@ -46,44 +43,14 @@ const _: () = {
4643
pub use icu_datetime_data::icu_locale as locale;
4744
}
4845
make_provider!(Baked);
49-
impl_buddhist_date_lengths_v1_marker!(Baked);
50-
impl_buddhist_date_symbols_v1_marker!(Baked);
51-
impl_chinese_date_lengths_v1_marker!(Baked);
52-
impl_chinese_date_symbols_v1_marker!(Baked);
53-
impl_coptic_date_lengths_v1_marker!(Baked);
54-
impl_coptic_date_symbols_v1_marker!(Baked);
55-
impl_dangi_date_lengths_v1_marker!(Baked);
56-
impl_dangi_date_symbols_v1_marker!(Baked);
57-
impl_ethiopian_date_lengths_v1_marker!(Baked);
58-
impl_ethiopian_date_symbols_v1_marker!(Baked);
59-
impl_gregorian_date_lengths_v1_marker!(Baked);
60-
impl_gregorian_date_symbols_v1_marker!(Baked);
61-
impl_hebrew_date_lengths_v1_marker!(Baked);
62-
impl_hebrew_date_symbols_v1_marker!(Baked);
63-
impl_indian_date_lengths_v1_marker!(Baked);
64-
impl_indian_date_symbols_v1_marker!(Baked);
65-
impl_islamic_date_lengths_v1_marker!(Baked);
66-
impl_islamic_date_symbols_v1_marker!(Baked);
67-
impl_japanese_date_lengths_v1_marker!(Baked);
68-
impl_japanese_date_symbols_v1_marker!(Baked);
69-
impl_japanese_extended_date_lengths_v1_marker!(Baked);
70-
impl_japanese_extended_date_symbols_v1_marker!(Baked);
71-
impl_persian_date_lengths_v1_marker!(Baked);
72-
impl_persian_date_symbols_v1_marker!(Baked);
73-
impl_roc_date_lengths_v1_marker!(Baked);
74-
impl_roc_date_symbols_v1_marker!(Baked);
75-
impl_time_lengths_v1_marker!(Baked);
76-
impl_time_symbols_v1_marker!(Baked);
46+
7747
impl_exemplar_cities_v1_marker!(Baked);
7848
impl_metazone_generic_names_long_v1_marker!(Baked);
7949
impl_metazone_generic_names_short_v1_marker!(Baked);
8050
impl_metazone_specific_names_long_v1_marker!(Baked);
8151
impl_metazone_specific_names_short_v1_marker!(Baked);
8252
impl_time_zone_formats_v1_marker!(Baked);
8353

84-
#[cfg(feature = "datagen")]
85-
impl_date_skeleton_patterns_v1_marker!(Baked);
86-
8754
impl_weekday_names_v1_marker!(Baked);
8855
impl_day_period_names_v1_marker!(Baked);
8956
impl_glue_pattern_v1_marker!(Baked);

components/datetime/src/provider/neo/adapter.rs

Lines changed: 0 additions & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -450,166 +450,3 @@ impl_data_provider_adapter!(
450450
DayPeriodNamesV1Marker,
451451
dayperiod_symbols_map_project_cloned
452452
);
453-
454-
#[cfg(test)]
455-
#[cfg(feature = "compiled_data")]
456-
mod tests {
457-
use super::*;
458-
use icu_locale_core::langid;
459-
460-
#[test]
461-
fn test_adapter_months_numeric() {
462-
let symbols: DataPayload<GregorianDateSymbolsV1Marker> = crate::provider::Baked
463-
.load(DataRequest {
464-
id: DataIdentifierBorrowed::for_locale(&langid!("en").into()),
465-
..Default::default()
466-
})
467-
.unwrap()
468-
.payload;
469-
let neo_month_abbreviated: DataPayload<GregorianMonthNamesV1Marker> = symbols
470-
.load(DataRequest {
471-
id: DataIdentifierBorrowed::for_marker_attributes_and_locale(
472-
DataMarkerAttributes::from_str_or_panic("3"),
473-
&"en".parse().unwrap(),
474-
),
475-
..Default::default()
476-
})
477-
.unwrap()
478-
.payload;
479-
480-
assert_eq!(
481-
format!("{neo_month_abbreviated:?}"),
482-
"Linear([\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"])"
483-
);
484-
}
485-
486-
#[test]
487-
fn test_adapter_months_map() {
488-
let symbols: DataPayload<HebrewDateSymbolsV1Marker> = crate::provider::Baked
489-
.load(DataRequest {
490-
id: DataIdentifierBorrowed::for_locale(&langid!("en").into()),
491-
..Default::default()
492-
})
493-
.unwrap()
494-
.payload;
495-
let neo_month_abbreviated: DataPayload<HebrewMonthNamesV1Marker> = symbols
496-
.load(DataRequest {
497-
id: DataIdentifierBorrowed::for_marker_attributes_and_locale(
498-
DataMarkerAttributes::from_str_or_panic("3"),
499-
&"en".parse().unwrap(),
500-
),
501-
..Default::default()
502-
})
503-
.unwrap()
504-
.payload;
505-
506-
assert_eq!(
507-
format!("{neo_month_abbreviated:?}"),
508-
"LeapLinear([\"Tishri\", \"Heshvan\", \"Kislev\", \"Tevet\", \"Shevat\", \"Adar\", \"Nisan\", \"Iyar\", \"Sivan\", \"Tamuz\", \"Av\", \"Elul\", \"\", \"\", \"\", \"\", \"Adar I\", \"Adar II\", \"\", \"\", \"\", \"\", \"\", \"\"])"
509-
);
510-
}
511-
512-
#[test]
513-
fn test_adapter_weekdays_abbreviated() {
514-
let symbols: DataPayload<HebrewDateSymbolsV1Marker> = crate::provider::Baked
515-
.load(DataRequest {
516-
id: DataIdentifierBorrowed::for_locale(&langid!("en").into()),
517-
..Default::default()
518-
})
519-
.unwrap()
520-
.payload;
521-
let neo_weekdays_abbreviated: DataPayload<WeekdayNamesV1Marker> = symbols
522-
.load(DataRequest {
523-
id: DataIdentifierBorrowed::for_marker_attributes_and_locale(
524-
DataMarkerAttributes::from_str_or_panic("3"),
525-
&"en".parse().unwrap(),
526-
),
527-
..Default::default()
528-
})
529-
.unwrap()
530-
.payload;
531-
532-
assert_eq!(
533-
format!("{neo_weekdays_abbreviated:?}"),
534-
"LinearNamesV1 { symbols: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"] }"
535-
);
536-
}
537-
538-
#[test]
539-
fn test_adapter_weekdays_short() {
540-
let symbols: DataPayload<HebrewDateSymbolsV1Marker> = crate::provider::Baked
541-
.load(DataRequest {
542-
id: DataIdentifierBorrowed::for_locale(&langid!("en").into()),
543-
..Default::default()
544-
})
545-
.unwrap()
546-
.payload;
547-
let neo_weekdays_short: DataPayload<WeekdayNamesV1Marker> = symbols
548-
.load(DataRequest {
549-
id: DataIdentifierBorrowed::for_marker_attributes_and_locale(
550-
DataMarkerAttributes::from_str_or_panic("6s"),
551-
&"en".parse().unwrap(),
552-
),
553-
..Default::default()
554-
})
555-
.unwrap()
556-
.payload;
557-
558-
assert_eq!(
559-
format!("{neo_weekdays_short:?}"),
560-
"LinearNamesV1 { symbols: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"] }"
561-
);
562-
}
563-
564-
#[test]
565-
fn test_adapter_eras() {
566-
let symbols: DataPayload<GregorianDateSymbolsV1Marker> = crate::provider::Baked
567-
.load(DataRequest {
568-
id: DataIdentifierBorrowed::for_locale(&langid!("en").into()),
569-
..Default::default()
570-
})
571-
.unwrap()
572-
.payload;
573-
let neo_eras_wide: DataPayload<GregorianYearNamesV1Marker> = symbols
574-
.load(DataRequest {
575-
id: DataIdentifierBorrowed::for_marker_attributes_and_locale(
576-
DataMarkerAttributes::from_str_or_panic("4"),
577-
&"en".parse().unwrap(),
578-
),
579-
..Default::default()
580-
})
581-
.unwrap()
582-
.payload;
583-
584-
assert_eq!(
585-
format!("{neo_eras_wide:?}"),
586-
"Eras(ZeroMap { keys: [\"bce\", \"ce\"], values: [\"Before Christ\", \"Anno Domini\"] })"
587-
);
588-
}
589-
590-
#[test]
591-
fn test_adapter_dayperiods() {
592-
let symbols: DataPayload<TimeSymbolsV1Marker> = crate::provider::Baked
593-
.load(DataRequest {
594-
id: DataIdentifierBorrowed::for_locale(&langid!("en").into()),
595-
..Default::default()
596-
})
597-
.unwrap()
598-
.payload;
599-
let neo_dayperiods_abbreviated: DataPayload<DayPeriodNamesV1Marker> = symbols
600-
.load(DataRequest {
601-
id: DataIdentifierBorrowed::for_marker_attributes_and_locale(
602-
DataMarkerAttributes::from_str_or_panic("3s"),
603-
&"en".parse().unwrap(),
604-
),
605-
..Default::default()
606-
})
607-
.unwrap()
608-
.payload;
609-
610-
assert_eq!(
611-
format!("{neo_dayperiods_abbreviated:?}"),
612-
"LinearNamesV1 { symbols: [\"AM\", \"PM\", \"noon\", \"midnight\"] }"
613-
);
614-
}
615-
}

0 commit comments

Comments
 (0)