Skip to content

Commit e3f30dc

Browse files
committed
fix ru.json, add ru test
1 parent e42971e commit e3f30dc

File tree

4 files changed

+104
-14
lines changed

4 files changed

+104
-14
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,3 +32,7 @@ node_modules
3232
lcov
3333
.tern-port
3434
.DS_Store
35+
package.json
36+
package-lock.json
37+
package.json
38+
package.json

lib/i18n/ru.json

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,23 +63,23 @@
6363
},
6464
{
6565
"singular": "миллион",
66-
"few": "миллионы",
66+
"few": "миллиона",
6767
"plural": "миллионов",
6868
"useSingularEnding": true,
6969
"useFewEnding": true,
7070
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
7171
},
7272
{
7373
"singular": "миллиард",
74-
"few": "миллиарды",
74+
"few": "миллиарда",
7575
"plural": "миллиардов",
7676
"useSingularEnding": true,
7777
"useFewEnding": true,
7878
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
7979
},
8080
{
8181
"singular": "триллион",
82-
"few": "триллионы",
82+
"few": "триллиона",
8383
"plural": "триллионов",
8484
"useSingularEnding": true,
8585
"useFewEnding": true,
@@ -103,79 +103,79 @@
103103
},
104104
{
105105
"singular": "секстиллионов",
106-
"few": "секстильоны",
106+
"few": "секстильона",
107107
"plural": "секстиллионов",
108108
"useSingularEnding": true,
109109
"useFewEnding": true,
110110
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
111111
},
112112
{
113113
"singular": "септиллион",
114-
"few": "септиллионы",
114+
"few": "септиллиона",
115115
"plural": "септиллионов",
116116
"useSingularEnding": true,
117117
"useFewEnding": true,
118118
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
119119
},
120120
{
121121
"singular": "октиллион",
122-
"few": "октиллионы",
122+
"few": "октиллиона",
123123
"plural": "октиллионов",
124124
"useSingularEnding": true,
125125
"useFewEnding": true,
126126
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
127127
},
128128
{
129129
"singular": "нониллион",
130-
"few": "нониллионы",
130+
"few": "нониллиона",
131131
"plural": "нониллионов",
132132
"useSingularEnding": true,
133133
"useFewEnding": true,
134134
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
135135
},
136136
{
137137
"singular": "дециллион",
138-
"few": "дециллионы",
138+
"few": "дециллиона",
139139
"plural": "дециллионов",
140140
"useSingularEnding": true,
141141
"useFewEnding": true,
142142
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
143143
},
144144
{
145145
"singular": "ундециллион",
146-
"few": "ундециллионы",
146+
"few": "ундециллиона",
147147
"plural": "ундециллионив",
148148
"useSingularEnding": true,
149149
"useFewEnding": true,
150150
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
151151
},
152152
{
153153
"singular": "дуодециллион",
154-
"few": "дуодециллионы",
154+
"few": "дуодециллиона",
155155
"plural": "дуодециллионив",
156156
"useSingularEnding": true,
157157
"useFewEnding": true,
158158
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
159159
},
160160
{
161161
"singular": "тредециллион",
162-
"few": "тредециллионы",
162+
"few": "тредециллиона",
163163
"plural": "тредециллионив",
164164
"useSingularEnding": true,
165165
"useFewEnding": true,
166166
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
167167
},
168168
{
169169
"singular": "кватуордециллион",
170-
"few": "кватуордециллионы",
170+
"few": "кватуордециллиона",
171171
"plural": "кватуордециллионив",
172172
"useSingularEnding": true,
173173
"useFewEnding": true,
174174
"avoidEndingRules": [11, 12, 13, 14, 111, 112, 113, 114, 211, 212, 213, 214, 311, 312, 313, 314, 411, 412, 413, 414, 511, 512, 513, 514, 611, 612, 613, 614, 711, 712, 713, 714, 811, 812, 813, 814, 911, 912, 913, 914]
175175
},
176176
{
177177
"singular": "квиндециллион",
178-
"few": "квиндециллионы",
178+
"few": "квиндециллиона",
179179
"plural": "квиндециллионив",
180180
"useSingularEnding": true,
181181
"useFewEnding": true,

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"url": "https://github.com/yamadapc/js-written-number"
2525
},
2626
"devDependencies": {
27-
"blanket": "1.1.7",
27+
"blanket": "^1.1.7",
2828
"grunt": "^1.0.1",
2929
"grunt-browserify": "^5.0.0",
3030
"grunt-cli": "^1.2.0",
@@ -49,5 +49,8 @@
4949
"lcovOutput": "lcov"
5050
}
5151
}
52+
},
53+
"dependencies": {
54+
"package.json": "^2.0.1"
5255
}
5356
}

