Crate icu_testdata

source ·
Expand description

icu_testdata is a unit testing crate for ICU4X.

The crate exposes data providers 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.

The crate exposes three kinds of providers, corresponding to the three types of constructors in ICU:

Examples

use icu::locid::locale;
use icu_provider::hello_world::*;
use icu_provider::prelude::*;

let req = DataRequest {
    locale: &locale!("en").into(),
    metadata: Default::default(),
};

assert_eq!(
    DataProvider::<HelloWorldV1Marker>::load(
        &icu_testdata::unstable(),
        req
    )
    .and_then(DataResponse::take_payload)
    .unwrap()
    .get()
    .message,
    "Hello World"
);

assert_eq!(
    BufferProvider::load_buffer(
        &icu_testdata::buffer(),
        HelloWorldV1Marker::KEY,
        req
    )
    .and_then(DataResponse::take_payload)
    .unwrap()
    .get(),
    &b"\x0bHello World"
);

assert_eq!(
    AnyProvider::load_any(
        &icu_testdata::any(),
        HelloWorldV1Marker::KEY,
        req
    )
    .and_then(AnyResponse::downcast::<HelloWorldV1Marker>)
    .and_then(DataResponse::take_payload)
    .unwrap()
    .get()
    .message,
    "Hello World"
);

Modules

Get paths to the test data directories.
Functions to access version info of the ICU test data.

Functions

An AnyProvider backed by baked data.
An AnyProvider backed by baked data.
A BufferProvider backed by a Postcard blob.
A BufferProvider backed by a Postcard blob.
Gets the locales supported by the test data.
A data provider that is compatible with all ICU _unstable constructors.
A data provider that is compatible with all ICU _unstable constructors.