Bug 1396724 - Add plural rule for Shuar language to intl/locale/PluralForm.jsm r?pike draft
authorFrancesco Lodolo (:flod) <flod@lodolo.net>
Tue, 05 Sep 2017 08:37:55 +0200
changeset 658954 3f839dc8e15350ea1e99672cf5e6c46f0bb1febd
parent 658813 1401e3eec44df87963d3af329ef8a4183ab0483f
child 729816 443dec74652eb86005c20ee40b0cf10a70063deb
push id77945
push userbmo:francesco.lodolo@gmail.com
push dateTue, 05 Sep 2017 06:43:48 +0000
reviewerspike
bugs1396724
milestone57.0a1
Bug 1396724 - Add plural rule for Shuar language to intl/locale/PluralForm.jsm r?pike MozReview-Commit-ID: 5HOVoaBHlGu
intl/locale/PluralForm.jsm
intl/locale/tests/unit/test_pluralForm.js
--- a/intl/locale/PluralForm.jsm
+++ b/intl/locale/PluralForm.jsm
@@ -65,16 +65,18 @@ var gFunctions = [
   // 13: Maltese
   [4, (n) => n==1?0:n==0||n%100>0&&n%100<=10?1:n%100>10&&n%100<20?2:3],
   // 14: Macedonian
   [3, (n) => n%10==1?0:n%10==2?1:2],
   // 15: Icelandic
   [2, (n) => n%10==1&&n%100!=11?0:1],
   // 16: Breton
   [5, (n) => n%10==1&&n%100!=11&&n%100!=71&&n%100!=91?0:n%10==2&&n%100!=12&&n%100!=72&&n%100!=92?1:(n%10==3||n%10==4||n%10==9)&&n%100!=13&&n%100!=14&&n%100!=19&&n%100!=73&&n%100!=74&&n%100!=79&&n%100!=93&&n%100!=94&&n%100!=99?2:n%1000000==0&&n!=0?3:4],
+  // 17: Shuar
+  [2, (n) => n!=0?1:0],
 ];
 
 this.PluralForm = {
   /**
    * Get the correct plural form of a word based on the number
    *
    * @param aNum
    *        The number to decide which plural form to use
--- a/intl/locale/tests/unit/test_pluralForm.js
+++ b/intl/locale/tests/unit/test_pluralForm.js
@@ -584,16 +584,50 @@ function run_test()
     5,1,2,3,3,5,5,5,5,3,
     5,1,2,3,3,5,5,5,5,3,
     5,1,2,3,3,5,5,5,5,3,
     5,1,2,3,3,5,5,5,5,3,
     5,1,2,3,3,5,5,5,5,3,
     5,5,5,5,5,5,5,5,5,5,
     5,1,2,3,3,5,5,5,5,3,
     5,5,5,5,5,5,5,5,5,5,
+  ], [
+    // 17: Shuar 0-9, 10-19, ..., 90-99
+    1,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    // 100-109, 110-119, ..., 190-199
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    // 200-209, 210-219, ..., 290-299
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
+    2,2,2,2,2,2,2,2,2,2,
   ]];
 
   for (let [rule, expect] of allExpect.entries()) {
     print("\nTesting rule #" + rule);
 
     let [get, numForms] = PluralForm.makeGetter(rule);
 
     // Make sure the largest value expected matches the number of plural forms