Skip to content

Commit

Permalink
add FluentNumber grouping test
Browse files Browse the repository at this point in the history
  • Loading branch information
JasperDeSutter committed Dec 15, 2022
1 parent 8f2dc43 commit b2301d3
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 1 deletion.
1 change: 1 addition & 0 deletions fluent-bundle/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ smallvec = "1"
[dev-dependencies]
criterion.workspace = true
iai.workspace = true
icu_testdata = "1"
serde = { workspace = true, features = ["derive"]}
unic-langid = { workspace = true, features = ["macros"] }
rand = "0.8"
Expand Down
4 changes: 4 additions & 0 deletions fluent-bundle/src/bundle.rs
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,10 @@ impl<R, M> FluentBundle<R, M> {
}),
}
}

pub fn set_number_format_provider(&mut self, provider: NumberFormatProvider) {
self.number_format_provider = Some(provider);
}
}

impl<R> Default for FluentBundle<R, IntlLangMemoizer> {
Expand Down
24 changes: 23 additions & 1 deletion fluent-bundle/tests/types_test.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
use fluent_bundle::resolver::Scope;
use fluent_bundle::types::{
FluentNumber, FluentNumberCurrencyDisplayStyle, FluentNumberOptions, FluentNumberStyle, FluentNumberUseGrouping,
FluentNumber, FluentNumberCurrencyDisplayStyle, FluentNumberOptions, FluentNumberStyle,
FluentNumberUseGrouping,
};
use fluent_bundle::FluentArgs;
use fluent_bundle::FluentBundle;
Expand Down Expand Up @@ -154,3 +155,24 @@ fn fluent_number_to_operands() {
}
);
}

#[test]
fn fluent_number_grouping() {
let langid_ars = langid!("ccp");
let mut bundle: FluentBundle<FluentResource> = FluentBundle::new(vec![langid_ars]);
bundle.set_number_format_provider(Box::new(icu_testdata::unstable_no_fallback()));

let mut number = FluentNumber::from(1234567890.1234567);

number.options.use_grouping = FluentNumberUseGrouping::False;
let no_grouping = number.as_string(&bundle);
assert_eq!(no_grouping, "π‘„·π‘„Έπ‘„Ήπ‘„Ίπ‘„»π‘„Όπ‘„½π‘„Ύπ‘„Ώπ‘„Ά.π‘„·π‘„Έπ‘„Ήπ‘„Ίπ‘„»π‘„Όπ‘„½");

number.options.use_grouping = FluentNumberUseGrouping::Min2;
let long = number.as_string(&bundle);
assert_eq!(long, "π‘„·,π‘„Έπ‘„Ή,π‘„Ίπ‘„»,π‘„Όπ‘„½,π‘„Ύπ‘„Ώπ‘„Ά.π‘„·π‘„Έπ‘„Ήπ‘„Ίπ‘„»π‘„Όπ‘„½");

number.value = -1234.0;
let short = number.as_string(&bundle);
assert_eq!(short, "-π‘„·π‘„Έπ‘„Ήπ‘„Ί");
}

0 comments on commit b2301d3

Please sign in to comment.