-
Notifications
You must be signed in to change notification settings - Fork 4
/
test.js
122 lines (110 loc) · 11.9 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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
// encoding: utf8
var assert, Hanp, hanp;
if (typeof window === 'object') {
// web browser
assert = {
strictEqual: function(arg1, arg2) {
if (arg1 !== arg2) throw new Error('Test fail!');
}
};
Hanp = window.Hanp;
}
else if (typeof require === 'function') {
// node.js
assert = require('assert');
Hanp = require("../hangul-postposition");
}
//Hanp.options({halfTranslate: true});
assert.strictEqual(Hanp.translatePostpositions(''), ''); // empty string
assert.strictEqual(Hanp.translatePostpositions('Hello World!'), 'Hello World!'); // non-hangul string
assert.strictEqual(Hanp.translatePostpositions('사자은(는) 토끼을(를) 먹고 말은(는) 풀을(를) 먹는다.'), '사자는 토끼를 먹고 말은 풀을 먹는다.');
assert.strictEqual(Hanp.translatePostpositions('사람과(와) 고양이과(와) 개'), '사람과 고양이와 개');
assert.strictEqual(Hanp.translatePostpositions('배이(가) 고파요. 밥이(가) 먹고 싶어요.'), '배가 고파요. 밥이 먹고 싶어요.');
assert.strictEqual(Hanp.translatePostpositions('둘리아(야)! 희동아(야)!'), '둘리야! 희동아!');
assert.strictEqual(Hanp.translatePostpositions('종이이어(여)서 찢어졌다. 비닐이어(여)서 늘어났다.'), '종이여서 찢어졌다. 비닐이어서 늘어났다.');
assert.strictEqual(Hanp.translatePostpositions('저 사람 김태균이에(예)요? 아니요. 하나카나이에(예)요.'), '저 사람 김태균이에요? 아니요. 하나카나예요.');
assert.strictEqual(Hanp.translatePostpositions('그는 곰이었(였)으며, 동시에 호랑이이었(였)다.'), '그는 곰이었으며, 동시에 호랑이였다.');
assert.strictEqual(Hanp.translatePostpositions('불(이)야! 소방차(이)야!'), '불이야! 소방차야!');
assert.strictEqual(Hanp.translatePostpositions('비(이)다. 아니다. 눈(이)다.'), '비다. 아니다. 눈이다.');
assert.strictEqual(Hanp.translatePostpositions('서울(으)로 안 가니?'), '서울로 안 가니?');
assert.strictEqual(Hanp.translatePostpositions('기차(으)로 부산(으)로 갈 것이다.'), '기차로 부산으로 갈 것이다.');
assert.strictEqual(Hanp.translatePostpositions('4과(와) 7을(를) 더하면 11(이)다.'), '4와 7을 더하면 11이다.');
assert.strictEqual(Hanp.translatePostpositions('1(으)로 1을(를) 7(으)로 7을(를) 8(으)로 8을(를)'), '1로 1을 7로 7을 8로 8을');
assert.strictEqual(Hanp.translatePostpositions('3(으)로 3을(를) 6(으)로 6을(를) 0(으)로 0을(를)'), '3으로 3을 6으로 6을 0으로 0을');
assert.strictEqual(Hanp.translatePostpositions('2(으)로 2을(를) 4(으)로 4을(를) 5(으)로 5을(를) 9(으)로 9을(를)'), '2로 2를 4로 4를 5로 5를 9로 9를');
Hanp.options({halfTranslate: false});
assert.strictEqual(Hanp.translatePostpositions(''), ''); // empty string
assert.strictEqual(Hanp.translatePostpositions('Hello World!'), 'Hello World!'); // non-hangul string
assert.strictEqual(Hanp.translatePostpositions('사자은(는) 토끼을(를) 먹고 말은(는) 풀을(를) 먹는다.'), '사자는 토끼를 먹고 말은 풀을 먹는다.');
assert.strictEqual(Hanp.translatePostpositions('사자는(은) 토끼를(을) 먹고 말는(은) 풀를(을) 먹는다.'), '사자는 토끼를 먹고 말은 풀을 먹는다.');
assert.strictEqual(Hanp.translatePostpositions('사람과(와) 고양이과(와) 개'), '사람과 고양이와 개');
assert.strictEqual(Hanp.translatePostpositions('사람와(과) 고양이와(과) 개'), '사람과 고양이와 개');
assert.strictEqual(Hanp.translatePostpositions('배이(가) 고파요. 밥이(가) 먹고 싶어요.'), '배가 고파요. 밥이 먹고 싶어요.');
// '가(이)' is not supported anymore because it conflicts with '(이)'
//assert.strictEqual(Hanp.translatePostpositions('배가(이) 고파요. 밥가(이) 먹고 싶어요.'), '배가 고파요. 밥이 먹고 싶어요.');
assert.strictEqual(Hanp.translatePostpositions('둘리아(야)! 희동아(야)!'), '둘리야! 희동아!');
assert.strictEqual(Hanp.translatePostpositions('둘리야(아)! 희동야(아)!'), '둘리야! 희동아!');
assert.strictEqual(Hanp.translatePostpositions('종이이어(여)서 찢어졌다. 비닐이어(여)서 늘어났다.'), '종이여서 찢어졌다. 비닐이어서 늘어났다.');
assert.strictEqual(Hanp.translatePostpositions('종이여(이어)서 찢어졌다. 비닐여(이어)서 늘어났다.'), '종이여서 찢어졌다. 비닐이어서 늘어났다.');
assert.strictEqual(Hanp.translatePostpositions('저 사람 김태균이에(예)요? 아니요. 하나카나이에(예)요.'), '저 사람 김태균이에요? 아니요. 하나카나예요.');
assert.strictEqual(Hanp.translatePostpositions('저 사람 김태균예(이에)요? 아니요. 하나카나예(이에)요.'), '저 사람 김태균이에요? 아니요. 하나카나예요.');
assert.strictEqual(Hanp.translatePostpositions('그는 곰이었(였)으며, 동시에 호랑이이었(였)다.'), '그는 곰이었으며, 동시에 호랑이였다.');
assert.strictEqual(Hanp.translatePostpositions('그는 곰였(이었)으며, 동시에 호랑이였(이었)다.'), '그는 곰이었으며, 동시에 호랑이였다.');
assert.strictEqual(Hanp.translatePostpositions('불(이)야! 소방차(이)야!'), '불이야! 소방차야!');
assert.strictEqual(Hanp.translatePostpositions('비(이)다. 아니다. 눈(이)다.'), '비다. 아니다. 눈이다.');
assert.strictEqual(Hanp.translatePostpositions('서울(으)로 안 가니?'), '서울로 안 가니?');
assert.strictEqual(Hanp.translatePostpositions('기차(으)로 부산(으)로 갈 것이다.'), '기차로 부산으로 갈 것이다.');
assert.strictEqual(Hanp.translatePostpositions('4과(와) 7을(를) 더하면 11(이)다.'), '4와 7을 더하면 11이다.');
assert.strictEqual(Hanp.translatePostpositions('4와(과) 7를(을) 더하면 11(이)다.'), '4와 7을 더하면 11이다.');
//Hanp.options({ forceTranslate: false });
assert.strictEqual(Hanp.translatePostpositions('...은(는) ...(이)다.'), '...은(는) ...(이)다.');
Hanp.options({ forceTranslate: true });
assert.strictEqual(Hanp.translatePostpositions('...은(는) ...(이)다.'), '...은 ...이다.');
hanp = new Hanp();
//hanp.options({halfTranslate: true});
assert.strictEqual(hanp.translatePostpositions(''), ''); // empty string
assert.strictEqual(hanp.translatePostpositions('Hello World!'), 'Hello World!'); // non-hangul string
assert.strictEqual(hanp.translatePostpositions('사자은(는) 토끼을(를) 먹고 말은(는) 풀을(를) 먹는다.'), '사자는 토끼를 먹고 말은 풀을 먹는다.');
assert.strictEqual(hanp.translatePostpositions('사람과(와) 고양이과(와) 개'), '사람과 고양이와 개');
assert.strictEqual(hanp.translatePostpositions('배이(가) 고파요. 밥이(가) 먹고 싶어요.'), '배가 고파요. 밥이 먹고 싶어요.');
assert.strictEqual(hanp.translatePostpositions('둘리아(야)! 희동아(야)!'), '둘리야! 희동아!');
assert.strictEqual(hanp.translatePostpositions('종이이어(여)서 찢어졌다. 비닐이어(여)서 늘어났다.'), '종이여서 찢어졌다. 비닐이어서 늘어났다.');
assert.strictEqual(hanp.translatePostpositions('저 사람 김태균이에(예)요? 아니요. 하나카나이에(예)요.'), '저 사람 김태균이에요? 아니요. 하나카나예요.');
assert.strictEqual(hanp.translatePostpositions('그는 곰이었(였)으며, 동시에 호랑이이었(였)다.'), '그는 곰이었으며, 동시에 호랑이였다.');
assert.strictEqual(hanp.translatePostpositions('불(이)야! 소방차(이)야!'), '불이야! 소방차야!');
assert.strictEqual(hanp.translatePostpositions('비(이)다. 아니다. 눈(이)다.'), '비다. 아니다. 눈이다.');
assert.strictEqual(hanp.translatePostpositions('서울(으)로 안 가니?'), '서울로 안 가니?');
assert.strictEqual(hanp.translatePostpositions('기차(으)로 부산(으)로 갈 것이다.'), '기차로 부산으로 갈 것이다.');
assert.strictEqual(hanp.translatePostpositions('4과(와) 7을(를) 더하면 11(이)다.'), '4와 7을 더하면 11이다.');
assert.strictEqual(hanp.translatePostpositions('1(으)로 1을(를) 7(으)로 7을(를) 8(으)로 8을(를)'), '1로 1을 7로 7을 8로 8을');
assert.strictEqual(hanp.translatePostpositions('3(으)로 3을(를) 6(으)로 6을(를) 0(으)로 0을(를)'), '3으로 3을 6으로 6을 0으로 0을');
assert.strictEqual(hanp.translatePostpositions('2(으)로 2을(를) 4(으)로 4을(를) 5(으)로 5을(를) 9(으)로 9을(를)'), '2로 2를 4로 4를 5로 5를 9로 9를');
hanp.options({halfTranslate: false});
assert.strictEqual(hanp.translatePostpositions(''), ''); // empty string
assert.strictEqual(hanp.translatePostpositions('Hello World!'), 'Hello World!'); // non-hangul string
assert.strictEqual(hanp.translatePostpositions('사자은(는) 토끼을(를) 먹고 말은(는) 풀을(를) 먹는다.'), '사자는 토끼를 먹고 말은 풀을 먹는다.');
assert.strictEqual(hanp.translatePostpositions('사자는(은) 토끼를(을) 먹고 말는(은) 풀를(을) 먹는다.'), '사자는 토끼를 먹고 말은 풀을 먹는다.');
assert.strictEqual(hanp.translatePostpositions('사람과(와) 고양이과(와) 개'), '사람과 고양이와 개');
assert.strictEqual(hanp.translatePostpositions('사람와(과) 고양이와(과) 개'), '사람과 고양이와 개');
assert.strictEqual(hanp.translatePostpositions('배이(가) 고파요. 밥이(가) 먹고 싶어요.'), '배가 고파요. 밥이 먹고 싶어요.');
// '가(이)' is not supported anymore because it conflicts with '(이)'
//assert.strictEqual(hanp.translatePostpositions('배가(이) 고파요. 밥가(이) 먹고 싶어요.'), '배가 고파요. 밥이 먹고 싶어요.');
assert.strictEqual(hanp.translatePostpositions('둘리아(야)! 희동아(야)!'), '둘리야! 희동아!');
assert.strictEqual(hanp.translatePostpositions('둘리야(아)! 희동야(아)!'), '둘리야! 희동아!');
assert.strictEqual(hanp.translatePostpositions('종이이어(여)서 찢어졌다. 비닐이어(여)서 늘어났다.'), '종이여서 찢어졌다. 비닐이어서 늘어났다.');
assert.strictEqual(hanp.translatePostpositions('종이여(이어)서 찢어졌다. 비닐여(이어)서 늘어났다.'), '종이여서 찢어졌다. 비닐이어서 늘어났다.');
assert.strictEqual(hanp.translatePostpositions('저 사람 김태균이에(예)요? 아니요. 하나카나이에(예)요.'), '저 사람 김태균이에요? 아니요. 하나카나예요.');
assert.strictEqual(hanp.translatePostpositions('저 사람 김태균예(이에)요? 아니요. 하나카나예(이에)요.'), '저 사람 김태균이에요? 아니요. 하나카나예요.');
assert.strictEqual(hanp.translatePostpositions('그는 곰이었(였)으며, 동시에 호랑이이었(였)다.'), '그는 곰이었으며, 동시에 호랑이였다.');
assert.strictEqual(hanp.translatePostpositions('그는 곰였(이었)으며, 동시에 호랑이였(이었)다.'), '그는 곰이었으며, 동시에 호랑이였다.');
assert.strictEqual(hanp.translatePostpositions('불(이)야! 소방차(이)야!'), '불이야! 소방차야!');
assert.strictEqual(hanp.translatePostpositions('비(이)다. 아니다. 눈(이)다.'), '비다. 아니다. 눈이다.');
assert.strictEqual(hanp.translatePostpositions('서울(으)로 안 가니?'), '서울로 안 가니?');
assert.strictEqual(hanp.translatePostpositions('기차(으)로 부산(으)로 갈 것이다.'), '기차로 부산으로 갈 것이다.');
assert.strictEqual(hanp.translatePostpositions('4과(와) 7을(를) 더하면 11(이)다.'), '4와 7을 더하면 11이다.');
assert.strictEqual(hanp.translatePostpositions('4와(과) 7를(을) 더하면 11(이)다.'), '4와 7을 더하면 11이다.');
//hanp.options({ forceTranslate: false });
assert.strictEqual(hanp.translatePostpositions('...은(는) ...(이)다.'), '...은(는) ...(이)다.');
hanp.options({ forceTranslate: true });
assert.strictEqual(hanp.translatePostpositions('...은(는) ...(이)다.'), '...은 ...이다.');
console.log('Test completed. No errors.');