use english::*;
fn main() {
assert_eq!(English::noun("cat", &Number::Plural), "cats");
assert_eq!(English::noun("child", &Number::Plural), "children");
assert_eq!(English::noun("die", &Number::Plural), "dies");
assert_eq!(English::noun("die2", &Number::Plural), "dice");
assert_eq!(English::noun("sheep", &Number::Plural), "sheep");
assert_eq!(English::adj("fast", &Degree::Comparative), "faster");
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::verb(
"walk",
&Person::First,
&Number::Singular,
&Tense::Present,
&Form::Participle
),
"walking"
);
assert_eq!(
English::verb(
"be",
&Person::First,
&Number::Singular,
&Tense::Present,
&Form::Finite
),
"am"
);
assert_eq!(
English::verb(
"go",
&Person::Third,
&Number::Plural,
&Tense::Past,
&Form::Participle
),
"gone"
);
assert_eq!(
English::verb(
"lie",
&Person::First,
&Number::Singular,
&Tense::Past,
&Form::Finite
),
"lay"
);
assert_eq!(
English::verb(
"lie2",
&Person::First,
&Number::Singular,
&Tense::Past,
&Form::Finite
),
"lied"
);
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'");
let subject = English::noun("child", &Number::Plural);
let verb = English::verb(
"play",
&Person::Third,
&Number::Plural,
&Tense::Past,
&Form::Finite,
);
let object = English::noun("die2", &Number::Plural);
let sentence = format!("The {} {} with {}.", subject, verb, object);
assert_eq!(sentence, "The children played with dice.");
}