-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.js
85 lines (81 loc) · 2.44 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
const test = require("ava");
const inflect = require(".");
test("returns string", (t) => {
t.is(typeof inflect(0, { zero: "no one" }), "string");
});
test("zero", (t) => {
t.is(inflect(0, { zero: "no one" }), "no one");
});
test("one", (t) => {
t.is(inflect(1, { one: "there is one file" }), "there is one file");
});
test("templating", (t) => {
t.is(inflect(1, { one: "there is {} file" }), "there is 1 file");
});
test("21", (t) => {
t.is(inflect(21, { one: "{} file" }), "21 file");
});
test("13", (t) => {
t.is(inflect(13, { many: "{} файлов" }), "13 файлов");
});
test("12", (t) => {
t.is(inflect(12, { many: "{} файлов" }), "12 файлов");
});
test("11", (t) => {
t.is(inflect(11, { many: "{} файлов" }), "11 файлов");
});
test("10", (t) => {
t.is(inflect(10, { many: "{} файлов" }), "10 файлов");
});
test("9", (t) => {
t.is(inflect(9, { many: "{} файлов" }), "9 файлов");
});
test("some", (t) => {
t.is(inflect(2, { some: "{} файла" }), "2 файла");
});
test("some (22)", (t) => {
t.is(inflect(22, { some: "{} файла" }), "22 файла");
});
test("many", (t) => {
t.is(inflect(445, { many: "{} яблок" }), "445 яблок");
});
const inflect_ = (count) =>
inflect(count, {
zero: "Файлы не загружены",
one: "Загружен {} файл",
some: "Загружено {} файла",
many: "Загружено {} файлов",
});
test("complete zero", (t) => {
t.is(inflect_(0), "Файлы не загружены");
});
test("complete one", (t) => {
t.is(inflect_(31), "Загружен 31 файл");
});
test("complete some", (t) => {
t.is(inflect_(5564), "Загружено 5564 файла");
});
test("complete many", (t) => {
t.is(inflect_(100500), "Загружено 100500 файлов");
});
test("negative num", (t) => {
t.is(
inflect(-1, { one: "Погода: небольшой снегопад, {} градус" }),
"Погода: небольшой снегопад, -1 градус"
);
});
test("pattern-functions", (t) => {
t.is(
inflect(11, {
many: (value) => "has b" + value.toString(2) + " nerds in the team",
}),
"has b1011 nerds in the team"
);
});
test("partial application", (t) => {
const infl = inflect({
zero: "Компьютеры не заражены",
one: "Заражён {} компьютер",
});
t.is(infl(21), "Заражён 21 компьютер");
});