use english::*;
fn main() {
let subject_number = Number::Plural;
let subject = format!(
"{} {}",
English::verb(
"run",
&Person::First,
&Number::Singular,
&Tense::Present,
&Form::Participle
),
English::noun("child", &subject_number)
); let verb = English::verb(
"steal",
&Person::Third,
&subject_number,
&Tense::Past,
&Form::Finite,
); let object = count_with_number("potato", 7);
let sentence = format!("The {} {} {}.", subject, verb, object);
assert_eq!(sentence, "The running children stole 7 potatoes.");
assert_eq!(
format!("{} of jeans", count_with_number("pair", 3)),
"3 pairs of jeans"
);
assert_eq!(English::noun("cat", &Number::Plural), "cats");
assert_eq!(English::noun("die2", &Number::Plural), "dice");
assert_eq!(count("man", 2), "men");
assert_eq!(count_with_number("nickel", 3), "3 nickels");
assert_eq!(English::noun("sheep", &Number::Plural), "sheep");
assert_eq!(
English::verb(
"pick",
&Person::Third,
&Number::Singular,
&Tense::Past,
&Form::Finite
),
"picked"
);
assert_eq!(
English::verb(
"walk",
&Person::First,
&Number::Singular,
&Tense::Present,
&Form::Participle
),
"walking"
);
assert_eq!(
English::verb(
"go",
&Person::First,
&Number::Singular,
&Tense::Past,
&Form::Participle
),
"gone"
);
assert_eq!(
English::verb(
"lie",
&Person::Third,
&Number::Singular,
&Tense::Past,
&Form::Finite
),
"lay"
);
assert_eq!(
English::verb(
"lie2",
&Person::Third,
&Number::Singular,
&Tense::Past,
&Form::Finite
),
"lied"
);
assert_eq!(
English::verb(
"be",
&Person::First,
&Number::Singular,
&Tense::Present,
&Form::Finite
),
"am"
);
assert_eq!(English::adj("bad", &Degree::Comparative), "more bad");
assert_eq!(English::adj("bad", &Degree::Superlative), "most bad");
assert_eq!(English::adj("bad2", &Degree::Comparative), "badder");
assert_eq!(English::adj("bad2", &Degree::Superlative), "baddest");
assert_eq!(English::adj("bad3", &Degree::Comparative), "worse");
assert_eq!(English::adj("bad3", &Degree::Superlative), "worst");
assert_eq!(English::adj("bad3", &Degree::Positive), "bad");
assert_eq!(
English::pronoun(
&Person::First,
&Number::Singular,
&Gender::Neuter,
&Case::PersonalPossesive
),
"my"
);
assert_eq!(
English::pronoun(
&Person::First,
&Number::Singular,
&Gender::Neuter,
&Case::Possessive
),
"mine"
);
assert_eq!(English::add_possessive("dog"), "dog's");
assert_eq!(English::add_possessive("dogs"), "dogs'");
}