intl/locale/tests/unit/test_pluralForm.js

Fri, 16 Jan 2015 18:13:44 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Fri, 16 Jan 2015 18:13:44 +0100
branch
TOR_BUG_9701
changeset 14
925c144e1f1f
permissions
-rw-r--r--

Integrate suggestion from review to improve consistency with existing code.

michael@0 1 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 4
michael@0 5 /**
michael@0 6 * Make sure each of the plural forms have the correct number of forms and
michael@0 7 * match up in functionality.
michael@0 8 */
michael@0 9
michael@0 10 Components.utils.import("resource://gre/modules/PluralForm.jsm");
michael@0 11
michael@0 12 function run_test()
michael@0 13 {
michael@0 14 let allExpect = [[
michael@0 15 // 0: Chinese 0-9, 10-19, ..., 90-99
michael@0 16 1,1,1,1,1,1,1,1,1,1,
michael@0 17 1,1,1,1,1,1,1,1,1,1,
michael@0 18 1,1,1,1,1,1,1,1,1,1,
michael@0 19 1,1,1,1,1,1,1,1,1,1,
michael@0 20 1,1,1,1,1,1,1,1,1,1,
michael@0 21 1,1,1,1,1,1,1,1,1,1,
michael@0 22 1,1,1,1,1,1,1,1,1,1,
michael@0 23 1,1,1,1,1,1,1,1,1,1,
michael@0 24 1,1,1,1,1,1,1,1,1,1,
michael@0 25 1,1,1,1,1,1,1,1,1,1,
michael@0 26 // 100-109, 110-119, ..., 190-199
michael@0 27 1,1,1,1,1,1,1,1,1,1,
michael@0 28 1,1,1,1,1,1,1,1,1,1,
michael@0 29 1,1,1,1,1,1,1,1,1,1,
michael@0 30 1,1,1,1,1,1,1,1,1,1,
michael@0 31 1,1,1,1,1,1,1,1,1,1,
michael@0 32 1,1,1,1,1,1,1,1,1,1,
michael@0 33 1,1,1,1,1,1,1,1,1,1,
michael@0 34 1,1,1,1,1,1,1,1,1,1,
michael@0 35 1,1,1,1,1,1,1,1,1,1,
michael@0 36 1,1,1,1,1,1,1,1,1,1,
michael@0 37 // 200-209, 210-219, ..., 290-299
michael@0 38 1,1,1,1,1,1,1,1,1,1,
michael@0 39 1,1,1,1,1,1,1,1,1,1,
michael@0 40 1,1,1,1,1,1,1,1,1,1,
michael@0 41 1,1,1,1,1,1,1,1,1,1,
michael@0 42 1,1,1,1,1,1,1,1,1,1,
michael@0 43 1,1,1,1,1,1,1,1,1,1,
michael@0 44 1,1,1,1,1,1,1,1,1,1,
michael@0 45 1,1,1,1,1,1,1,1,1,1,
michael@0 46 1,1,1,1,1,1,1,1,1,1,
michael@0 47 1,1,1,1,1,1,1,1,1,1,
michael@0 48 ], [
michael@0 49 // 1: English 0-9, 10-19, ..., 90-99
michael@0 50 2,1,2,2,2,2,2,2,2,2,
michael@0 51 2,2,2,2,2,2,2,2,2,2,
michael@0 52 2,2,2,2,2,2,2,2,2,2,
michael@0 53 2,2,2,2,2,2,2,2,2,2,
michael@0 54 2,2,2,2,2,2,2,2,2,2,
michael@0 55 2,2,2,2,2,2,2,2,2,2,
michael@0 56 2,2,2,2,2,2,2,2,2,2,
michael@0 57 2,2,2,2,2,2,2,2,2,2,
michael@0 58 2,2,2,2,2,2,2,2,2,2,
michael@0 59 2,2,2,2,2,2,2,2,2,2,
michael@0 60 // 100-109, 110-119, ..., 190-199
michael@0 61 2,2,2,2,2,2,2,2,2,2,
michael@0 62 2,2,2,2,2,2,2,2,2,2,
michael@0 63 2,2,2,2,2,2,2,2,2,2,
michael@0 64 2,2,2,2,2,2,2,2,2,2,
michael@0 65 2,2,2,2,2,2,2,2,2,2,
michael@0 66 2,2,2,2,2,2,2,2,2,2,
michael@0 67 2,2,2,2,2,2,2,2,2,2,
michael@0 68 2,2,2,2,2,2,2,2,2,2,
michael@0 69 2,2,2,2,2,2,2,2,2,2,
michael@0 70 2,2,2,2,2,2,2,2,2,2,
michael@0 71 // 200-209, 210-219, ..., 290-299
michael@0 72 2,2,2,2,2,2,2,2,2,2,
michael@0 73 2,2,2,2,2,2,2,2,2,2,
michael@0 74 2,2,2,2,2,2,2,2,2,2,
michael@0 75 2,2,2,2,2,2,2,2,2,2,
michael@0 76 2,2,2,2,2,2,2,2,2,2,
michael@0 77 2,2,2,2,2,2,2,2,2,2,
michael@0 78 2,2,2,2,2,2,2,2,2,2,
michael@0 79 2,2,2,2,2,2,2,2,2,2,
michael@0 80 2,2,2,2,2,2,2,2,2,2,
michael@0 81 2,2,2,2,2,2,2,2,2,2,
michael@0 82 ], [
michael@0 83 // 2: French 0-9, 10-19, ..., 90-99
michael@0 84 1,1,2,2,2,2,2,2,2,2,
michael@0 85 2,2,2,2,2,2,2,2,2,2,
michael@0 86 2,2,2,2,2,2,2,2,2,2,
michael@0 87 2,2,2,2,2,2,2,2,2,2,
michael@0 88 2,2,2,2,2,2,2,2,2,2,
michael@0 89 2,2,2,2,2,2,2,2,2,2,
michael@0 90 2,2,2,2,2,2,2,2,2,2,
michael@0 91 2,2,2,2,2,2,2,2,2,2,
michael@0 92 2,2,2,2,2,2,2,2,2,2,
michael@0 93 2,2,2,2,2,2,2,2,2,2,
michael@0 94 // 100-109, 110-119, ..., 190-199
michael@0 95 2,2,2,2,2,2,2,2,2,2,
michael@0 96 2,2,2,2,2,2,2,2,2,2,
michael@0 97 2,2,2,2,2,2,2,2,2,2,
michael@0 98 2,2,2,2,2,2,2,2,2,2,
michael@0 99 2,2,2,2,2,2,2,2,2,2,
michael@0 100 2,2,2,2,2,2,2,2,2,2,
michael@0 101 2,2,2,2,2,2,2,2,2,2,
michael@0 102 2,2,2,2,2,2,2,2,2,2,
michael@0 103 2,2,2,2,2,2,2,2,2,2,
michael@0 104 2,2,2,2,2,2,2,2,2,2,
michael@0 105 // 200-209, 210-219, ..., 290-299
michael@0 106 2,2,2,2,2,2,2,2,2,2,
michael@0 107 2,2,2,2,2,2,2,2,2,2,
michael@0 108 2,2,2,2,2,2,2,2,2,2,
michael@0 109 2,2,2,2,2,2,2,2,2,2,
michael@0 110 2,2,2,2,2,2,2,2,2,2,
michael@0 111 2,2,2,2,2,2,2,2,2,2,
michael@0 112 2,2,2,2,2,2,2,2,2,2,
michael@0 113 2,2,2,2,2,2,2,2,2,2,
michael@0 114 2,2,2,2,2,2,2,2,2,2,
michael@0 115 2,2,2,2,2,2,2,2,2,2,
michael@0 116 ], [
michael@0 117 // 3: Latvian 0-9, 10-19, ..., 90-99
michael@0 118 1,2,3,3,3,3,3,3,3,3,
michael@0 119 3,3,3,3,3,3,3,3,3,3,
michael@0 120 3,2,3,3,3,3,3,3,3,3,
michael@0 121 3,2,3,3,3,3,3,3,3,3,
michael@0 122 3,2,3,3,3,3,3,3,3,3,
michael@0 123 3,2,3,3,3,3,3,3,3,3,
michael@0 124 3,2,3,3,3,3,3,3,3,3,
michael@0 125 3,2,3,3,3,3,3,3,3,3,
michael@0 126 3,2,3,3,3,3,3,3,3,3,
michael@0 127 3,2,3,3,3,3,3,3,3,3,
michael@0 128 // 100-109, 110-119, ..., 190-199
michael@0 129 3,2,3,3,3,3,3,3,3,3,
michael@0 130 3,3,3,3,3,3,3,3,3,3,
michael@0 131 3,2,3,3,3,3,3,3,3,3,
michael@0 132 3,2,3,3,3,3,3,3,3,3,
michael@0 133 3,2,3,3,3,3,3,3,3,3,
michael@0 134 3,2,3,3,3,3,3,3,3,3,
michael@0 135 3,2,3,3,3,3,3,3,3,3,
michael@0 136 3,2,3,3,3,3,3,3,3,3,
michael@0 137 3,2,3,3,3,3,3,3,3,3,
michael@0 138 3,2,3,3,3,3,3,3,3,3,
michael@0 139 // 200-209, 210-219, ..., 290-299
michael@0 140 3,2,3,3,3,3,3,3,3,3,
michael@0 141 3,3,3,3,3,3,3,3,3,3,
michael@0 142 3,2,3,3,3,3,3,3,3,3,
michael@0 143 3,2,3,3,3,3,3,3,3,3,
michael@0 144 3,2,3,3,3,3,3,3,3,3,
michael@0 145 3,2,3,3,3,3,3,3,3,3,
michael@0 146 3,2,3,3,3,3,3,3,3,3,
michael@0 147 3,2,3,3,3,3,3,3,3,3,
michael@0 148 3,2,3,3,3,3,3,3,3,3,
michael@0 149 3,2,3,3,3,3,3,3,3,3,
michael@0 150 ], [
michael@0 151 // 4: Scottish Gaelic 0-9, 10-19, ..., 90-99
michael@0 152 4,1,2,3,3,3,3,3,3,3,
michael@0 153 3,1,2,3,3,3,3,3,3,3,
michael@0 154 4,4,4,4,4,4,4,4,4,4,
michael@0 155 4,4,4,4,4,4,4,4,4,4,
michael@0 156 4,4,4,4,4,4,4,4,4,4,
michael@0 157 4,4,4,4,4,4,4,4,4,4,
michael@0 158 4,4,4,4,4,4,4,4,4,4,
michael@0 159 4,4,4,4,4,4,4,4,4,4,
michael@0 160 4,4,4,4,4,4,4,4,4,4,
michael@0 161 4,4,4,4,4,4,4,4,4,4,
michael@0 162 // 100-109, 110-119, ..., 190-199
michael@0 163 4,4,4,4,4,4,4,4,4,4,
michael@0 164 4,4,4,4,4,4,4,4,4,4,
michael@0 165 4,4,4,4,4,4,4,4,4,4,
michael@0 166 4,4,4,4,4,4,4,4,4,4,
michael@0 167 4,4,4,4,4,4,4,4,4,4,
michael@0 168 4,4,4,4,4,4,4,4,4,4,
michael@0 169 4,4,4,4,4,4,4,4,4,4,
michael@0 170 4,4,4,4,4,4,4,4,4,4,
michael@0 171 4,4,4,4,4,4,4,4,4,4,
michael@0 172 4,4,4,4,4,4,4,4,4,4,
michael@0 173 // 200-209, 210-219, ..., 290-299
michael@0 174 4,4,4,4,4,4,4,4,4,4,
michael@0 175 4,4,4,4,4,4,4,4,4,4,
michael@0 176 4,4,4,4,4,4,4,4,4,4,
michael@0 177 4,4,4,4,4,4,4,4,4,4,
michael@0 178 4,4,4,4,4,4,4,4,4,4,
michael@0 179 4,4,4,4,4,4,4,4,4,4,
michael@0 180 4,4,4,4,4,4,4,4,4,4,
michael@0 181 4,4,4,4,4,4,4,4,4,4,
michael@0 182 4,4,4,4,4,4,4,4,4,4,
michael@0 183 4,4,4,4,4,4,4,4,4,4,
michael@0 184 ], [
michael@0 185 // 5: Romanian 0-9, 10-19, ..., 90-99
michael@0 186 2,1,2,2,2,2,2,2,2,2,
michael@0 187 2,2,2,2,2,2,2,2,2,2,
michael@0 188 3,3,3,3,3,3,3,3,3,3,
michael@0 189 3,3,3,3,3,3,3,3,3,3,
michael@0 190 3,3,3,3,3,3,3,3,3,3,
michael@0 191 3,3,3,3,3,3,3,3,3,3,
michael@0 192 3,3,3,3,3,3,3,3,3,3,
michael@0 193 3,3,3,3,3,3,3,3,3,3,
michael@0 194 3,3,3,3,3,3,3,3,3,3,
michael@0 195 3,3,3,3,3,3,3,3,3,3,
michael@0 196 // 100-109, 110-119, ..., 190-199
michael@0 197 3,2,2,2,2,2,2,2,2,2,
michael@0 198 2,2,2,2,2,2,2,2,2,2,
michael@0 199 3,3,3,3,3,3,3,3,3,3,
michael@0 200 3,3,3,3,3,3,3,3,3,3,
michael@0 201 3,3,3,3,3,3,3,3,3,3,
michael@0 202 3,3,3,3,3,3,3,3,3,3,
michael@0 203 3,3,3,3,3,3,3,3,3,3,
michael@0 204 3,3,3,3,3,3,3,3,3,3,
michael@0 205 3,3,3,3,3,3,3,3,3,3,
michael@0 206 3,3,3,3,3,3,3,3,3,3,
michael@0 207 // 200-209, 210-219, ..., 290-299
michael@0 208 3,2,2,2,2,2,2,2,2,2,
michael@0 209 2,2,2,2,2,2,2,2,2,2,
michael@0 210 3,3,3,3,3,3,3,3,3,3,
michael@0 211 3,3,3,3,3,3,3,3,3,3,
michael@0 212 3,3,3,3,3,3,3,3,3,3,
michael@0 213 3,3,3,3,3,3,3,3,3,3,
michael@0 214 3,3,3,3,3,3,3,3,3,3,
michael@0 215 3,3,3,3,3,3,3,3,3,3,
michael@0 216 3,3,3,3,3,3,3,3,3,3,
michael@0 217 3,3,3,3,3,3,3,3,3,3,
michael@0 218 ], [
michael@0 219 // 6: Lithuanian 0-9, 10-19, ..., 90-99
michael@0 220 2,1,3,3,3,3,3,3,3,3,
michael@0 221 2,2,2,2,2,2,2,2,2,2,
michael@0 222 2,1,3,3,3,3,3,3,3,3,
michael@0 223 2,1,3,3,3,3,3,3,3,3,
michael@0 224 2,1,3,3,3,3,3,3,3,3,
michael@0 225 2,1,3,3,3,3,3,3,3,3,
michael@0 226 2,1,3,3,3,3,3,3,3,3,
michael@0 227 2,1,3,3,3,3,3,3,3,3,
michael@0 228 2,1,3,3,3,3,3,3,3,3,
michael@0 229 2,1,3,3,3,3,3,3,3,3,
michael@0 230 // 100-109, 110-119, ..., 190-199
michael@0 231 2,1,3,3,3,3,3,3,3,3,
michael@0 232 2,2,2,2,2,2,2,2,2,2,
michael@0 233 2,1,3,3,3,3,3,3,3,3,
michael@0 234 2,1,3,3,3,3,3,3,3,3,
michael@0 235 2,1,3,3,3,3,3,3,3,3,
michael@0 236 2,1,3,3,3,3,3,3,3,3,
michael@0 237 2,1,3,3,3,3,3,3,3,3,
michael@0 238 2,1,3,3,3,3,3,3,3,3,
michael@0 239 2,1,3,3,3,3,3,3,3,3,
michael@0 240 2,1,3,3,3,3,3,3,3,3,
michael@0 241 // 200-209, 210-219, ..., 290-299
michael@0 242 2,1,3,3,3,3,3,3,3,3,
michael@0 243 2,2,2,2,2,2,2,2,2,2,
michael@0 244 2,1,3,3,3,3,3,3,3,3,
michael@0 245 2,1,3,3,3,3,3,3,3,3,
michael@0 246 2,1,3,3,3,3,3,3,3,3,
michael@0 247 2,1,3,3,3,3,3,3,3,3,
michael@0 248 2,1,3,3,3,3,3,3,3,3,
michael@0 249 2,1,3,3,3,3,3,3,3,3,
michael@0 250 2,1,3,3,3,3,3,3,3,3,
michael@0 251 2,1,3,3,3,3,3,3,3,3,
michael@0 252 ], [
michael@0 253 // 7: Russian 0-9, 10-19, ..., 90-99
michael@0 254 3,1,2,2,2,3,3,3,3,3,
michael@0 255 3,3,3,3,3,3,3,3,3,3,
michael@0 256 3,1,2,2,2,3,3,3,3,3,
michael@0 257 3,1,2,2,2,3,3,3,3,3,
michael@0 258 3,1,2,2,2,3,3,3,3,3,
michael@0 259 3,1,2,2,2,3,3,3,3,3,
michael@0 260 3,1,2,2,2,3,3,3,3,3,
michael@0 261 3,1,2,2,2,3,3,3,3,3,
michael@0 262 3,1,2,2,2,3,3,3,3,3,
michael@0 263 3,1,2,2,2,3,3,3,3,3,
michael@0 264 // 100-109, 110-119, ..., 190-199
michael@0 265 3,1,2,2,2,3,3,3,3,3,
michael@0 266 3,3,3,3,3,3,3,3,3,3,
michael@0 267 3,1,2,2,2,3,3,3,3,3,
michael@0 268 3,1,2,2,2,3,3,3,3,3,
michael@0 269 3,1,2,2,2,3,3,3,3,3,
michael@0 270 3,1,2,2,2,3,3,3,3,3,
michael@0 271 3,1,2,2,2,3,3,3,3,3,
michael@0 272 3,1,2,2,2,3,3,3,3,3,
michael@0 273 3,1,2,2,2,3,3,3,3,3,
michael@0 274 3,1,2,2,2,3,3,3,3,3,
michael@0 275 // 200-209, 210-219, ..., 290-299
michael@0 276 3,1,2,2,2,3,3,3,3,3,
michael@0 277 3,3,3,3,3,3,3,3,3,3,
michael@0 278 3,1,2,2,2,3,3,3,3,3,
michael@0 279 3,1,2,2,2,3,3,3,3,3,
michael@0 280 3,1,2,2,2,3,3,3,3,3,
michael@0 281 3,1,2,2,2,3,3,3,3,3,
michael@0 282 3,1,2,2,2,3,3,3,3,3,
michael@0 283 3,1,2,2,2,3,3,3,3,3,
michael@0 284 3,1,2,2,2,3,3,3,3,3,
michael@0 285 3,1,2,2,2,3,3,3,3,3,
michael@0 286 ], [
michael@0 287 // 8: Slovak 0-9, 10-19, ..., 90-99
michael@0 288 3,1,2,2,2,3,3,3,3,3,
michael@0 289 3,3,3,3,3,3,3,3,3,3,
michael@0 290 3,3,3,3,3,3,3,3,3,3,
michael@0 291 3,3,3,3,3,3,3,3,3,3,
michael@0 292 3,3,3,3,3,3,3,3,3,3,
michael@0 293 3,3,3,3,3,3,3,3,3,3,
michael@0 294 3,3,3,3,3,3,3,3,3,3,
michael@0 295 3,3,3,3,3,3,3,3,3,3,
michael@0 296 3,3,3,3,3,3,3,3,3,3,
michael@0 297 3,3,3,3,3,3,3,3,3,3,
michael@0 298 // 100-109, 110-119, ..., 190-199
michael@0 299 3,3,3,3,3,3,3,3,3,3,
michael@0 300 3,3,3,3,3,3,3,3,3,3,
michael@0 301 3,3,3,3,3,3,3,3,3,3,
michael@0 302 3,3,3,3,3,3,3,3,3,3,
michael@0 303 3,3,3,3,3,3,3,3,3,3,
michael@0 304 3,3,3,3,3,3,3,3,3,3,
michael@0 305 3,3,3,3,3,3,3,3,3,3,
michael@0 306 3,3,3,3,3,3,3,3,3,3,
michael@0 307 3,3,3,3,3,3,3,3,3,3,
michael@0 308 3,3,3,3,3,3,3,3,3,3,
michael@0 309 // 200-209, 210-219, ..., 290-299
michael@0 310 3,3,3,3,3,3,3,3,3,3,
michael@0 311 3,3,3,3,3,3,3,3,3,3,
michael@0 312 3,3,3,3,3,3,3,3,3,3,
michael@0 313 3,3,3,3,3,3,3,3,3,3,
michael@0 314 3,3,3,3,3,3,3,3,3,3,
michael@0 315 3,3,3,3,3,3,3,3,3,3,
michael@0 316 3,3,3,3,3,3,3,3,3,3,
michael@0 317 3,3,3,3,3,3,3,3,3,3,
michael@0 318 3,3,3,3,3,3,3,3,3,3,
michael@0 319 3,3,3,3,3,3,3,3,3,3,
michael@0 320 ], [
michael@0 321 // 9: Polish 0-9, 10-19, ..., 90-99
michael@0 322 3,1,2,2,2,3,3,3,3,3,
michael@0 323 3,3,3,3,3,3,3,3,3,3,
michael@0 324 3,3,2,2,2,3,3,3,3,3,
michael@0 325 3,3,2,2,2,3,3,3,3,3,
michael@0 326 3,3,2,2,2,3,3,3,3,3,
michael@0 327 3,3,2,2,2,3,3,3,3,3,
michael@0 328 3,3,2,2,2,3,3,3,3,3,
michael@0 329 3,3,2,2,2,3,3,3,3,3,
michael@0 330 3,3,2,2,2,3,3,3,3,3,
michael@0 331 3,3,2,2,2,3,3,3,3,3,
michael@0 332 // 100-109, 110-119, ..., 190-199
michael@0 333 3,3,2,2,2,3,3,3,3,3,
michael@0 334 3,3,3,3,3,3,3,3,3,3,
michael@0 335 3,3,2,2,2,3,3,3,3,3,
michael@0 336 3,3,2,2,2,3,3,3,3,3,
michael@0 337 3,3,2,2,2,3,3,3,3,3,
michael@0 338 3,3,2,2,2,3,3,3,3,3,
michael@0 339 3,3,2,2,2,3,3,3,3,3,
michael@0 340 3,3,2,2,2,3,3,3,3,3,
michael@0 341 3,3,2,2,2,3,3,3,3,3,
michael@0 342 3,3,2,2,2,3,3,3,3,3,
michael@0 343 // 200-209, 210-219, ..., 290-299
michael@0 344 3,3,2,2,2,3,3,3,3,3,
michael@0 345 3,3,3,3,3,3,3,3,3,3,
michael@0 346 3,3,2,2,2,3,3,3,3,3,
michael@0 347 3,3,2,2,2,3,3,3,3,3,
michael@0 348 3,3,2,2,2,3,3,3,3,3,
michael@0 349 3,3,2,2,2,3,3,3,3,3,
michael@0 350 3,3,2,2,2,3,3,3,3,3,
michael@0 351 3,3,2,2,2,3,3,3,3,3,
michael@0 352 3,3,2,2,2,3,3,3,3,3,
michael@0 353 3,3,2,2,2,3,3,3,3,3,
michael@0 354 ], [
michael@0 355 // 10: Slovenian 0-9, 10-19, ..., 90-99
michael@0 356 4,1,2,3,3,4,4,4,4,4,
michael@0 357 4,4,4,4,4,4,4,4,4,4,
michael@0 358 4,4,4,4,4,4,4,4,4,4,
michael@0 359 4,4,4,4,4,4,4,4,4,4,
michael@0 360 4,4,4,4,4,4,4,4,4,4,
michael@0 361 4,4,4,4,4,4,4,4,4,4,
michael@0 362 4,4,4,4,4,4,4,4,4,4,
michael@0 363 4,4,4,4,4,4,4,4,4,4,
michael@0 364 4,4,4,4,4,4,4,4,4,4,
michael@0 365 4,4,4,4,4,4,4,4,4,4,
michael@0 366 // 100-109, 110-119, ..., 190-199
michael@0 367 4,1,2,3,3,4,4,4,4,4,
michael@0 368 4,4,4,4,4,4,4,4,4,4,
michael@0 369 4,4,4,4,4,4,4,4,4,4,
michael@0 370 4,4,4,4,4,4,4,4,4,4,
michael@0 371 4,4,4,4,4,4,4,4,4,4,
michael@0 372 4,4,4,4,4,4,4,4,4,4,
michael@0 373 4,4,4,4,4,4,4,4,4,4,
michael@0 374 4,4,4,4,4,4,4,4,4,4,
michael@0 375 4,4,4,4,4,4,4,4,4,4,
michael@0 376 4,4,4,4,4,4,4,4,4,4,
michael@0 377 // 200-209, 210-219, ..., 290-299
michael@0 378 4,1,2,3,3,4,4,4,4,4,
michael@0 379 4,4,4,4,4,4,4,4,4,4,
michael@0 380 4,4,4,4,4,4,4,4,4,4,
michael@0 381 4,4,4,4,4,4,4,4,4,4,
michael@0 382 4,4,4,4,4,4,4,4,4,4,
michael@0 383 4,4,4,4,4,4,4,4,4,4,
michael@0 384 4,4,4,4,4,4,4,4,4,4,
michael@0 385 4,4,4,4,4,4,4,4,4,4,
michael@0 386 4,4,4,4,4,4,4,4,4,4,
michael@0 387 4,4,4,4,4,4,4,4,4,4,
michael@0 388 ], [
michael@0 389 // 11: Irish Gaeilge 0-9, 10-19, ..., 90-99
michael@0 390 5,1,2,3,3,3,3,4,4,4,
michael@0 391 4,5,5,5,5,5,5,5,5,5,
michael@0 392 5,5,5,5,5,5,5,5,5,5,
michael@0 393 5,5,5,5,5,5,5,5,5,5,
michael@0 394 5,5,5,5,5,5,5,5,5,5,
michael@0 395 5,5,5,5,5,5,5,5,5,5,
michael@0 396 5,5,5,5,5,5,5,5,5,5,
michael@0 397 5,5,5,5,5,5,5,5,5,5,
michael@0 398 5,5,5,5,5,5,5,5,5,5,
michael@0 399 5,5,5,5,5,5,5,5,5,5,
michael@0 400 // 100-109, 110-119, ..., 190-199
michael@0 401 5,5,5,5,5,5,5,5,5,5,
michael@0 402 5,5,5,5,5,5,5,5,5,5,
michael@0 403 5,5,5,5,5,5,5,5,5,5,
michael@0 404 5,5,5,5,5,5,5,5,5,5,
michael@0 405 5,5,5,5,5,5,5,5,5,5,
michael@0 406 5,5,5,5,5,5,5,5,5,5,
michael@0 407 5,5,5,5,5,5,5,5,5,5,
michael@0 408 5,5,5,5,5,5,5,5,5,5,
michael@0 409 5,5,5,5,5,5,5,5,5,5,
michael@0 410 5,5,5,5,5,5,5,5,5,5,
michael@0 411 // 200-209, 210-219, ..., 290-299
michael@0 412 5,5,5,5,5,5,5,5,5,5,
michael@0 413 5,5,5,5,5,5,5,5,5,5,
michael@0 414 5,5,5,5,5,5,5,5,5,5,
michael@0 415 5,5,5,5,5,5,5,5,5,5,
michael@0 416 5,5,5,5,5,5,5,5,5,5,
michael@0 417 5,5,5,5,5,5,5,5,5,5,
michael@0 418 5,5,5,5,5,5,5,5,5,5,
michael@0 419 5,5,5,5,5,5,5,5,5,5,
michael@0 420 5,5,5,5,5,5,5,5,5,5,
michael@0 421 5,5,5,5,5,5,5,5,5,5,
michael@0 422 ], [
michael@0 423 // 12: Arabic 0-9, 10-19, ..., 90-99
michael@0 424 6,1,2,3,3,3,3,3,3,3,
michael@0 425 3,4,4,4,4,4,4,4,4,4,
michael@0 426 4,4,4,4,4,4,4,4,4,4,
michael@0 427 4,4,4,4,4,4,4,4,4,4,
michael@0 428 4,4,4,4,4,4,4,4,4,4,
michael@0 429 4,4,4,4,4,4,4,4,4,4,
michael@0 430 4,4,4,4,4,4,4,4,4,4,
michael@0 431 4,4,4,4,4,4,4,4,4,4,
michael@0 432 4,4,4,4,4,4,4,4,4,4,
michael@0 433 4,4,4,4,4,4,4,4,4,4,
michael@0 434 // 100-109, 110-119, ..., 190-199
michael@0 435 5,5,5,3,3,3,3,3,3,3,
michael@0 436 3,4,4,4,4,4,4,4,4,4,
michael@0 437 4,4,4,4,4,4,4,4,4,4,
michael@0 438 4,4,4,4,4,4,4,4,4,4,
michael@0 439 4,4,4,4,4,4,4,4,4,4,
michael@0 440 4,4,4,4,4,4,4,4,4,4,
michael@0 441 4,4,4,4,4,4,4,4,4,4,
michael@0 442 4,4,4,4,4,4,4,4,4,4,
michael@0 443 4,4,4,4,4,4,4,4,4,4,
michael@0 444 4,4,4,4,4,4,4,4,4,4,
michael@0 445 // 200-209, 210-219, ..., 290-299
michael@0 446 5,5,5,3,3,3,3,3,3,3,
michael@0 447 3,4,4,4,4,4,4,4,4,4,
michael@0 448 4,4,4,4,4,4,4,4,4,4,
michael@0 449 4,4,4,4,4,4,4,4,4,4,
michael@0 450 4,4,4,4,4,4,4,4,4,4,
michael@0 451 4,4,4,4,4,4,4,4,4,4,
michael@0 452 4,4,4,4,4,4,4,4,4,4,
michael@0 453 4,4,4,4,4,4,4,4,4,4,
michael@0 454 4,4,4,4,4,4,4,4,4,4,
michael@0 455 4,4,4,4,4,4,4,4,4,4,
michael@0 456 ], [
michael@0 457 // 13: Maltese 0-9, 10-19, ..., 90-99
michael@0 458 2,1,2,2,2,2,2,2,2,2,
michael@0 459 2,3,3,3,3,3,3,3,3,3,
michael@0 460 4,4,4,4,4,4,4,4,4,4,
michael@0 461 4,4,4,4,4,4,4,4,4,4,
michael@0 462 4,4,4,4,4,4,4,4,4,4,
michael@0 463 4,4,4,4,4,4,4,4,4,4,
michael@0 464 4,4,4,4,4,4,4,4,4,4,
michael@0 465 4,4,4,4,4,4,4,4,4,4,
michael@0 466 4,4,4,4,4,4,4,4,4,4,
michael@0 467 4,4,4,4,4,4,4,4,4,4,
michael@0 468 // 100-109, 110-119, ..., 190-199
michael@0 469 4,2,2,2,2,2,2,2,2,2,
michael@0 470 2,3,3,3,3,3,3,3,3,3,
michael@0 471 4,4,4,4,4,4,4,4,4,4,
michael@0 472 4,4,4,4,4,4,4,4,4,4,
michael@0 473 4,4,4,4,4,4,4,4,4,4,
michael@0 474 4,4,4,4,4,4,4,4,4,4,
michael@0 475 4,4,4,4,4,4,4,4,4,4,
michael@0 476 4,4,4,4,4,4,4,4,4,4,
michael@0 477 4,4,4,4,4,4,4,4,4,4,
michael@0 478 4,4,4,4,4,4,4,4,4,4,
michael@0 479 // 200-209, 210-219, ..., 290-299
michael@0 480 4,2,2,2,2,2,2,2,2,2,
michael@0 481 2,3,3,3,3,3,3,3,3,3,
michael@0 482 4,4,4,4,4,4,4,4,4,4,
michael@0 483 4,4,4,4,4,4,4,4,4,4,
michael@0 484 4,4,4,4,4,4,4,4,4,4,
michael@0 485 4,4,4,4,4,4,4,4,4,4,
michael@0 486 4,4,4,4,4,4,4,4,4,4,
michael@0 487 4,4,4,4,4,4,4,4,4,4,
michael@0 488 4,4,4,4,4,4,4,4,4,4,
michael@0 489 4,4,4,4,4,4,4,4,4,4,
michael@0 490 ], [
michael@0 491 // 14: Macedonian 0-9, 10-19, ..., 90-99
michael@0 492 3,1,2,3,3,3,3,3,3,3,
michael@0 493 3,1,2,3,3,3,3,3,3,3,
michael@0 494 3,1,2,3,3,3,3,3,3,3,
michael@0 495 3,1,2,3,3,3,3,3,3,3,
michael@0 496 3,1,2,3,3,3,3,3,3,3,
michael@0 497 3,1,2,3,3,3,3,3,3,3,
michael@0 498 3,1,2,3,3,3,3,3,3,3,
michael@0 499 3,1,2,3,3,3,3,3,3,3,
michael@0 500 3,1,2,3,3,3,3,3,3,3,
michael@0 501 3,1,2,3,3,3,3,3,3,3,
michael@0 502 // 100-109, 110-119, ..., 190-199
michael@0 503 3,1,2,3,3,3,3,3,3,3,
michael@0 504 3,1,2,3,3,3,3,3,3,3,
michael@0 505 3,1,2,3,3,3,3,3,3,3,
michael@0 506 3,1,2,3,3,3,3,3,3,3,
michael@0 507 3,1,2,3,3,3,3,3,3,3,
michael@0 508 3,1,2,3,3,3,3,3,3,3,
michael@0 509 3,1,2,3,3,3,3,3,3,3,
michael@0 510 3,1,2,3,3,3,3,3,3,3,
michael@0 511 3,1,2,3,3,3,3,3,3,3,
michael@0 512 3,1,2,3,3,3,3,3,3,3,
michael@0 513 // 200-209, 210-219, ..., 290-299
michael@0 514 3,1,2,3,3,3,3,3,3,3,
michael@0 515 3,1,2,3,3,3,3,3,3,3,
michael@0 516 3,1,2,3,3,3,3,3,3,3,
michael@0 517 3,1,2,3,3,3,3,3,3,3,
michael@0 518 3,1,2,3,3,3,3,3,3,3,
michael@0 519 3,1,2,3,3,3,3,3,3,3,
michael@0 520 3,1,2,3,3,3,3,3,3,3,
michael@0 521 3,1,2,3,3,3,3,3,3,3,
michael@0 522 3,1,2,3,3,3,3,3,3,3,
michael@0 523 3,1,2,3,3,3,3,3,3,3,
michael@0 524 ], [
michael@0 525 // 15: Icelandic 0-9, 10-19, ..., 90-99
michael@0 526 2,1,2,2,2,2,2,2,2,2,
michael@0 527 2,2,2,2,2,2,2,2,2,2,
michael@0 528 2,1,2,2,2,2,2,2,2,2,
michael@0 529 2,1,2,2,2,2,2,2,2,2,
michael@0 530 2,1,2,2,2,2,2,2,2,2,
michael@0 531 2,1,2,2,2,2,2,2,2,2,
michael@0 532 2,1,2,2,2,2,2,2,2,2,
michael@0 533 2,1,2,2,2,2,2,2,2,2,
michael@0 534 2,1,2,2,2,2,2,2,2,2,
michael@0 535 2,1,2,2,2,2,2,2,2,2,
michael@0 536 // 100-109, 110-119, ..., 190-199
michael@0 537 2,1,2,2,2,2,2,2,2,2,
michael@0 538 2,2,2,2,2,2,2,2,2,2,
michael@0 539 2,1,2,2,2,2,2,2,2,2,
michael@0 540 2,1,2,2,2,2,2,2,2,2,
michael@0 541 2,1,2,2,2,2,2,2,2,2,
michael@0 542 2,1,2,2,2,2,2,2,2,2,
michael@0 543 2,1,2,2,2,2,2,2,2,2,
michael@0 544 2,1,2,2,2,2,2,2,2,2,
michael@0 545 2,1,2,2,2,2,2,2,2,2,
michael@0 546 2,1,2,2,2,2,2,2,2,2,
michael@0 547 // 200-209, 210-219, ..., 290-299
michael@0 548 2,1,2,2,2,2,2,2,2,2,
michael@0 549 2,2,2,2,2,2,2,2,2,2,
michael@0 550 2,1,2,2,2,2,2,2,2,2,
michael@0 551 2,1,2,2,2,2,2,2,2,2,
michael@0 552 2,1,2,2,2,2,2,2,2,2,
michael@0 553 2,1,2,2,2,2,2,2,2,2,
michael@0 554 2,1,2,2,2,2,2,2,2,2,
michael@0 555 2,1,2,2,2,2,2,2,2,2,
michael@0 556 2,1,2,2,2,2,2,2,2,2,
michael@0 557 2,1,2,2,2,2,2,2,2,2,
michael@0 558 ], [
michael@0 559 // 16: Breton 0-9, 10-19, ..., 90-99
michael@0 560 5,1,2,3,3,5,5,5,5,3,
michael@0 561 5,5,5,5,5,5,5,5,5,5,
michael@0 562 5,1,2,3,3,5,5,5,5,3,
michael@0 563 5,1,2,3,3,5,5,5,5,3,
michael@0 564 5,1,2,3,3,5,5,5,5,3,
michael@0 565 5,1,2,3,3,5,5,5,5,3,
michael@0 566 5,1,2,3,3,5,5,5,5,3,
michael@0 567 5,5,5,5,5,5,5,5,5,5,
michael@0 568 5,1,2,3,3,5,5,5,5,3,
michael@0 569 5,5,5,5,5,5,5,5,5,5,
michael@0 570 // 100-109, 110-119, ..., 190-199
michael@0 571 5,1,2,3,3,5,5,5,5,3,
michael@0 572 5,5,5,5,5,5,5,5,5,5,
michael@0 573 5,1,2,3,3,5,5,5,5,3,
michael@0 574 5,1,2,3,3,5,5,5,5,3,
michael@0 575 5,1,2,3,3,5,5,5,5,3,
michael@0 576 5,1,2,3,3,5,5,5,5,3,
michael@0 577 5,1,2,3,3,5,5,5,5,3,
michael@0 578 5,5,5,5,5,5,5,5,5,5,
michael@0 579 5,1,2,3,3,5,5,5,5,3,
michael@0 580 5,5,5,5,5,5,5,5,5,5,
michael@0 581 // 200-209, 210-219, ..., 290-299
michael@0 582 5,1,2,3,3,5,5,5,5,3,
michael@0 583 5,5,5,5,5,5,5,5,5,5,
michael@0 584 5,1,2,3,3,5,5,5,5,3,
michael@0 585 5,1,2,3,3,5,5,5,5,3,
michael@0 586 5,1,2,3,3,5,5,5,5,3,
michael@0 587 5,1,2,3,3,5,5,5,5,3,
michael@0 588 5,1,2,3,3,5,5,5,5,3,
michael@0 589 5,5,5,5,5,5,5,5,5,5,
michael@0 590 5,1,2,3,3,5,5,5,5,3,
michael@0 591 5,5,5,5,5,5,5,5,5,5,
michael@0 592 ]];
michael@0 593
michael@0 594 for (let [rule, expect] in Iterator(allExpect)) {
michael@0 595 print("\nTesting rule #" + rule);
michael@0 596
michael@0 597 let [get, numForms] = PluralForm.makeGetter(rule);
michael@0 598
michael@0 599 // Make sure the largest value expected matches the number of plural forms
michael@0 600 let maxExpect = Math.max.apply(this, expect);
michael@0 601 do_check_eq(maxExpect, numForms());
michael@0 602
michael@0 603 // Make a string of numbers, e.g., 1;2;3;4;5
michael@0 604 let words = [];
michael@0 605 for (let i = 1; i <= maxExpect; i++)
michael@0 606 words.push(i);
michael@0 607 words = words.join(";");
michael@0 608
michael@0 609 // Make sure we get the expected number
michael@0 610 for (let [index, number] in Iterator(expect)) {
michael@0 611 print(["Plural form of ", index, " should be ", number, " (", words, ")"].join(""));
michael@0 612 do_check_eq(get(index, words), number);
michael@0 613 }
michael@0 614 }
michael@0 615 }

mercurial