test/index.test.js

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -822,5 +822,88 @@ describe("written-number", function () {
822822
});
823823
});
824824

825+
describe("writtenNumber(n, { lang: 'ru', ... })", function () {
826+
before(function () {
827+
writtenNumber.defaults.lang = "ru";
828+
});
829+
830+
it("gets exposed", function () {
831+
should.exist(writtenNumber);
832+
writtenNumber.should.be.instanceof(Function);
833+
});
834+
835+
it("negative numbers return \"\"", function () {
836+
writtenNumber(-3).should.equal("");
837+
writtenNumber(-5).should.equal("");
838+
});
839+
840+
it("doesn't blow up weirdly with invalid input", function () {
841+
writtenNumber("asdfasdfasdf").should.equal("");
842+
writtenNumber("0.as").should.equal("");
843+
writtenNumber("0.123").should.equal("ноль");
844+
writtenNumber("0.8").should.equal("один");
845+
writtenNumber("2.8").should.equal("три");
846+
writtenNumber("asdf.8").should.equal("");
847+
writtenNumber("120391938123..").should.equal("");
848+
writtenNumber("1000000000.123").should.equal("один миллиард");
849+
writtenNumber("1/3").should.equal("");
850+
writtenNumber(1 / 3).should.equal("ноль");
851+
writtenNumber("1/2").should.equal("");
852+
writtenNumber("1.123/2").should.equal("");
853+
});
854+
855+
it("correctly converts numbers < 10", function () {
856+
writtenNumber(1000000000).should.equal("один миллиард");
857+
writtenNumber(3).should.equal("три");
858+
writtenNumber(8).should.equal("восемь");
859+
});
860+
861+
it("correctly converts numbers < 20", function () {
862+
writtenNumber(13).should.equal("тринадцать");
863+
writtenNumber(19).should.equal("девятнадцать");
864+
});
865+
866+
it("correctly converts numbers < 100", function () {
867+
writtenNumber(20).should.equal("двадцать");
868+
writtenNumber(25).should.equal("двадцать пять");
869+
writtenNumber(88).should.equal("восемьдесят восемь");
870+
writtenNumber(73).should.equal("семьдесят три");
871+
});
872+
873+
it("correctly converts numbers < 1000", function () {
874+
writtenNumber(200).should.equal("двести");
875+
writtenNumber(242).should.equal("двести сорок два");
876+
writtenNumber(1234).should.equal(
877+
"одна тысяча двести тридцать четыре"
878+
);
879+
writtenNumber(4323).should.equal(
880+
"четыре тысячи триста двадцать три"
881+
);
882+
});
883+
884+
it("correctly converts numbers > 1000", function () {
885+
writtenNumber(4323000).should.equal(
886+
"четыре миллиона триста двадцать три тысячи"
887+
);
888+
writtenNumber(4323055).should.equal(
889+
"четыре миллиона триста двадцать три тысячи пятьдесят пять"
890+
);
891+
writtenNumber(1570025).should.equal(
892+
"один миллион пятьсот семьдесят тысяч двадцать пять"
893+
);
894+
});
895+
896+
it("correctly converts numbers > 1 000 000 000", function () {
897+
writtenNumber(1000000000).should.equal("один миллиард");
898+
writtenNumber(2580000000).should.equal(
899+
"два миллиарда пятьсот восемьдесят миллионов"
900+
);
901+
writtenNumber(1000000000000).should.equal("один триллион");
902+
writtenNumber(3627000000000).should.equal(
903+
"три триллиона шестьсот двадцать семь миллиардов"
904+
);
905+
});
906+
});
907+
825908
});
826909

0 commit comments

Comments
 (0)