| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623 |
- /*
- * Utilities: A classic collection of JavaScript utilities
- * Copyright 2112 Matthew Eernisse ([email protected])
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
- var inflection = require('../lib/inflection')
- , assert = require('assert')
- , esInflections
- , sInflections
- , iesInflections
- , vesInflections
- , icesInflections
- , renInflections
- , oesInflections
- , iInflections
- , genInflections
- , irregularInflections
- , noInflections
- , tests;
- /**
- * Most test inflections are from Ruby on Rails:
- * https://github.com/rails/rails/blob/master/activesupport/test/inflector_test_cases.rb
- *
- * Ruby on Rails is MIT licensed: http://www.opensource.org/licenses/MIT
- */
- esInflections = [
- ["search", "searches"]
- , ["switch", "switches"]
- , ["fix", "fixes"]
- , ["box", "boxes"]
- , ["process", "processes"]
- , ["address", "addresses"]
- , ["wish", "wishes"]
- , ["status", "statuses"]
- , ["alias", "aliases"]
- , ["basis", "bases"]
- , ["diagnosis", "diagnoses"]
- , ["bus", "buses"]
- ];
- sInflections = [
- ["stack", "stacks"]
- , ["shoe", "shoes"]
- , ["status_code", "status_codes"]
- , ["case", "cases"]
- , ["edge", "edges"]
- , ["archive", "archives"]
- , ["experience", "experiences"]
- , ["day", "days"]
- , ["comment", "comments"]
- , ["foobar", "foobars"]
- , ["newsletter", "newsletters"]
- , ["old_news", "old_news"]
- , ["perspective", "perspectives"]
- , ["diagnosis_a", "diagnosis_as"]
- , ["horse", "horses"]
- , ["prize", "prizes"]
- ];
- iesInflections = [
- ["category", "categories"]
- , ["query", "queries"]
- , ["ability", "abilities"]
- , ["agency", "agencies"]
- ];
- vesInflections = [
- ["wife", "wives"]
- , ["safe", "saves"]
- , ["half", "halves"]
- , ["elf", "elves"]
- , ["dwarf", "dwarves"]
- ];
- icesInflections = [
- ["index", "indices"]
- , ["vertex", "vertices"]
- , ["matrix", "matrices"]
- ];
- renInflections = [
- ["node_child", "node_children"]
- , ["child", "children"]
- ];
- oesInflections = [
- ["buffalo", "buffaloes"]
- , ["tomato", "tomatoes"]
- ];
- iInflections = [
- ["octopus", "octopi"]
- , ["virus", "viri"]
- ];
- genInflections = [
- ["salesperson", "salespeople"]
- , ["person", "people"]
- , ["spokesman", "spokesmen"]
- , ["man", "men"]
- , ["woman", "women"]
- ];
- irregularInflections = [
- ["datum", "data"]
- , ["medium", "media"]
- , ["ox", "oxen"]
- , ["cow", "kine"]
- , ["mouse", "mice"]
- , ["louse", "lice"]
- , ["axis", "axes"]
- , ["testis", "testes"]
- , ["crisis", "crises"]
- , ["analysis", "analyses"]
- , ["quiz", "quizzes"]
- ];
- noInflections = [
- ["fish", "fish"]
- , ["news", "news"]
- , ["series", "series"]
- , ["species", "species"]
- , ["rice", "rice"]
- , ["information", "information"]
- , ["equipment", "equipment"]
- ];
- tests = {
- 'test es plural words for inflection': function () {
- var i = esInflections.length
- , value;
- while (--i >= 0) {
- value = esInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test es singular words for inflection': function () {
- var i = esInflections.length
- , value;
- while (--i >= 0) {
- value = esInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test es plural words for inflection consistency': function() {
- var i = esInflections.length
- , value;
- while (--i >= 0) {
- value = esInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test es singular words for inflection consistency': function() {
- var i = esInflections.length
- , value;
- while (--i >= 0) {
- value = esInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test s plural words for inflection': function () {
- var i = sInflections.length
- , value;
- while (--i >= 0) {
- value = sInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test s singular words for inflection': function () {
- var i = sInflections.length
- , value;
- while (--i >= 0) {
- value = sInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test s plural words for inflection consistency': function () {
- var i = sInflections.length
- , value;
- while (--i >= 0) {
- value = sInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test s singular words for inflection consistency': function () {
- var i = sInflections.length
- , value;
- while (--i >= 0) {
- value = sInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test ies plural words for inflection': function () {
- var i = iesInflections.length
- , value;
- while (--i >= 0) {
- value = iesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test ies singular words for inflection': function () {
- var i = iesInflections.length
- , value;
- while (--i >= 0) {
- value = iesInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test ies plural words for inflection consistency': function () {
- var i = iesInflections.length
- , value;
- while (--i >= 0) {
- value = iesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test ies singular words for inflection consistency': function () {
- var i = iesInflections.length
- , value;
- while (--i >= 0) {
- value = iesInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test ves plural words for inflection': function () {
- var i = vesInflections.length
- , value;
- while (--i >= 0) {
- value = vesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test ves singular words for inflection': function () {
- var i = vesInflections.length
- , value;
- while (--i >= 0) {
- value = vesInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test ves plural words for inflection consistency': function () {
- var i = vesInflections.length
- , value;
- while (--i >= 0) {
- value = vesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test ves singular words for inflection consistency': function () {
- var i = vesInflections.length
- , value;
- while (--i >= 0) {
- value = vesInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test ices plural words for inflection': function () {
- var i = icesInflections.length
- , value;
- while (--i >= 0) {
- value = icesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test ices singular words for inflection': function () {
- var i = icesInflections.length
- , value;
- while (--i >= 0) {
- value = icesInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test ices plural words for inflection consistency': function () {
- var i = icesInflections.length
- , value;
- while (--i >= 0) {
- value = icesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test ices singular words for inflection consistency': function () {
- var i = icesInflections.length
- , value;
- while (--i >= 0) {
- value = icesInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test ren plural words for inflection': function () {
- var i = renInflections.length
- , value;
- while (--i >= 0) {
- value = renInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test ren singular words for inflection': function () {
- var i = renInflections.length
- , value;
- while (--i >= 0) {
- value = renInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test ren plural words for inflection consistency': function () {
- var i = renInflections.length
- , value;
- while (--i >= 0) {
- value = renInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test ren singular words for inflection consistency': function () {
- var i = renInflections.length
- , value;
- while (--i >= 0) {
- value = renInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test oes plural words for inflection': function () {
- var i = oesInflections.length
- , value;
- while (--i >= 0) {
- value = oesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test oes singular words for inflection': function () {
- var i = oesInflections.length
- , value;
- while (--i >= 0) {
- value = oesInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test oes plural words for inflection consistency': function () {
- var i = oesInflections.length
- , value;
- while (--i >= 0) {
- value = oesInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test oes singular words for inflection consistency': function () {
- var i = oesInflections.length
- , value;
- while (--i >= 0) {
- value = oesInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test i plural words for inflection': function () {
- var i = iInflections.length
- , value;
- while (--i >= 0) {
- value = iInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test i singular words for inflection': function () {
- var i = iInflections.length
- , value;
- while (--i >= 0) {
- value = iInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test i plural words for inflection consistency': function () {
- var i = iInflections.length
- , value;
- while (--i >= 0) {
- value = iInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test i singular words for inflection consistency': function () {
- var i = iInflections.length
- , value;
- while (--i >= 0) {
- value = iInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test gender and people plural words for inflection': function () {
- var i = genInflections.length
- , value;
- while (--i >= 0) {
- value = genInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test gender and people singular words for inflection': function () {
- var i = genInflections.length
- , value;
- while (--i >= 0) {
- value = genInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test gender and people plural words for inflection consistency': function () {
- var i = genInflections.length
- , value;
- while (--i >= 0) {
- value = genInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test gender and people singular words for inflection consistency': function () {
- var i = genInflections.length
- , value;
- while (--i >= 0) {
- value = genInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test irregular plural words for inflection': function () {
- var i = irregularInflections.length
- , value;
- while (--i >= 0) {
- value = irregularInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test irregular singular words for inflection': function () {
- var i = irregularInflections.length
- , value;
- while (--i >= 0) {
- value = irregularInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test irregular plural words for inflection consistency': function () {
- var i = irregularInflections.length
- , value;
- while (--i >= 0) {
- value = irregularInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test irregular singular words for inflection consistency': function () {
- var i = irregularInflections.length
- , value;
- while (--i >= 0) {
- value = irregularInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- , 'test no change plural words for inflection': function () {
- var i = noInflections.length
- , value;
- while (--i >= 0) {
- value = noInflections[i];
- assert.equal(value[1], inflection.pluralize(value[0]))
- }
- }
- , 'test no change singular words for inflection': function () {
- var i = noInflections.length
- , value;
- while (--i >= 0) {
- value = noInflections[i];
- assert.equal(value[0], inflection.singularize(value[1]))
- }
- }
- , 'test no change plural words for inflection consistency': function () {
- var i = noInflections.length
- , value;
- while (--i >= 0) {
- value = noInflections[i];
- assert.equal(value[1], inflection.pluralize(value[1]))
- }
- }
- , 'test no change singular words for inflection consistency': function () {
- var i = noInflections.length
- , value;
- while (--i >= 0) {
- value = noInflections[i];
- assert.equal(value[0], inflection.singularize(value[0]))
- }
- }
- };
- module.exports = tests;
|