diff --git a/src/inflect_rs.rs b/src/inflect_rs.rs index 7256f3f..8a744ae 100644 --- a/src/inflect_rs.rs +++ b/src/inflect_rs.rs @@ -2471,14 +2471,14 @@ fn def_classical() -> HashMap { .collect(); } -fn all_classical() -> HashMap { +pub fn all_classical() -> HashMap { return def_classical() .iter() .map(|(k, _)| (k.to_string(), true)) .collect(); } -fn no_classical() -> HashMap { +pub fn no_classical() -> HashMap { return def_classical() .iter() .map(|(k, _)| (k.to_string(), false)) @@ -2533,8 +2533,8 @@ impl Word { } pub struct Engine { - classical_dict: HashMap, - persistent_count: Option, + pub classical_dict: HashMap, + pub persistent_count: Option, mill_count: i32, pl_sb_user_defined: Vec>, pl_v_user_defined: Vec>, @@ -2573,7 +2573,7 @@ impl Engine { pub fn check_gender(&self) -> &String { &self.the_gender } - fn get_count>(&self, count: Option) -> i32 { + pub fn get_count>(&self, count: Option) -> i32 { if count.is_none() { if self.persistent_count.is_some() { return self.persistent_count.unwrap(); diff --git a/tests/inflect_rs_tests.rs b/tests/inflect_rs_tests.rs index 48cc948..1f17fa0 100644 --- a/tests/inflect_rs_tests.rs +++ b/tests/inflect_rs_tests.rs @@ -74,7 +74,7 @@ fn test_words() { } #[test] -fn test_engine() { +fn test_engine_gender() { let mut e = Engine::new(); assert_eq!(e.check_gender(), "neuter"); e.gender("masculine"); @@ -83,3 +83,29 @@ fn test_engine() { assert_ne!(e.check_gender(), "fff"); assert_eq!(e.check_gender(), "masculine"); } + +#[test] +fn test_engine_get_count() { + let mut e = Engine::new(); + + // i32 Into> + for i in -1e3 as i32..1e3 as i32 { + assert_eq!(e.get_count(Some(i)), i); + } + + // None cases + assert_eq!(e.get_count::(None), 0); + assert_eq!(e.get_count::(None), 0); + assert_eq!(e.get_count::<&str>(None), 0); + + // Strings + assert_eq!(e.get_count(Some("a".to_string())), 1); + assert_eq!(e.get_count(Some("nil")), 2); + assert_eq!(e.get_count(Some("some")), 2); + + e.classical_dict = all_classical(); + assert_eq!(e.get_count(Some("nil")), 1); + + e.persistent_count = Some(3); + assert_eq!(e.get_count::(None), 3); +}