UNPKG

8.98 kBJavaScriptView Raw
1$(function(){
2 test ('Hangul.disassemble Tests', function(){
3 deepEqual(
4 Hangul.disassemble('가나다'),
5 ['ㄱ','ㅏ','ㄴ','ㅏ','ㄷ','ㅏ'],
6 'Hangul.disassemble(\'가나다\') - 기본동작'
7 );
8 deepEqual(
9 Hangul.disassemble('비행'),
10 ['ㅂ','ㅣ','ㅎ','ㅐ','ㅇ'],
11 'Hangul.disassemble(\'비행\') - 받침'
12 );
13 deepEqual(
14 Hangul.disassemble('쓸다'),
15 ['ㅆ','ㅡ','ㄹ','ㄷ','ㅏ'],
16 'Hangul.disassemble(\'쓸다\') - 초성에 쌍자음'
17 );
18 deepEqual(
19 Hangul.disassemble('의사'),
20 ['ㅇ','ㅡ','ㅣ','ㅅ','ㅏ'],
21 'Hangul.disassemble(\'의사\') - 중성에 복합모음'
22 );
23 deepEqual(
24 Hangul.disassemble('짧은'),
25 ['ㅉ','ㅏ','ㄹ','ㅂ','ㅇ','ㅡ','ㄴ'],
26 'Hangul.disassemble(\'짧은\') - 종성에 복합자음'
27 );
28 deepEqual(
29 Hangul.disassemble('닭고기'),
30 ['ㄷ','ㅏ','ㄹ','ㄱ','ㄱ','ㅗ','ㄱ','ㅣ'],
31 'Hangul.disassemble(\'닭고기\')'
32 );
33 deepEqual(
34 Hangul.disassemble('옽ㅏ'),
35 ['ㅇ','ㅗ','ㅌ','ㅏ'],
36 'Hangul.disassemble(\'옽ㅏ\')'
37 );
38 deepEqual(
39 Hangul.disassemble('AB삵e$@%2324sdf낄캌ㅋㅋㅋㅋ'),
40 ['A','B','ㅅ','ㅏ','ㄹ','ㄱ','e','$','@','%','2','3','2','4','s','d','f','ㄲ','ㅣ','ㄹ','ㅋ','ㅏ','ㅋ','ㅋ','ㅋ','ㅋ','ㅋ'],
41 'Hangul.disassemble(\'AB삵e$@%2324sdf낄캌ㅋㅋㅋㅋ\')'
42 );
43 deepEqual(
44 Hangul.disassemble('뷁궬릪쯻튋'),
45 ['ㅂ','ㅜ','ㅔ','ㄹ','ㄱ','ㄱ','ㅜ','ㅔ','ㄹ','ㄹ','ㅡ','ㅣ','ㅍ','ㅉ','ㅡ','ㅣ','ㄹ','ㅂ','ㅌ','ㅜ','ㅣ','ㄹ','ㅂ'],
46 'Hangul.disassemble(\'뷁궬릪쮧틟\')'
47 );
48 deepEqual(
49 Hangul.disassemble('ㄳ'),
50 ['ㄱ','ㅅ'],
51 "Hangul.disassemble('ㄳ')"
52 );
53 deepEqual(
54 Hangul.disassemble('ㅙ'),
55 ['ㅗ','ㅐ'],
56 "Hangul.disassemble('ㅙ')"
57 );
58 });
59
60 test ('Hangul.assemble Tests', function(){
61 equal(
62 Hangul.assemble(['ㄱ','ㅏ','ㄴ','ㅏ','ㄷ','ㅏ']),
63 '가나다',
64 "Hangul.assemble(['ㄱ','ㅏ','ㄴ','ㅏ','ㄷ','ㅏ']) - 기본동작"
65 );
66 deepEqual(
67 Hangul.assemble(['ㅂ','ㅣ','ㅎ','ㅐ','ㅇ']),
68 '비행',
69 "Hangul.assemble(['ㅂ','ㅣ','ㅎ','ㅐ','ㅇ'])"
70 );
71 deepEqual(
72 Hangul.assemble(['ㅆ','ㅡ','ㄹ','ㄷ','ㅏ']),
73 '쓸다',
74 "Hangul.assemble(['ㅆ','ㅡ','ㄹ','ㄷ','ㅏ'])"
75 );
76 deepEqual(
77 Hangul.assemble(['ㅇ','ㅡ','ㅣ','ㅅ','ㅏ']),
78 '의사',
79 "Hangul.assemble(['ㅇ','ㅡ','ㅣ','ㅅ','ㅏ'])"
80 );
81 deepEqual(
82 Hangul.assemble(['ㅉ','ㅏ','ㄹ','ㅂ','ㅇ','ㅡ','ㄴ']),
83 '짧은',
84 "Hangul.assemble(['ㅉ','ㅏ','ㄹ','ㅂ','ㅇ','ㅡ','ㄴ'])"
85 );
86 deepEqual(
87 Hangul.assemble(['ㄷ','ㅏ','ㄹ','ㄱ','ㄱ','ㅗ','ㄱ','ㅣ']),
88 '닭고기',
89 "Hangul.assemble(['ㄷ','ㅏ','ㄹ','ㄱ','ㄱ','ㅗ','ㄱ','ㅣ'])"
90 );
91 deepEqual(
92 Hangul.assemble(['ㅇ','ㅗ','ㅌ','ㅏ']),
93 '오타',
94 "Hangul.assemble(['ㅇ','ㅗ','ㅌ','ㅏ'])"
95 );
96 deepEqual(
97 Hangul.assemble(['A','B','ㅅ','ㅏ','ㄹ','ㄱ','e','$','@','%','2','3','2','4','s','d','f','ㄲ','ㅣ','ㄹ','ㅋ','ㅏ','ㅋ','ㅋ','ㅋ','ㅋ','ㅋ']),
98 'AB삵e$@%2324sdf낄캌ㅋㅋㅋㅋ',
99 "Hangul.assemble(['A','B','ㅅ','ㅏ','ㄹ','ㄱ','e','$','@','%','2','3','2','4','s','d','f','ㄲ','ㅣ','ㄹ','ㅋ','ㅏ','ㅋ','ㅋ','ㅋ','ㅋ','ㅋ'])"
100 );
101 deepEqual(
102 Hangul.assemble(['ㅂ','ㅜ','ㅔ','ㄹ','ㄱ','ㄱ','ㅜ','ㅔ','ㄹ','ㄹ','ㅡ','ㅣ','ㅍ','ㅉ','ㅡ','ㅣ','ㄹ','ㅂ','ㅌ','ㅜ','ㅣ','ㄹ','ㅂ']),
103 '뷁궬릪쯻튋',
104 "Hangul.assemble(['ㅂ','ㅜ','ㅔ','ㄹ','ㄱ','ㄱ','ㅜ','ㅔ','ㄹ','ㄹ','ㅡ','ㅣ','ㅍ','ㅉ','ㅡ','ㅣ','ㄹ','ㅂ','ㅌ','ㅜ','ㅣ','ㄹ','ㅂ'])"
105 );
106 deepEqual(
107 Hangul.assemble(['ㄱ','ㅅ']),
108 'ㄳ',
109 "Hangul.assemble(['ㄱ','ㅅ'])"
110 );
111 deepEqual(
112 Hangul.assemble(['ㅗ','ㅐ']),
113 'ㅙ',
114 "Hangul.assemble(['ㅗ','ㅐ'])"
115 );
116 deepEqual(
117 Hangul.assemble(['ㅈ','ㅅ','ㅏ']),
118 'ㅈ사',
119 "Hangul.assemble(['ㅈ','ㅅ','ㅏ'])"
120 );
121 deepEqual(
122 Hangul.assemble(['ㄱ','ㅅ','ㄱ','ㅅ']),
123 'ㄳㄳ',
124 "Hangul.assemble(['ㄱ','ㅅ','ㄱ','ㅅ'])"
125 );
126 deepEqual(
127 Hangul.assemble(['ㅗ','ㅐ','ㅗ','ㅐ']),
128 'ㅙㅙ',
129 "Hangul.assemble(['ㅗ','ㅐ','ㅗ','ㅐ'])"
130 );
131 deepEqual(
132 Hangul.assemble(['ㅈ','ㅗ','ㅗ','ㅐ']),
133 '조ㅙ',
134 "Hangul.assemble(['ㅈ','ㅗ','ㅗ','ㅐ'])"
135 );
136 deepEqual(
137 Hangul.assemble(['ㅣ','ㅗ','ㅐ']),
138 'ㅣㅙ',
139 "Hangul.assemble(['ㅣ','ㅗ','ㅐ'])"
140 );
141 deepEqual(
142 Hangul.assemble(['ㅃ','ㅉ','ㅏ','ㄸ']),
143 'ㅃ짜ㄸ',
144 "Hangul.assemble(['ㅃ','ㅉ','ㅏ','ㄸ'])"
145 );
146 deepEqual(
147 Hangul.assemble(['ㅒ','ㅗ','ㅒ']),
148 'ㅒㅗㅒ',
149 "Hangul.assemble(['ㅒ','ㅗ','ㅒ'])"
150 );
151 });
152
153 test ('Hangul.search Tests', function(){
154 equal(
155 Hangul.search('도우미', '도움'),
156 0,
157 "Hangul.search('도우미', '도움')"
158 );
159 equal(
160 Hangul.search('달걀', '닭'),
161 0,
162 "Hangul.search('달걀', '닭')"
163 );
164 equal(
165 Hangul.search('도우미', 'ㅜㅁ'),
166 3,
167 "Hangul.search('도우미', 'ㅜㅁ')"
168 );
169 equal(
170 Hangul.search('달맞이', 'ㄹ마'),
171 2,
172 "Hangul.search('달맞이', 'ㄹ마')"
173 );
174 equal(
175 Hangul.search('달맞이', 'ㅁㅈ'),
176 -1,
177 "Hangul.search('달맞이', 'ㅁㅈ')"
178 );
179 }) ;
180
181 test ('Hangul.Searcher Tests', function(){
182 var searcher = new Hangul.Searcher('닭');
183
184 equal(
185 searcher.search('달걀'),
186 0,
187 "searcher.search('달걀')"
188 );
189 equal(
190 searcher.search('달구지'),
191 0,
192 "searcher.search('달구지')"
193 );
194 equal(
195 searcher.search('닮은'),
196 -1,
197 "searcher.search('닮은')"
198 );
199 });
200
201 test ('Hangul Check Tests', function(){
202 equal(
203 Hangul.isHangul('한'),
204 true,
205 "Hangul.isHangul('한')"
206 );
207 equal(
208 Hangul.isHangul('ㄱ'),
209 false,
210 "Hangul.isHangul('ㄱ')"
211 );
212 equal(
213 Hangul.isHangul('ㅙ'),
214 false,
215 "Hangul.isHangul('ㅙ')"
216 );
217 equal(
218 Hangul.isHangul('a'),
219 false,
220 "Hangul.isHangul('a')"
221 );
222
223 equal(
224 Hangul.isConsonant('한'),
225 false,
226 "Hangul.isConsonant('한')"
227 );
228 equal(
229 Hangul.isConsonant('ㄱ'),
230 true,
231 "Hangul.isConsonant('ㄱ')"
232 );
233 equal(
234 Hangul.isConsonant('ㅙ'),
235 false,
236 "Hangul.isConsonant('ㅙ')"
237 );
238 equal(
239 Hangul.isConsonant('a'),
240 false,
241 "Hangul.isConsonant('a')"
242 );
243
244 equal(
245 Hangul.isVowel('한'),
246 false,
247 "Hangul.isVowel('한')"
248 );
249 equal(
250 Hangul.isVowel('ㄱ'),
251 false,
252 "Hangul.isVowel('ㄱ')"
253 );
254 equal(
255 Hangul.isVowel('ㅙ'),
256 true,
257 "Hangul.isVowel('ㅙ')"
258 );
259 equal(
260 Hangul.isVowel('a'),
261 false,
262 "Hangul.isVowel('a')"
263 );
264
265 equal(
266 Hangul.isCho('ㄱ'),
267 true,
268 "Hangul.isCho('ㄱ')"
269 );
270 equal(
271 Hangul.isCho('ㄸ'),
272 true,
273 "Hangul.isCho('ㄸ')"
274 );
275 equal(
276 Hangul.isCho('ㄳ'),
277 false,
278 "Hangul.isCho('ㄳ')"
279 );
280 equal(
281 Hangul.isCho('ㅏ'),
282 false,
283 "Hangul.isCho('ㅏ')"
284 );
285 equal(
286 Hangul.isCho('a'),
287 false,
288 "Hangul.isCho('a')"
289 );
290
291 equal(
292 Hangul.isJong('ㄱ'),
293 true,
294 "Hangul.isJong('ㄱ')"
295 );
296 equal(
297 Hangul.isJong('ㄸ'),
298 false,
299 "Hangul.isJong('ㄸ')"
300 );
301 equal(
302 Hangul.isJong('ㄳ'),
303 true,
304 "Hangul.isJong('ㄳ')"
305 );
306 equal(
307 Hangul.isCho('ㅏ'),
308 false,
309 "Hangul.isJong('ㅏ')"
310 );
311 equal(
312 Hangul.isCho('a'),
313 false,
314 "Hangul.isJong('a')"
315 );
316 });
317
318 test('Hangul.endsWithConsonant Tests', function () {
319 equal(
320 Hangul.endsWithConsonant('ㄱ'),
321 true,
322 "Hangul.endsWithConsonant('ㄱ')"
323 );
324 equal(
325 Hangul.endsWithConsonant('가'),
326 false,
327 "Hangul.endsWithConsonant('가')"
328 );
329 equal(
330 Hangul.endsWithConsonant('ㅏ'),
331 false,
332 "Hangul.endsWithConsonant('ㅏ')"
333 );
334 equal(
335 Hangul.endsWithConsonant('각'),
336 true,
337 "Hangul.endsWithConsonant('각')"
338 );
339 equal(
340 Hangul.endsWithConsonant('가각'),
341 true,
342 "Hangul.endsWithConsonant('가각')"
343 );
344 equal(
345 Hangul.endsWithConsonant('abc각'),
346 true,
347 "Hangul.endsWithConsonant('abc각')"
348 );
349 equal(
350 Hangul.endsWithConsonant('abc'),
351 false,
352 "Hangul.endsWithConsonant('abc')"
353 );
354 equal(
355 Hangul.endsWithConsonant('各'),
356 false,
357 "Hangul.endsWithConsonant('各')"
358 );
359 equal(
360 Hangul.endsWithConsonant('!@#'),
361 false,
362 "Hangul.endsWithConsonant('!@#')"
363 );
364 });
365
366
367 $('#test1').submit(function(){
368 var str = $('#str').val(),
369 result1 = Hangul.disassemble(str),
370 result2 = Hangul.assemble(result1);
371
372 $('#test1-result1').html(result1);
373 $('#test1-result2').html(result2);
374 if (str === result2) {
375 $('#test1-summary2').html('Same!');
376 } else {
377 $('#test1-summary2').html('Fail!');
378 }
379
380 return false;
381 });
382});
383
384