1 | import * as chrono from "../../src";
|
2 | import { testSingleCase, testUnexpectedResult } from "../test_util";
|
3 |
|
4 | test("Test - Time expression", function () {
|
5 | testSingleCase(chrono.uk, "20:32:13", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
6 | expect(result.index).toBe(0);
|
7 | expect(result.text).toBe(text);
|
8 | expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 20, 32, 13));
|
9 | });
|
10 | });
|
11 |
|
12 | test("Test - Time range expression", function () {
|
13 | testSingleCase(chrono.uk, "10:00:00 - 21:45:01", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
14 | expect(result.index).toBe(0);
|
15 | expect(result.text).toBe(text);
|
16 | expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 10));
|
17 | expect(result.end).toBeDate(new Date(2016, 10 - 1, 1, 21, 45, 1));
|
18 | });
|
19 | });
|
20 |
|
21 | test("Test - Casual time number expression", function () {
|
22 | testSingleCase(chrono.uk, "об 11 ранку", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
23 | expect(result.index).toBe(0);
|
24 | expect(result.text).toBe(text);
|
25 | expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 11));
|
26 | });
|
27 |
|
28 | testSingleCase(chrono.uk, "в 11 вечора", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
29 | expect(result.index).toBe(0);
|
30 | expect(result.text).toBe(text);
|
31 | expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 23));
|
32 | });
|
33 | });
|
34 |
|
35 | test("Test - Time range's meridiem handling", function () {
|
36 | testSingleCase(chrono.uk, "з 10 до 11 ранку", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
37 | expect(result.index).toBe(0);
|
38 | expect(result.text).toBe(text);
|
39 | expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 10));
|
40 | expect(result.end).toBeDate(new Date(2016, 10 - 1, 1, 11));
|
41 | });
|
42 | testSingleCase(chrono.uk, "із 10 до 11 вечора", new Date(2016, 10 - 1, 1, 8), (result, text) => {
|
43 | expect(result.index).toBe(0);
|
44 | expect(result.text).toBe(text);
|
45 | expect(result.start).toBeDate(new Date(2016, 10 - 1, 1, 22));
|
46 | expect(result.end).toBeDate(new Date(2016, 10 - 1, 1, 23));
|
47 | });
|
48 | });
|
49 |
|
50 | test("Test - Parsing causal positive cases", function () {
|
51 | testSingleCase(chrono.uk.casual, "в 1", (result) => {
|
52 | expect(result.index).toBe(0);
|
53 | expect(result.text).toBe("в 1");
|
54 | expect(result.start.get("hour")).toBe(1);
|
55 | });
|
56 |
|
57 | testSingleCase(chrono.uk.casual, "о 12", (result) => {
|
58 | expect(result.index).toBe(0);
|
59 | expect(result.text).toBe("о 12");
|
60 | expect(result.start.get("hour")).toBe(12);
|
61 | });
|
62 |
|
63 | testSingleCase(chrono.uk.casual, "в 12.30", (result) => {
|
64 | expect(result.index).toBe(0);
|
65 | expect(result.text).toBe("в 12.30");
|
66 | expect(result.start.get("hour")).toBe(12);
|
67 | expect(result.start.get("minute")).toBe(30);
|
68 | });
|
69 | });
|
70 |
|
71 | test("Test - Parsing negative cases : [year-like] pattern", function () {
|
72 | testUnexpectedResult(chrono.uk, "2020");
|
73 |
|
74 | testUnexpectedResult(chrono.uk, "2020 ");
|
75 | });
|
76 |
|
77 | test("Test - Parsing negative cases : 'at [some numbers]'", function () {
|
78 | testUnexpectedResult(chrono.uk, "Температура 101,194 градусів!");
|
79 |
|
80 | testUnexpectedResult(chrono.uk, "Температура 101 градусів!");
|
81 |
|
82 | testUnexpectedResult(chrono.uk, "Температура 10.1");
|
83 | });
|
84 |
|
85 | test("Test - Parsing negative cases : 'at [some numbers] - [some numbers]'", function () {
|
86 | testUnexpectedResult(chrono.uk, "Це в 10.1 - 10.12");
|
87 |
|
88 | testUnexpectedResult(chrono.uk, "Це в 10 - 10.1");
|
89 | });
|
90 |
|
91 | test("Test - Parsing negative cases (Strict)", function () {
|
92 | testUnexpectedResult(chrono.uk.strict, "Це в 101,194 телефон!");
|
93 |
|
94 | testUnexpectedResult(chrono.uk.strict, "Це в 101 стіл!");
|
95 |
|
96 | testUnexpectedResult(chrono.uk.strict, "Це в 10.1");
|
97 |
|
98 | testUnexpectedResult(chrono.uk.strict, "Це в 10");
|
99 |
|
100 | testUnexpectedResult(chrono.uk.strict, "2020");
|
101 | });
|
102 |
|
103 | test("Test - Parsing negative cases : 'at [some numbers] - [some numbers]' (Strict)", function () {
|
104 | testUnexpectedResult(chrono.uk.strict, "Це в 10.1 - 10.12");
|
105 |
|
106 | testUnexpectedResult(chrono.uk.strict, "Це в 10 - 10.1");
|
107 |
|
108 | testUnexpectedResult(chrono.uk.strict, "Це в 10 - 20");
|
109 |
|
110 | testUnexpectedResult(chrono.uk.strict, "7-730");
|
111 | });
|