public void CatalogParseTest() { Catalog cat = new Catalog(); cat.Load("./Data/Test01.po"); PluralFormsCalculator pfc = PluralFormsCalculator.Make(cat.GetPluralFormsHeader()); Assert.IsNotNull(pfc, "Parse failed"); Assert.AreEqual(3, pfc.NPlurals, "Plurals count"); Assert.AreEqual(0, pfc.Evaluate(1), "Case 1"); Assert.AreEqual(1, pfc.Evaluate(3), "Case 2"); Assert.AreEqual(2, pfc.Evaluate(7), "Case 3"); }
public void ThreeFormsEvalTest() { string expr = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)"; PluralFormsCalculator pfc = PluralFormsCalculator.Make(expr); Assert.IsNotNull(pfc, "Parse failed"); Assert.AreEqual(3, pfc.NPlurals, "Plurals count"); //pfc.DumpNodes("./EvalNodes.txt"); Assert.AreEqual(0, pfc.Evaluate(1 /*, true*/), "Case 1"); Assert.AreEqual(1, pfc.Evaluate(3), "Case 2"); Assert.AreEqual(2, pfc.Evaluate(7), "Case 3"); Assert.AreEqual(2, pfc.Evaluate(11), "Case 4"); }
public void TwoFormsEvalTest() { string expr = "nplurals=2; plural=(n != 1)"; Assert.IsNotNull(PluralFormsCalculator.Make(expr + "\\n")); Assert.IsNotNull(PluralFormsCalculator.Make(expr + "\n")); Assert.IsNotNull(PluralFormsCalculator.Make(expr + ";")); PluralFormsCalculator pfc = PluralFormsCalculator.Make(expr); Assert.IsNotNull(pfc, "Parse failed"); Assert.AreEqual(2, pfc.NPlurals, "Plurals count"); Assert.AreEqual(1, pfc.Evaluate(0), "Case 1"); Assert.AreEqual(0, pfc.Evaluate(1), "Case 2"); Assert.AreEqual(1, pfc.Evaluate(5), "Case 3"); Assert.AreEqual(1, pfc.Evaluate(23), "Case 4"); }