1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/intl/locale/tests/unit/test_pluralForm.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,615 @@ 1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public 1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this 1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 1.7 + 1.8 +/** 1.9 + * Make sure each of the plural forms have the correct number of forms and 1.10 + * match up in functionality. 1.11 + */ 1.12 + 1.13 +Components.utils.import("resource://gre/modules/PluralForm.jsm"); 1.14 + 1.15 +function run_test() 1.16 +{ 1.17 + let allExpect = [[ 1.18 + // 0: Chinese 0-9, 10-19, ..., 90-99 1.19 + 1,1,1,1,1,1,1,1,1,1, 1.20 + 1,1,1,1,1,1,1,1,1,1, 1.21 + 1,1,1,1,1,1,1,1,1,1, 1.22 + 1,1,1,1,1,1,1,1,1,1, 1.23 + 1,1,1,1,1,1,1,1,1,1, 1.24 + 1,1,1,1,1,1,1,1,1,1, 1.25 + 1,1,1,1,1,1,1,1,1,1, 1.26 + 1,1,1,1,1,1,1,1,1,1, 1.27 + 1,1,1,1,1,1,1,1,1,1, 1.28 + 1,1,1,1,1,1,1,1,1,1, 1.29 + // 100-109, 110-119, ..., 190-199 1.30 + 1,1,1,1,1,1,1,1,1,1, 1.31 + 1,1,1,1,1,1,1,1,1,1, 1.32 + 1,1,1,1,1,1,1,1,1,1, 1.33 + 1,1,1,1,1,1,1,1,1,1, 1.34 + 1,1,1,1,1,1,1,1,1,1, 1.35 + 1,1,1,1,1,1,1,1,1,1, 1.36 + 1,1,1,1,1,1,1,1,1,1, 1.37 + 1,1,1,1,1,1,1,1,1,1, 1.38 + 1,1,1,1,1,1,1,1,1,1, 1.39 + 1,1,1,1,1,1,1,1,1,1, 1.40 + // 200-209, 210-219, ..., 290-299 1.41 + 1,1,1,1,1,1,1,1,1,1, 1.42 + 1,1,1,1,1,1,1,1,1,1, 1.43 + 1,1,1,1,1,1,1,1,1,1, 1.44 + 1,1,1,1,1,1,1,1,1,1, 1.45 + 1,1,1,1,1,1,1,1,1,1, 1.46 + 1,1,1,1,1,1,1,1,1,1, 1.47 + 1,1,1,1,1,1,1,1,1,1, 1.48 + 1,1,1,1,1,1,1,1,1,1, 1.49 + 1,1,1,1,1,1,1,1,1,1, 1.50 + 1,1,1,1,1,1,1,1,1,1, 1.51 + ], [ 1.52 + // 1: English 0-9, 10-19, ..., 90-99 1.53 + 2,1,2,2,2,2,2,2,2,2, 1.54 + 2,2,2,2,2,2,2,2,2,2, 1.55 + 2,2,2,2,2,2,2,2,2,2, 1.56 + 2,2,2,2,2,2,2,2,2,2, 1.57 + 2,2,2,2,2,2,2,2,2,2, 1.58 + 2,2,2,2,2,2,2,2,2,2, 1.59 + 2,2,2,2,2,2,2,2,2,2, 1.60 + 2,2,2,2,2,2,2,2,2,2, 1.61 + 2,2,2,2,2,2,2,2,2,2, 1.62 + 2,2,2,2,2,2,2,2,2,2, 1.63 + // 100-109, 110-119, ..., 190-199 1.64 + 2,2,2,2,2,2,2,2,2,2, 1.65 + 2,2,2,2,2,2,2,2,2,2, 1.66 + 2,2,2,2,2,2,2,2,2,2, 1.67 + 2,2,2,2,2,2,2,2,2,2, 1.68 + 2,2,2,2,2,2,2,2,2,2, 1.69 + 2,2,2,2,2,2,2,2,2,2, 1.70 + 2,2,2,2,2,2,2,2,2,2, 1.71 + 2,2,2,2,2,2,2,2,2,2, 1.72 + 2,2,2,2,2,2,2,2,2,2, 1.73 + 2,2,2,2,2,2,2,2,2,2, 1.74 + // 200-209, 210-219, ..., 290-299 1.75 + 2,2,2,2,2,2,2,2,2,2, 1.76 + 2,2,2,2,2,2,2,2,2,2, 1.77 + 2,2,2,2,2,2,2,2,2,2, 1.78 + 2,2,2,2,2,2,2,2,2,2, 1.79 + 2,2,2,2,2,2,2,2,2,2, 1.80 + 2,2,2,2,2,2,2,2,2,2, 1.81 + 2,2,2,2,2,2,2,2,2,2, 1.82 + 2,2,2,2,2,2,2,2,2,2, 1.83 + 2,2,2,2,2,2,2,2,2,2, 1.84 + 2,2,2,2,2,2,2,2,2,2, 1.85 + ], [ 1.86 + // 2: French 0-9, 10-19, ..., 90-99 1.87 + 1,1,2,2,2,2,2,2,2,2, 1.88 + 2,2,2,2,2,2,2,2,2,2, 1.89 + 2,2,2,2,2,2,2,2,2,2, 1.90 + 2,2,2,2,2,2,2,2,2,2, 1.91 + 2,2,2,2,2,2,2,2,2,2, 1.92 + 2,2,2,2,2,2,2,2,2,2, 1.93 + 2,2,2,2,2,2,2,2,2,2, 1.94 + 2,2,2,2,2,2,2,2,2,2, 1.95 + 2,2,2,2,2,2,2,2,2,2, 1.96 + 2,2,2,2,2,2,2,2,2,2, 1.97 + // 100-109, 110-119, ..., 190-199 1.98 + 2,2,2,2,2,2,2,2,2,2, 1.99 + 2,2,2,2,2,2,2,2,2,2, 1.100 + 2,2,2,2,2,2,2,2,2,2, 1.101 + 2,2,2,2,2,2,2,2,2,2, 1.102 + 2,2,2,2,2,2,2,2,2,2, 1.103 + 2,2,2,2,2,2,2,2,2,2, 1.104 + 2,2,2,2,2,2,2,2,2,2, 1.105 + 2,2,2,2,2,2,2,2,2,2, 1.106 + 2,2,2,2,2,2,2,2,2,2, 1.107 + 2,2,2,2,2,2,2,2,2,2, 1.108 + // 200-209, 210-219, ..., 290-299 1.109 + 2,2,2,2,2,2,2,2,2,2, 1.110 + 2,2,2,2,2,2,2,2,2,2, 1.111 + 2,2,2,2,2,2,2,2,2,2, 1.112 + 2,2,2,2,2,2,2,2,2,2, 1.113 + 2,2,2,2,2,2,2,2,2,2, 1.114 + 2,2,2,2,2,2,2,2,2,2, 1.115 + 2,2,2,2,2,2,2,2,2,2, 1.116 + 2,2,2,2,2,2,2,2,2,2, 1.117 + 2,2,2,2,2,2,2,2,2,2, 1.118 + 2,2,2,2,2,2,2,2,2,2, 1.119 + ], [ 1.120 + // 3: Latvian 0-9, 10-19, ..., 90-99 1.121 + 1,2,3,3,3,3,3,3,3,3, 1.122 + 3,3,3,3,3,3,3,3,3,3, 1.123 + 3,2,3,3,3,3,3,3,3,3, 1.124 + 3,2,3,3,3,3,3,3,3,3, 1.125 + 3,2,3,3,3,3,3,3,3,3, 1.126 + 3,2,3,3,3,3,3,3,3,3, 1.127 + 3,2,3,3,3,3,3,3,3,3, 1.128 + 3,2,3,3,3,3,3,3,3,3, 1.129 + 3,2,3,3,3,3,3,3,3,3, 1.130 + 3,2,3,3,3,3,3,3,3,3, 1.131 + // 100-109, 110-119, ..., 190-199 1.132 + 3,2,3,3,3,3,3,3,3,3, 1.133 + 3,3,3,3,3,3,3,3,3,3, 1.134 + 3,2,3,3,3,3,3,3,3,3, 1.135 + 3,2,3,3,3,3,3,3,3,3, 1.136 + 3,2,3,3,3,3,3,3,3,3, 1.137 + 3,2,3,3,3,3,3,3,3,3, 1.138 + 3,2,3,3,3,3,3,3,3,3, 1.139 + 3,2,3,3,3,3,3,3,3,3, 1.140 + 3,2,3,3,3,3,3,3,3,3, 1.141 + 3,2,3,3,3,3,3,3,3,3, 1.142 + // 200-209, 210-219, ..., 290-299 1.143 + 3,2,3,3,3,3,3,3,3,3, 1.144 + 3,3,3,3,3,3,3,3,3,3, 1.145 + 3,2,3,3,3,3,3,3,3,3, 1.146 + 3,2,3,3,3,3,3,3,3,3, 1.147 + 3,2,3,3,3,3,3,3,3,3, 1.148 + 3,2,3,3,3,3,3,3,3,3, 1.149 + 3,2,3,3,3,3,3,3,3,3, 1.150 + 3,2,3,3,3,3,3,3,3,3, 1.151 + 3,2,3,3,3,3,3,3,3,3, 1.152 + 3,2,3,3,3,3,3,3,3,3, 1.153 + ], [ 1.154 + // 4: Scottish Gaelic 0-9, 10-19, ..., 90-99 1.155 + 4,1,2,3,3,3,3,3,3,3, 1.156 + 3,1,2,3,3,3,3,3,3,3, 1.157 + 4,4,4,4,4,4,4,4,4,4, 1.158 + 4,4,4,4,4,4,4,4,4,4, 1.159 + 4,4,4,4,4,4,4,4,4,4, 1.160 + 4,4,4,4,4,4,4,4,4,4, 1.161 + 4,4,4,4,4,4,4,4,4,4, 1.162 + 4,4,4,4,4,4,4,4,4,4, 1.163 + 4,4,4,4,4,4,4,4,4,4, 1.164 + 4,4,4,4,4,4,4,4,4,4, 1.165 + // 100-109, 110-119, ..., 190-199 1.166 + 4,4,4,4,4,4,4,4,4,4, 1.167 + 4,4,4,4,4,4,4,4,4,4, 1.168 + 4,4,4,4,4,4,4,4,4,4, 1.169 + 4,4,4,4,4,4,4,4,4,4, 1.170 + 4,4,4,4,4,4,4,4,4,4, 1.171 + 4,4,4,4,4,4,4,4,4,4, 1.172 + 4,4,4,4,4,4,4,4,4,4, 1.173 + 4,4,4,4,4,4,4,4,4,4, 1.174 + 4,4,4,4,4,4,4,4,4,4, 1.175 + 4,4,4,4,4,4,4,4,4,4, 1.176 + // 200-209, 210-219, ..., 290-299 1.177 + 4,4,4,4,4,4,4,4,4,4, 1.178 + 4,4,4,4,4,4,4,4,4,4, 1.179 + 4,4,4,4,4,4,4,4,4,4, 1.180 + 4,4,4,4,4,4,4,4,4,4, 1.181 + 4,4,4,4,4,4,4,4,4,4, 1.182 + 4,4,4,4,4,4,4,4,4,4, 1.183 + 4,4,4,4,4,4,4,4,4,4, 1.184 + 4,4,4,4,4,4,4,4,4,4, 1.185 + 4,4,4,4,4,4,4,4,4,4, 1.186 + 4,4,4,4,4,4,4,4,4,4, 1.187 + ], [ 1.188 + // 5: Romanian 0-9, 10-19, ..., 90-99 1.189 + 2,1,2,2,2,2,2,2,2,2, 1.190 + 2,2,2,2,2,2,2,2,2,2, 1.191 + 3,3,3,3,3,3,3,3,3,3, 1.192 + 3,3,3,3,3,3,3,3,3,3, 1.193 + 3,3,3,3,3,3,3,3,3,3, 1.194 + 3,3,3,3,3,3,3,3,3,3, 1.195 + 3,3,3,3,3,3,3,3,3,3, 1.196 + 3,3,3,3,3,3,3,3,3,3, 1.197 + 3,3,3,3,3,3,3,3,3,3, 1.198 + 3,3,3,3,3,3,3,3,3,3, 1.199 + // 100-109, 110-119, ..., 190-199 1.200 + 3,2,2,2,2,2,2,2,2,2, 1.201 + 2,2,2,2,2,2,2,2,2,2, 1.202 + 3,3,3,3,3,3,3,3,3,3, 1.203 + 3,3,3,3,3,3,3,3,3,3, 1.204 + 3,3,3,3,3,3,3,3,3,3, 1.205 + 3,3,3,3,3,3,3,3,3,3, 1.206 + 3,3,3,3,3,3,3,3,3,3, 1.207 + 3,3,3,3,3,3,3,3,3,3, 1.208 + 3,3,3,3,3,3,3,3,3,3, 1.209 + 3,3,3,3,3,3,3,3,3,3, 1.210 + // 200-209, 210-219, ..., 290-299 1.211 + 3,2,2,2,2,2,2,2,2,2, 1.212 + 2,2,2,2,2,2,2,2,2,2, 1.213 + 3,3,3,3,3,3,3,3,3,3, 1.214 + 3,3,3,3,3,3,3,3,3,3, 1.215 + 3,3,3,3,3,3,3,3,3,3, 1.216 + 3,3,3,3,3,3,3,3,3,3, 1.217 + 3,3,3,3,3,3,3,3,3,3, 1.218 + 3,3,3,3,3,3,3,3,3,3, 1.219 + 3,3,3,3,3,3,3,3,3,3, 1.220 + 3,3,3,3,3,3,3,3,3,3, 1.221 + ], [ 1.222 + // 6: Lithuanian 0-9, 10-19, ..., 90-99 1.223 + 2,1,3,3,3,3,3,3,3,3, 1.224 + 2,2,2,2,2,2,2,2,2,2, 1.225 + 2,1,3,3,3,3,3,3,3,3, 1.226 + 2,1,3,3,3,3,3,3,3,3, 1.227 + 2,1,3,3,3,3,3,3,3,3, 1.228 + 2,1,3,3,3,3,3,3,3,3, 1.229 + 2,1,3,3,3,3,3,3,3,3, 1.230 + 2,1,3,3,3,3,3,3,3,3, 1.231 + 2,1,3,3,3,3,3,3,3,3, 1.232 + 2,1,3,3,3,3,3,3,3,3, 1.233 + // 100-109, 110-119, ..., 190-199 1.234 + 2,1,3,3,3,3,3,3,3,3, 1.235 + 2,2,2,2,2,2,2,2,2,2, 1.236 + 2,1,3,3,3,3,3,3,3,3, 1.237 + 2,1,3,3,3,3,3,3,3,3, 1.238 + 2,1,3,3,3,3,3,3,3,3, 1.239 + 2,1,3,3,3,3,3,3,3,3, 1.240 + 2,1,3,3,3,3,3,3,3,3, 1.241 + 2,1,3,3,3,3,3,3,3,3, 1.242 + 2,1,3,3,3,3,3,3,3,3, 1.243 + 2,1,3,3,3,3,3,3,3,3, 1.244 + // 200-209, 210-219, ..., 290-299 1.245 + 2,1,3,3,3,3,3,3,3,3, 1.246 + 2,2,2,2,2,2,2,2,2,2, 1.247 + 2,1,3,3,3,3,3,3,3,3, 1.248 + 2,1,3,3,3,3,3,3,3,3, 1.249 + 2,1,3,3,3,3,3,3,3,3, 1.250 + 2,1,3,3,3,3,3,3,3,3, 1.251 + 2,1,3,3,3,3,3,3,3,3, 1.252 + 2,1,3,3,3,3,3,3,3,3, 1.253 + 2,1,3,3,3,3,3,3,3,3, 1.254 + 2,1,3,3,3,3,3,3,3,3, 1.255 + ], [ 1.256 + // 7: Russian 0-9, 10-19, ..., 90-99 1.257 + 3,1,2,2,2,3,3,3,3,3, 1.258 + 3,3,3,3,3,3,3,3,3,3, 1.259 + 3,1,2,2,2,3,3,3,3,3, 1.260 + 3,1,2,2,2,3,3,3,3,3, 1.261 + 3,1,2,2,2,3,3,3,3,3, 1.262 + 3,1,2,2,2,3,3,3,3,3, 1.263 + 3,1,2,2,2,3,3,3,3,3, 1.264 + 3,1,2,2,2,3,3,3,3,3, 1.265 + 3,1,2,2,2,3,3,3,3,3, 1.266 + 3,1,2,2,2,3,3,3,3,3, 1.267 + // 100-109, 110-119, ..., 190-199 1.268 + 3,1,2,2,2,3,3,3,3,3, 1.269 + 3,3,3,3,3,3,3,3,3,3, 1.270 + 3,1,2,2,2,3,3,3,3,3, 1.271 + 3,1,2,2,2,3,3,3,3,3, 1.272 + 3,1,2,2,2,3,3,3,3,3, 1.273 + 3,1,2,2,2,3,3,3,3,3, 1.274 + 3,1,2,2,2,3,3,3,3,3, 1.275 + 3,1,2,2,2,3,3,3,3,3, 1.276 + 3,1,2,2,2,3,3,3,3,3, 1.277 + 3,1,2,2,2,3,3,3,3,3, 1.278 + // 200-209, 210-219, ..., 290-299 1.279 + 3,1,2,2,2,3,3,3,3,3, 1.280 + 3,3,3,3,3,3,3,3,3,3, 1.281 + 3,1,2,2,2,3,3,3,3,3, 1.282 + 3,1,2,2,2,3,3,3,3,3, 1.283 + 3,1,2,2,2,3,3,3,3,3, 1.284 + 3,1,2,2,2,3,3,3,3,3, 1.285 + 3,1,2,2,2,3,3,3,3,3, 1.286 + 3,1,2,2,2,3,3,3,3,3, 1.287 + 3,1,2,2,2,3,3,3,3,3, 1.288 + 3,1,2,2,2,3,3,3,3,3, 1.289 + ], [ 1.290 + // 8: Slovak 0-9, 10-19, ..., 90-99 1.291 + 3,1,2,2,2,3,3,3,3,3, 1.292 + 3,3,3,3,3,3,3,3,3,3, 1.293 + 3,3,3,3,3,3,3,3,3,3, 1.294 + 3,3,3,3,3,3,3,3,3,3, 1.295 + 3,3,3,3,3,3,3,3,3,3, 1.296 + 3,3,3,3,3,3,3,3,3,3, 1.297 + 3,3,3,3,3,3,3,3,3,3, 1.298 + 3,3,3,3,3,3,3,3,3,3, 1.299 + 3,3,3,3,3,3,3,3,3,3, 1.300 + 3,3,3,3,3,3,3,3,3,3, 1.301 + // 100-109, 110-119, ..., 190-199 1.302 + 3,3,3,3,3,3,3,3,3,3, 1.303 + 3,3,3,3,3,3,3,3,3,3, 1.304 + 3,3,3,3,3,3,3,3,3,3, 1.305 + 3,3,3,3,3,3,3,3,3,3, 1.306 + 3,3,3,3,3,3,3,3,3,3, 1.307 + 3,3,3,3,3,3,3,3,3,3, 1.308 + 3,3,3,3,3,3,3,3,3,3, 1.309 + 3,3,3,3,3,3,3,3,3,3, 1.310 + 3,3,3,3,3,3,3,3,3,3, 1.311 + 3,3,3,3,3,3,3,3,3,3, 1.312 + // 200-209, 210-219, ..., 290-299 1.313 + 3,3,3,3,3,3,3,3,3,3, 1.314 + 3,3,3,3,3,3,3,3,3,3, 1.315 + 3,3,3,3,3,3,3,3,3,3, 1.316 + 3,3,3,3,3,3,3,3,3,3, 1.317 + 3,3,3,3,3,3,3,3,3,3, 1.318 + 3,3,3,3,3,3,3,3,3,3, 1.319 + 3,3,3,3,3,3,3,3,3,3, 1.320 + 3,3,3,3,3,3,3,3,3,3, 1.321 + 3,3,3,3,3,3,3,3,3,3, 1.322 + 3,3,3,3,3,3,3,3,3,3, 1.323 + ], [ 1.324 + // 9: Polish 0-9, 10-19, ..., 90-99 1.325 + 3,1,2,2,2,3,3,3,3,3, 1.326 + 3,3,3,3,3,3,3,3,3,3, 1.327 + 3,3,2,2,2,3,3,3,3,3, 1.328 + 3,3,2,2,2,3,3,3,3,3, 1.329 + 3,3,2,2,2,3,3,3,3,3, 1.330 + 3,3,2,2,2,3,3,3,3,3, 1.331 + 3,3,2,2,2,3,3,3,3,3, 1.332 + 3,3,2,2,2,3,3,3,3,3, 1.333 + 3,3,2,2,2,3,3,3,3,3, 1.334 + 3,3,2,2,2,3,3,3,3,3, 1.335 + // 100-109, 110-119, ..., 190-199 1.336 + 3,3,2,2,2,3,3,3,3,3, 1.337 + 3,3,3,3,3,3,3,3,3,3, 1.338 + 3,3,2,2,2,3,3,3,3,3, 1.339 + 3,3,2,2,2,3,3,3,3,3, 1.340 + 3,3,2,2,2,3,3,3,3,3, 1.341 + 3,3,2,2,2,3,3,3,3,3, 1.342 + 3,3,2,2,2,3,3,3,3,3, 1.343 + 3,3,2,2,2,3,3,3,3,3, 1.344 + 3,3,2,2,2,3,3,3,3,3, 1.345 + 3,3,2,2,2,3,3,3,3,3, 1.346 + // 200-209, 210-219, ..., 290-299 1.347 + 3,3,2,2,2,3,3,3,3,3, 1.348 + 3,3,3,3,3,3,3,3,3,3, 1.349 + 3,3,2,2,2,3,3,3,3,3, 1.350 + 3,3,2,2,2,3,3,3,3,3, 1.351 + 3,3,2,2,2,3,3,3,3,3, 1.352 + 3,3,2,2,2,3,3,3,3,3, 1.353 + 3,3,2,2,2,3,3,3,3,3, 1.354 + 3,3,2,2,2,3,3,3,3,3, 1.355 + 3,3,2,2,2,3,3,3,3,3, 1.356 + 3,3,2,2,2,3,3,3,3,3, 1.357 + ], [ 1.358 + // 10: Slovenian 0-9, 10-19, ..., 90-99 1.359 + 4,1,2,3,3,4,4,4,4,4, 1.360 + 4,4,4,4,4,4,4,4,4,4, 1.361 + 4,4,4,4,4,4,4,4,4,4, 1.362 + 4,4,4,4,4,4,4,4,4,4, 1.363 + 4,4,4,4,4,4,4,4,4,4, 1.364 + 4,4,4,4,4,4,4,4,4,4, 1.365 + 4,4,4,4,4,4,4,4,4,4, 1.366 + 4,4,4,4,4,4,4,4,4,4, 1.367 + 4,4,4,4,4,4,4,4,4,4, 1.368 + 4,4,4,4,4,4,4,4,4,4, 1.369 + // 100-109, 110-119, ..., 190-199 1.370 + 4,1,2,3,3,4,4,4,4,4, 1.371 + 4,4,4,4,4,4,4,4,4,4, 1.372 + 4,4,4,4,4,4,4,4,4,4, 1.373 + 4,4,4,4,4,4,4,4,4,4, 1.374 + 4,4,4,4,4,4,4,4,4,4, 1.375 + 4,4,4,4,4,4,4,4,4,4, 1.376 + 4,4,4,4,4,4,4,4,4,4, 1.377 + 4,4,4,4,4,4,4,4,4,4, 1.378 + 4,4,4,4,4,4,4,4,4,4, 1.379 + 4,4,4,4,4,4,4,4,4,4, 1.380 + // 200-209, 210-219, ..., 290-299 1.381 + 4,1,2,3,3,4,4,4,4,4, 1.382 + 4,4,4,4,4,4,4,4,4,4, 1.383 + 4,4,4,4,4,4,4,4,4,4, 1.384 + 4,4,4,4,4,4,4,4,4,4, 1.385 + 4,4,4,4,4,4,4,4,4,4, 1.386 + 4,4,4,4,4,4,4,4,4,4, 1.387 + 4,4,4,4,4,4,4,4,4,4, 1.388 + 4,4,4,4,4,4,4,4,4,4, 1.389 + 4,4,4,4,4,4,4,4,4,4, 1.390 + 4,4,4,4,4,4,4,4,4,4, 1.391 + ], [ 1.392 + // 11: Irish Gaeilge 0-9, 10-19, ..., 90-99 1.393 + 5,1,2,3,3,3,3,4,4,4, 1.394 + 4,5,5,5,5,5,5,5,5,5, 1.395 + 5,5,5,5,5,5,5,5,5,5, 1.396 + 5,5,5,5,5,5,5,5,5,5, 1.397 + 5,5,5,5,5,5,5,5,5,5, 1.398 + 5,5,5,5,5,5,5,5,5,5, 1.399 + 5,5,5,5,5,5,5,5,5,5, 1.400 + 5,5,5,5,5,5,5,5,5,5, 1.401 + 5,5,5,5,5,5,5,5,5,5, 1.402 + 5,5,5,5,5,5,5,5,5,5, 1.403 + // 100-109, 110-119, ..., 190-199 1.404 + 5,5,5,5,5,5,5,5,5,5, 1.405 + 5,5,5,5,5,5,5,5,5,5, 1.406 + 5,5,5,5,5,5,5,5,5,5, 1.407 + 5,5,5,5,5,5,5,5,5,5, 1.408 + 5,5,5,5,5,5,5,5,5,5, 1.409 + 5,5,5,5,5,5,5,5,5,5, 1.410 + 5,5,5,5,5,5,5,5,5,5, 1.411 + 5,5,5,5,5,5,5,5,5,5, 1.412 + 5,5,5,5,5,5,5,5,5,5, 1.413 + 5,5,5,5,5,5,5,5,5,5, 1.414 + // 200-209, 210-219, ..., 290-299 1.415 + 5,5,5,5,5,5,5,5,5,5, 1.416 + 5,5,5,5,5,5,5,5,5,5, 1.417 + 5,5,5,5,5,5,5,5,5,5, 1.418 + 5,5,5,5,5,5,5,5,5,5, 1.419 + 5,5,5,5,5,5,5,5,5,5, 1.420 + 5,5,5,5,5,5,5,5,5,5, 1.421 + 5,5,5,5,5,5,5,5,5,5, 1.422 + 5,5,5,5,5,5,5,5,5,5, 1.423 + 5,5,5,5,5,5,5,5,5,5, 1.424 + 5,5,5,5,5,5,5,5,5,5, 1.425 + ], [ 1.426 + // 12: Arabic 0-9, 10-19, ..., 90-99 1.427 + 6,1,2,3,3,3,3,3,3,3, 1.428 + 3,4,4,4,4,4,4,4,4,4, 1.429 + 4,4,4,4,4,4,4,4,4,4, 1.430 + 4,4,4,4,4,4,4,4,4,4, 1.431 + 4,4,4,4,4,4,4,4,4,4, 1.432 + 4,4,4,4,4,4,4,4,4,4, 1.433 + 4,4,4,4,4,4,4,4,4,4, 1.434 + 4,4,4,4,4,4,4,4,4,4, 1.435 + 4,4,4,4,4,4,4,4,4,4, 1.436 + 4,4,4,4,4,4,4,4,4,4, 1.437 + // 100-109, 110-119, ..., 190-199 1.438 + 5,5,5,3,3,3,3,3,3,3, 1.439 + 3,4,4,4,4,4,4,4,4,4, 1.440 + 4,4,4,4,4,4,4,4,4,4, 1.441 + 4,4,4,4,4,4,4,4,4,4, 1.442 + 4,4,4,4,4,4,4,4,4,4, 1.443 + 4,4,4,4,4,4,4,4,4,4, 1.444 + 4,4,4,4,4,4,4,4,4,4, 1.445 + 4,4,4,4,4,4,4,4,4,4, 1.446 + 4,4,4,4,4,4,4,4,4,4, 1.447 + 4,4,4,4,4,4,4,4,4,4, 1.448 + // 200-209, 210-219, ..., 290-299 1.449 + 5,5,5,3,3,3,3,3,3,3, 1.450 + 3,4,4,4,4,4,4,4,4,4, 1.451 + 4,4,4,4,4,4,4,4,4,4, 1.452 + 4,4,4,4,4,4,4,4,4,4, 1.453 + 4,4,4,4,4,4,4,4,4,4, 1.454 + 4,4,4,4,4,4,4,4,4,4, 1.455 + 4,4,4,4,4,4,4,4,4,4, 1.456 + 4,4,4,4,4,4,4,4,4,4, 1.457 + 4,4,4,4,4,4,4,4,4,4, 1.458 + 4,4,4,4,4,4,4,4,4,4, 1.459 + ], [ 1.460 + // 13: Maltese 0-9, 10-19, ..., 90-99 1.461 + 2,1,2,2,2,2,2,2,2,2, 1.462 + 2,3,3,3,3,3,3,3,3,3, 1.463 + 4,4,4,4,4,4,4,4,4,4, 1.464 + 4,4,4,4,4,4,4,4,4,4, 1.465 + 4,4,4,4,4,4,4,4,4,4, 1.466 + 4,4,4,4,4,4,4,4,4,4, 1.467 + 4,4,4,4,4,4,4,4,4,4, 1.468 + 4,4,4,4,4,4,4,4,4,4, 1.469 + 4,4,4,4,4,4,4,4,4,4, 1.470 + 4,4,4,4,4,4,4,4,4,4, 1.471 + // 100-109, 110-119, ..., 190-199 1.472 + 4,2,2,2,2,2,2,2,2,2, 1.473 + 2,3,3,3,3,3,3,3,3,3, 1.474 + 4,4,4,4,4,4,4,4,4,4, 1.475 + 4,4,4,4,4,4,4,4,4,4, 1.476 + 4,4,4,4,4,4,4,4,4,4, 1.477 + 4,4,4,4,4,4,4,4,4,4, 1.478 + 4,4,4,4,4,4,4,4,4,4, 1.479 + 4,4,4,4,4,4,4,4,4,4, 1.480 + 4,4,4,4,4,4,4,4,4,4, 1.481 + 4,4,4,4,4,4,4,4,4,4, 1.482 + // 200-209, 210-219, ..., 290-299 1.483 + 4,2,2,2,2,2,2,2,2,2, 1.484 + 2,3,3,3,3,3,3,3,3,3, 1.485 + 4,4,4,4,4,4,4,4,4,4, 1.486 + 4,4,4,4,4,4,4,4,4,4, 1.487 + 4,4,4,4,4,4,4,4,4,4, 1.488 + 4,4,4,4,4,4,4,4,4,4, 1.489 + 4,4,4,4,4,4,4,4,4,4, 1.490 + 4,4,4,4,4,4,4,4,4,4, 1.491 + 4,4,4,4,4,4,4,4,4,4, 1.492 + 4,4,4,4,4,4,4,4,4,4, 1.493 + ], [ 1.494 + // 14: Macedonian 0-9, 10-19, ..., 90-99 1.495 + 3,1,2,3,3,3,3,3,3,3, 1.496 + 3,1,2,3,3,3,3,3,3,3, 1.497 + 3,1,2,3,3,3,3,3,3,3, 1.498 + 3,1,2,3,3,3,3,3,3,3, 1.499 + 3,1,2,3,3,3,3,3,3,3, 1.500 + 3,1,2,3,3,3,3,3,3,3, 1.501 + 3,1,2,3,3,3,3,3,3,3, 1.502 + 3,1,2,3,3,3,3,3,3,3, 1.503 + 3,1,2,3,3,3,3,3,3,3, 1.504 + 3,1,2,3,3,3,3,3,3,3, 1.505 + // 100-109, 110-119, ..., 190-199 1.506 + 3,1,2,3,3,3,3,3,3,3, 1.507 + 3,1,2,3,3,3,3,3,3,3, 1.508 + 3,1,2,3,3,3,3,3,3,3, 1.509 + 3,1,2,3,3,3,3,3,3,3, 1.510 + 3,1,2,3,3,3,3,3,3,3, 1.511 + 3,1,2,3,3,3,3,3,3,3, 1.512 + 3,1,2,3,3,3,3,3,3,3, 1.513 + 3,1,2,3,3,3,3,3,3,3, 1.514 + 3,1,2,3,3,3,3,3,3,3, 1.515 + 3,1,2,3,3,3,3,3,3,3, 1.516 + // 200-209, 210-219, ..., 290-299 1.517 + 3,1,2,3,3,3,3,3,3,3, 1.518 + 3,1,2,3,3,3,3,3,3,3, 1.519 + 3,1,2,3,3,3,3,3,3,3, 1.520 + 3,1,2,3,3,3,3,3,3,3, 1.521 + 3,1,2,3,3,3,3,3,3,3, 1.522 + 3,1,2,3,3,3,3,3,3,3, 1.523 + 3,1,2,3,3,3,3,3,3,3, 1.524 + 3,1,2,3,3,3,3,3,3,3, 1.525 + 3,1,2,3,3,3,3,3,3,3, 1.526 + 3,1,2,3,3,3,3,3,3,3, 1.527 + ], [ 1.528 + // 15: Icelandic 0-9, 10-19, ..., 90-99 1.529 + 2,1,2,2,2,2,2,2,2,2, 1.530 + 2,2,2,2,2,2,2,2,2,2, 1.531 + 2,1,2,2,2,2,2,2,2,2, 1.532 + 2,1,2,2,2,2,2,2,2,2, 1.533 + 2,1,2,2,2,2,2,2,2,2, 1.534 + 2,1,2,2,2,2,2,2,2,2, 1.535 + 2,1,2,2,2,2,2,2,2,2, 1.536 + 2,1,2,2,2,2,2,2,2,2, 1.537 + 2,1,2,2,2,2,2,2,2,2, 1.538 + 2,1,2,2,2,2,2,2,2,2, 1.539 + // 100-109, 110-119, ..., 190-199 1.540 + 2,1,2,2,2,2,2,2,2,2, 1.541 + 2,2,2,2,2,2,2,2,2,2, 1.542 + 2,1,2,2,2,2,2,2,2,2, 1.543 + 2,1,2,2,2,2,2,2,2,2, 1.544 + 2,1,2,2,2,2,2,2,2,2, 1.545 + 2,1,2,2,2,2,2,2,2,2, 1.546 + 2,1,2,2,2,2,2,2,2,2, 1.547 + 2,1,2,2,2,2,2,2,2,2, 1.548 + 2,1,2,2,2,2,2,2,2,2, 1.549 + 2,1,2,2,2,2,2,2,2,2, 1.550 + // 200-209, 210-219, ..., 290-299 1.551 + 2,1,2,2,2,2,2,2,2,2, 1.552 + 2,2,2,2,2,2,2,2,2,2, 1.553 + 2,1,2,2,2,2,2,2,2,2, 1.554 + 2,1,2,2,2,2,2,2,2,2, 1.555 + 2,1,2,2,2,2,2,2,2,2, 1.556 + 2,1,2,2,2,2,2,2,2,2, 1.557 + 2,1,2,2,2,2,2,2,2,2, 1.558 + 2,1,2,2,2,2,2,2,2,2, 1.559 + 2,1,2,2,2,2,2,2,2,2, 1.560 + 2,1,2,2,2,2,2,2,2,2, 1.561 + ], [ 1.562 + // 16: Breton 0-9, 10-19, ..., 90-99 1.563 + 5,1,2,3,3,5,5,5,5,3, 1.564 + 5,5,5,5,5,5,5,5,5,5, 1.565 + 5,1,2,3,3,5,5,5,5,3, 1.566 + 5,1,2,3,3,5,5,5,5,3, 1.567 + 5,1,2,3,3,5,5,5,5,3, 1.568 + 5,1,2,3,3,5,5,5,5,3, 1.569 + 5,1,2,3,3,5,5,5,5,3, 1.570 + 5,5,5,5,5,5,5,5,5,5, 1.571 + 5,1,2,3,3,5,5,5,5,3, 1.572 + 5,5,5,5,5,5,5,5,5,5, 1.573 + // 100-109, 110-119, ..., 190-199 1.574 + 5,1,2,3,3,5,5,5,5,3, 1.575 + 5,5,5,5,5,5,5,5,5,5, 1.576 + 5,1,2,3,3,5,5,5,5,3, 1.577 + 5,1,2,3,3,5,5,5,5,3, 1.578 + 5,1,2,3,3,5,5,5,5,3, 1.579 + 5,1,2,3,3,5,5,5,5,3, 1.580 + 5,1,2,3,3,5,5,5,5,3, 1.581 + 5,5,5,5,5,5,5,5,5,5, 1.582 + 5,1,2,3,3,5,5,5,5,3, 1.583 + 5,5,5,5,5,5,5,5,5,5, 1.584 + // 200-209, 210-219, ..., 290-299 1.585 + 5,1,2,3,3,5,5,5,5,3, 1.586 + 5,5,5,5,5,5,5,5,5,5, 1.587 + 5,1,2,3,3,5,5,5,5,3, 1.588 + 5,1,2,3,3,5,5,5,5,3, 1.589 + 5,1,2,3,3,5,5,5,5,3, 1.590 + 5,1,2,3,3,5,5,5,5,3, 1.591 + 5,1,2,3,3,5,5,5,5,3, 1.592 + 5,5,5,5,5,5,5,5,5,5, 1.593 + 5,1,2,3,3,5,5,5,5,3, 1.594 + 5,5,5,5,5,5,5,5,5,5, 1.595 + ]]; 1.596 + 1.597 + for (let [rule, expect] in Iterator(allExpect)) { 1.598 + print("\nTesting rule #" + rule); 1.599 + 1.600 + let [get, numForms] = PluralForm.makeGetter(rule); 1.601 + 1.602 + // Make sure the largest value expected matches the number of plural forms 1.603 + let maxExpect = Math.max.apply(this, expect); 1.604 + do_check_eq(maxExpect, numForms()); 1.605 + 1.606 + // Make a string of numbers, e.g., 1;2;3;4;5 1.607 + let words = []; 1.608 + for (let i = 1; i <= maxExpect; i++) 1.609 + words.push(i); 1.610 + words = words.join(";"); 1.611 + 1.612 + // Make sure we get the expected number 1.613 + for (let [index, number] in Iterator(expect)) { 1.614 + print(["Plural form of ", index, " should be ", number, " (", words, ")"].join("")); 1.615 + do_check_eq(get(index, words), number); 1.616 + } 1.617 + } 1.618 +}