6 releases (breaking)

0.6.0 May 17, 2022
0.5.0 Jan 31, 2022
0.4.0 Nov 2, 2021
0.3.0 Jul 30, 2021
0.1.0 Oct 15, 2020

#37 in #cldr

Download history 15/week @ 2022-03-11 34/week @ 2022-03-18 27/week @ 2022-03-25 18/week @ 2022-04-01 29/week @ 2022-04-08 6/week @ 2022-04-15 41/week @ 2022-04-22 40/week @ 2022-04-29 33/week @ 2022-05-06 151/week @ 2022-05-13 140/week @ 2022-05-20 249/week @ 2022-05-27 215/week @ 2022-06-03 312/week @ 2022-06-10 414/week @ 2022-06-17 255/week @ 2022-06-24

1,224 downloads per month
Used in 6 crates (5 directly)

Custom license

2MB
9K SLoC

icu_testdata crates.io

icu_testdata is a unit testing crate for ICU4X.

The crate exposes a data provider with stable data useful for unit testing. The data is based on a CLDR tag and a short list of locales that, together, cover a range of scenarios.

There are four modes of operation, enabled by features:

  • static (default) exposes [get_postcard_provider].
  • fs exposes [get_json_provider]
  • baked exposes [get_baked_provider].
  • metadata exposes the [metadata] module which contains information such as the CLDR Gitref and the list of included locales.

However, clients should not generally choose a specific provider, but rather use [get_provider]. This is currently an alias for [get_postcard_provider], as it is fast and has few dependencies.

Re-generating the data

Downloading fresh CLDR data

$ cargo run --bin --features=bin icu4x-testdata-download-sources

Regenerating JSON and postcard data

$ cargo run --bin --features=bin icu4x-testdata-datagen

Examples

use std::borrow::Cow;
use icu_provider::prelude::*;
use icu_locid::locale;

let data_provider = icu_testdata::get_provider();

let data: DataPayload<icu_plurals::provider::CardinalV1Marker> = data_provider
    .load_resource(&DataRequest {
        options: locale!("ru").into(),
        metadata: Default::default(),
    })
    .unwrap()
    .take_payload()
    .unwrap();
let rule = "v = 0 and i % 10 = 2..4 and i % 100 != 12..14".parse()
    .expect("Failed to parse plural rule");
assert_eq!(data.get().few, Some(rule));

More Information

For more information on development, authorship, contributing etc. please visit ICU4X home page.

Dependencies

~2–13MB
~221K SLoC