4 vows = require('vows');
6 assert = require('assert');
8 vows.describe('Module Inflector inflections').addBatch({
9 'Test inflector inflections': {
10 topic: require('../../lib/inflections'),
12 'single': function(topic) {
13 topic.uncountables = [1, 2, 3];
14 topic.humans = [1, 2, 3];
15 topic.clear('uncountables');
16 assert.isEmpty(topic.uncountables);
17 return assert.deepEqual(topic.humans, [1, 2, 3]);
19 'all': function(topic) {
20 assert.deepEqual(topic.humans, [1, 2, 3]);
21 topic.uncountables = [1, 2, 3];
23 assert.isEmpty(topic.uncountables);
24 return assert.isEmpty(topic.humans);
28 'one item': function(topic) {
30 assert.isEmpty(topic.uncountables);
31 topic.uncountable('money');
32 return assert.deepEqual(topic.uncountables, ['money']);
34 'many items': function(topic) {
36 assert.isEmpty(topic.uncountables);
37 topic.uncountable(['money', 'rice']);
38 return assert.deepEqual(topic.uncountables, ['money', 'rice']);
41 'human': function(topic) {
43 assert.isEmpty(topic.humans);
44 topic.human("legacy_col_person_name", "Name");
45 return assert.deepEqual(topic.humans, [["legacy_col_person_name", "Name"]]);
47 'plural': function(topic) {
49 assert.isEmpty(topic.plurals);
50 topic.plural('ox', 'oxen');
51 assert.deepEqual(topic.plurals, [['ox', 'oxen']]);
52 topic.uncountable('money');
53 assert.deepEqual(topic.uncountables, ['money']);
54 topic.uncountable('monies');
55 topic.plural('money', 'monies');
56 assert.deepEqual(topic.plurals, [['money', 'monies'], ['ox', 'oxen']]);
57 return assert.isEmpty(topic.uncountables);
59 'singular': function(topic) {
61 assert.isEmpty(topic.singulars);
62 topic.singular('ox', 'oxen');
63 assert.deepEqual(topic.singulars, [['ox', 'oxen']]);
64 topic.uncountable('money');
65 assert.deepEqual(topic.uncountables, ['money']);
66 topic.uncountable('monies');
67 topic.singular('money', 'monies');
68 assert.deepEqual(topic.singulars, [['money', 'monies'], ['ox', 'oxen']]);
69 return assert.isEmpty(topic.uncountables);
71 'irregular': function(topic) {
73 topic.uncountable(['octopi', 'octopus']);
74 assert.deepEqual(topic.uncountables, ['octopi', 'octopus']);
75 topic.irregular('octopus', 'octopi');
76 assert.isEmpty(topic.uncountables);
77 assert.equal(topic.singulars[0][0].toString(), /(o)ctopi$/i.toString());
78 assert.equal(topic.singulars[0][1], '$1ctopus');
79 assert.equal(topic.plurals[0][0].toString(), /(o)ctopi$/i.toString());
80 assert.equal(topic.plurals[0][1], '$1ctopi');
81 assert.equal(topic.plurals[1][0].toString(), /(o)ctopus$/i.toString());
82 return assert.equal(topic.plurals[1][1].toString(), '$1ctopi');