Pop-up dictionary browser extension for language learning. Successor to Yomichan. (PERSONAL FORK)
1/*
2 * Copyright (C) 2023-2025 Yomitan Authors
3 * Copyright (C) 2020-2022 Yomichan Authors
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 */
18
19import {koreanTransforms} from '../../ext/js/language/ko/korean-transforms.js';
20import {LanguageTransformer} from '../../ext/js/language/language-transformer.js';
21import {testLanguageTransformer} from '../fixtures/language-transformer-test.js';
22import {Hangul} from '../../ext/lib/hangul-js.js';
23
24/* eslint-disable @stylistic/no-multi-spaces */
25const tests = [
26 {
27 category: 'ㅏ다',
28 valid: true,
29 tests: [
30 {term: '가다', source: '가다', rule: 'v', reasons: []},
31 {term: '가다', source: '갑니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
32 {term: '가다', source: '가요', rule: 'v', reasons: ['-아/어요']},
33 {term: '가다', source: '가', rule: 'v', reasons: ['어간']},
34 {term: '가다', source: '간다', rule: 'v', reasons: ['-(느)ㄴ다']},
35 {term: '가다', source: '갔습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
36 {term: '가다', source: '갔어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
37 {term: '가다', source: '갔어', rule: 'v', reasons: ['-았/었', '-아/어']},
38 {term: '가다', source: '갔다', rule: 'v', reasons: ['-았/었', '-다']},
39 {term: '가다', source: '가겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
40 {term: '가다', source: '가겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
41 {term: '가다', source: '가겠어', rule: 'v', reasons: ['-겠', '-아/어']},
42 {term: '가다', source: '가겠다', rule: 'v', reasons: ['-겠', '-다']},
43 {term: '가다', source: '갑니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
44 {term: '가다', source: '가냐', rule: 'v', reasons: ['-(으)냐']},
45 {term: '가다', source: '갔습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
46 {term: '가다', source: '갔냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
47 {term: '가다', source: '가겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
48 {term: '가다', source: '가겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
49 {term: '가다', source: '가네', rule: 'v', reasons: ['-네']},
50 {term: '가다', source: '가는구나', rule: 'v', reasons: ['-는구나']},
51 {term: '가다', source: '감', rule: 'v', reasons: ['-(으)ㅁ']},
52 {term: '가다', source: '간', rule: 'v', reasons: ['-(으)ㄴ']},
53 {term: '가다', source: '가게', rule: 'v', reasons: ['-게']},
54 {term: '가다', source: '가고', rule: 'v', reasons: ['-고']},
55 {term: '가다', source: '가면', rule: 'v', reasons: ['-(으)면']},
56 {term: '가다', source: '가니', rule: 'v', reasons: ['-(으)니']},
57 {term: '가다', source: '가십시오', rule: 'v', reasons: ['-(으)십시오']},
58 {term: '가다', source: '가세요', rule: 'v', reasons: ['-(으)세요']},
59 {term: '가다', source: '가라', rule: 'v', reasons: ['-아/어라']},
60 {term: '가다', source: '갑시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
61 {term: '가다', source: '가자', rule: 'v', reasons: ['-자']},
62 ],
63 },
64 {
65 category: 'ㅓ다',
66 valid: true,
67 tests: [
68 {term: '서다', source: '서다', rule: 'v', reasons: []},
69 {term: '서다', source: '섭니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
70 {term: '서다', source: '서요', rule: 'v', reasons: ['-아/어요']},
71 {term: '서다', source: '서', rule: 'v', reasons: ['어간']},
72 {term: '서다', source: '선다', rule: 'v', reasons: ['-(느)ㄴ다']},
73 {term: '서다', source: '섰어', rule: 'v', reasons: ['-았/었', '-아/어']},
74 {term: '서다', source: '섰어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
75 {term: '서다', source: '섰다', rule: 'v', reasons: ['-았/었', '-다']},
76 {term: '서다', source: '섰습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
77 {term: '서다', source: '서겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
78 {term: '서다', source: '서겠어', rule: 'v', reasons: ['-겠', '-아/어']},
79 {term: '서다', source: '서겠다', rule: 'v', reasons: ['-겠', '-다']},
80 {term: '서다', source: '서겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
81 {term: '서다', source: '섭니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
82 {term: '서다', source: '서냐', rule: 'v', reasons: ['-(으)냐']},
83 {term: '서다', source: '섰습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
84 {term: '서다', source: '섰냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
85 {term: '서다', source: '서겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
86 {term: '서다', source: '서겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
87 {term: '서다', source: '서는구나', rule: 'v', reasons: ['-는구나']},
88 {term: '서다', source: '서네', rule: 'v', reasons: ['-네']},
89 {term: '서다', source: '섬', rule: 'v', reasons: ['-(으)ㅁ']},
90 {term: '서다', source: '선', rule: 'v', reasons: ['-(으)ㄴ']},
91 {term: '서다', source: '서게', rule: 'v', reasons: ['-게']},
92 {term: '서다', source: '서면', rule: 'v', reasons: ['-(으)면']},
93 {term: '서다', source: '서고', rule: 'v', reasons: ['-고']},
94 {term: '서다', source: '서니', rule: 'v', reasons: ['-(으)니']},
95 {term: '서다', source: '서세요', rule: 'v', reasons: ['-(으)세요']},
96 {term: '서다', source: '서십시오', rule: 'v', reasons: ['-(으)십시오']},
97 {term: '서다', source: '서라', rule: 'v', reasons: ['-아/어라']},
98 {term: '서다', source: '서자', rule: 'v', reasons: ['-자']},
99 {term: '서다', source: '섭시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
100 ],
101 },
102 {
103 category: 'ㅗ다',
104 valid: true,
105 tests: [
106 {term: '오다', source: '오다', rule: 'v', reasons: []},
107 {term: '오다', source: '옵니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
108 {term: '오다', source: '와요', rule: 'v', reasons: ['-아/어요']},
109 {term: '오다', source: '와', rule: 'v', reasons: ['-아/어']},
110 {term: '오다', source: '온다', rule: 'v', reasons: ['-(느)ㄴ다']},
111 {term: '오다', source: '왔습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
112 {term: '오다', source: '왔어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
113 {term: '오다', source: '왔어', rule: 'v', reasons: ['-았/었', '-아/어']},
114 {term: '오다', source: '왔다', rule: 'v', reasons: ['-았/었', '-다']},
115 {term: '오다', source: '오겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
116 {term: '오다', source: '오겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
117 {term: '오다', source: '오겠어', rule: 'v', reasons: ['-겠', '-아/어']},
118 {term: '오다', source: '오겠다', rule: 'v', reasons: ['-겠', '-다']},
119 {term: '오다', source: '옵니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
120 {term: '오다', source: '오냐', rule: 'v', reasons: ['-(으)냐']},
121 {term: '오다', source: '왔습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
122 {term: '오다', source: '왔냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
123 {term: '오다', source: '오겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
124 {term: '오다', source: '오겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
125 {term: '오다', source: '오네', rule: 'v', reasons: ['-네']},
126 {term: '오다', source: '오는구나', rule: 'v', reasons: ['-는구나']},
127 {term: '오다', source: '옴', rule: 'v', reasons: ['-(으)ㅁ']},
128 {term: '오다', source: '온', rule: 'v', reasons: ['-(으)ㄴ']},
129 {term: '오다', source: '오게', rule: 'v', reasons: ['-게']},
130 {term: '오다', source: '오고', rule: 'v', reasons: ['-고']},
131 {term: '오다', source: '오면', rule: 'v', reasons: ['-(으)면']},
132 {term: '오다', source: '오니', rule: 'v', reasons: ['-(으)니']},
133 {term: '오다', source: '오십시오', rule: 'v', reasons: ['-(으)십시오']},
134 {term: '오다', source: '오세요', rule: 'v', reasons: ['-(으)세요']},
135 {term: '오다', source: '와라', rule: 'v', reasons: ['-아/어라']},
136 {term: '오다', source: '옵시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
137 {term: '오다', source: '오자', rule: 'v', reasons: ['-자']},
138 ],
139 },
140 {
141 category: 'ㅜ다',
142 valid: true,
143 tests: [
144 {term: '나누다', source: '나누다', rule: 'v', reasons: []},
145 {term: '나누다', source: '나눕니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
146 {term: '나누다', source: '나눈다', rule: 'v', reasons: ['-(느)ㄴ다']},
147 {term: '나누다', source: '나눠', rule: 'v', reasons: ['-아/어']},
148 {term: '나누다', source: '나눠요', rule: 'v', reasons: ['-아/어요']},
149 {term: '나누다', source: '나눴어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
150 {term: '나누다', source: '나눴어', rule: 'v', reasons: ['-았/었', '-아/어']},
151 {term: '나누다', source: '나눴다', rule: 'v', reasons: ['-았/었', '-다']},
152 {term: '나누다', source: '나눴습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
153 {term: '나누다', source: '나누겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
154 {term: '나누다', source: '나누겠다', rule: 'v', reasons: ['-겠', '-다']},
155 {term: '나누다', source: '나누겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
156 {term: '나누다', source: '나누겠어', rule: 'v', reasons: ['-겠', '-아/어']},
157 {term: '나누다', source: '나눕니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
158 {term: '나누다', source: '나누냐', rule: 'v', reasons: ['-(으)냐']},
159 {term: '나누다', source: '나눴냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
160 {term: '나누다', source: '나눴습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
161 {term: '나누다', source: '나누겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
162 {term: '나누다', source: '나누겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
163 {term: '나누다', source: '나누네', rule: 'v', reasons: ['-네']},
164 {term: '나누다', source: '나누는구나', rule: 'v', reasons: ['-는구나']},
165 {term: '나누다', source: '나눔', rule: 'v', reasons: ['-(으)ㅁ']},
166 {term: '나누다', source: '나눈', rule: 'v', reasons: ['-(으)ㄴ']},
167 {term: '나누다', source: '나누게', rule: 'v', reasons: ['-게']},
168 {term: '나누다', source: '나누니', rule: 'v', reasons: ['-(으)니']},
169 {term: '나누다', source: '나누면', rule: 'v', reasons: ['-(으)면']},
170 {term: '나누다', source: '나누고', rule: 'v', reasons: ['-고']},
171 {term: '나누다', source: '나누세요', rule: 'v', reasons: ['-(으)세요']},
172 {term: '나누다', source: '나눠라', rule: 'v', reasons: ['-아/어라']},
173 {term: '나누다', source: '나누십시오', rule: 'v', reasons: ['-(으)십시오']},
174 {term: '나누다', source: '나누자', rule: 'v', reasons: ['-자']},
175 {term: '나누다', source: '나눕시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
176 ],
177 },
178 {
179 category: 'ㅡ다',
180 valid: true,
181 tests: [
182 {term: '쓰다', source: '쓰다', rule: 'v', reasons: []},
183 {term: '쓰다', source: '씁니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
184 {term: '쓰다', source: '써요', rule: 'v', reasons: ['-아/어요']},
185 {term: '쓰다', source: '써', rule: 'v', reasons: ['-아/어']},
186 {term: '쓰다', source: '쓴다', rule: 'v', reasons: ['-(느)ㄴ다']},
187 {term: '쓰다', source: '썼습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
188 {term: '쓰다', source: '썼어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
189 {term: '쓰다', source: '썼어', rule: 'v', reasons: ['-았/었', '-아/어']},
190 {term: '쓰다', source: '썼다', rule: 'v', reasons: ['-았/었', '-다']},
191 {term: '쓰다', source: '쓰겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
192 {term: '쓰다', source: '쓰겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
193 {term: '쓰다', source: '쓰겠어', rule: 'v', reasons: ['-겠', '-아/어']},
194 {term: '쓰다', source: '쓰겠다', rule: 'v', reasons: ['-겠', '-다']},
195 {term: '쓰다', source: '씁니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
196 {term: '쓰다', source: '쓰냐', rule: 'v', reasons: ['-(으)냐']},
197 {term: '쓰다', source: '썼습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
198 {term: '쓰다', source: '썼을까', rule: 'v', reasons: ['-았/었', '-(으)ㄹ까']},
199 {term: '쓰다', source: '썼냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
200 {term: '쓰다', source: '쓰겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
201 {term: '쓰다', source: '쓰겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
202 {term: '쓰다', source: '쓰네', rule: 'v', reasons: ['-네']},
203 // Adjective 쓰다
204 {term: '쓰다', source: '쓰구나', rule: 'adj', reasons: ['-구나']},
205 {term: '쓰다', source: '쓰는구나', rule: 'v', reasons: ['-는구나']},
206 {term: '쓰다', source: '씀', rule: 'v', reasons: ['-(으)ㅁ']},
207 {term: '쓰다', source: '쓴', rule: 'v', reasons: ['-(으)ㄴ']},
208 {term: '쓰다', source: '쓰게', rule: 'v', reasons: ['-게']},
209 {term: '쓰다', source: '쓰고', rule: 'v', reasons: ['-고']},
210 {term: '쓰다', source: '쓰면', rule: 'v', reasons: ['-(으)면']},
211 {term: '쓰다', source: '쓰니', rule: 'v', reasons: ['-(으)니']},
212 {term: '쓰다', source: '쓰세요', rule: 'v', reasons: ['-(으)세요']},
213 {term: '쓰다', source: '써라', rule: 'v', reasons: ['-아/어라']},
214 {term: '쓰다', source: '쓰십시오', rule: 'v', reasons: ['-(으)십시오']},
215 {term: '쓰다', source: '쓰자', rule: 'v', reasons: ['-자']},
216 {term: '쓰다', source: '씁시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
217 ],
218 },
219 {
220 category: 'ㅣ다',
221 valid: true,
222 tests: [
223 {term: '기다리다', source: '기다리다', rule: 'v', reasons: []},
224 {term: '기다리다', source: '기다립니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
225 {term: '기다리다', source: '기다려요', rule: 'v', reasons: ['-아/어요']},
226 {term: '기다리다', source: '기다려', rule: 'v', reasons: ['-아/어']},
227 {term: '기다리다', source: '기다린다', rule: 'v', reasons: ['-(느)ㄴ다']},
228 {term: '기다리다', source: '기다렸습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
229 {term: '기다리다', source: '기다렸어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
230 {term: '기다리다', source: '기다렸어', rule: 'v', reasons: ['-았/었', '-아/어']},
231 {term: '기다리다', source: '기다렸다', rule: 'v', reasons: ['-았/었', '-다']},
232 {term: '기다리다', source: '기다리겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
233 {term: '기다리다', source: '기다리겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
234 {term: '기다리다', source: '기다리겠어', rule: 'v', reasons: ['-겠', '-아/어']},
235 {term: '기다리다', source: '기다리겠다', rule: 'v', reasons: ['-겠', '-다']},
236 {term: '기다리다', source: '기다립니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
237 {term: '기다리다', source: '기다리냐', rule: 'v', reasons: ['-(으)냐']},
238 {term: '기다리다', source: '기다렸습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
239 {term: '기다리다', source: '기다렸냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
240 {term: '기다리다', source: '기다리겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
241 {term: '기다리다', source: '기다리겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
242 {term: '기다리다', source: '기다리네', rule: 'v', reasons: ['-네']},
243 {term: '기다리다', source: '기다리는구나', rule: 'v', reasons: ['-는구나']},
244 {term: '기다리다', source: '기다림', rule: 'v', reasons: ['-(으)ㅁ']},
245 {term: '기다리다', source: '기다린', rule: 'v', reasons: ['-(으)ㄴ']},
246 {term: '기다리다', source: '기다리게', rule: 'v', reasons: ['-게']},
247 {term: '기다리다', source: '기다리고', rule: 'v', reasons: ['-고']},
248 {term: '기다리다', source: '기다리면', rule: 'v', reasons: ['-(으)면']},
249 {term: '기다리다', source: '기다리니', rule: 'v', reasons: ['-(으)니']},
250 {term: '기다리다', source: '기다리십시오', rule: 'v', reasons: ['-(으)십시오']},
251 {term: '기다리다', source: '기다리세요', rule: 'v', reasons: ['-(으)세요']},
252 {term: '기다리다', source: '기다려라', rule: 'v', reasons: ['-아/어라']},
253 {term: '기다리다', source: '기다립시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
254 {term: '기다리다', source: '기다리자', rule: 'v', reasons: ['-자']},
255 ],
256 },
257 {
258 category: 'ㅚ다',
259 valid: true,
260 tests: [
261 {term: '되다', source: '되다', rule: 'v', reasons: []},
262 {term: '되다', source: '됩니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
263 {term: '되다', source: '돼요', rule: 'v', reasons: ['-아/어요']},
264 {term: '되다', source: '돼', rule: 'v', reasons: ['-아/어']},
265 {term: '되다', source: '된다', rule: 'v', reasons: ['-(느)ㄴ다']},
266 {term: '되다', source: '됐습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
267 {term: '되다', source: '됐어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
268 {term: '되다', source: '됐어', rule: 'v', reasons: ['-았/었', '-아/어']},
269 {term: '되다', source: '됐다', rule: 'v', reasons: ['-았/었', '-다']},
270 {term: '되다', source: '되겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
271 {term: '되다', source: '되겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
272 {term: '되다', source: '되겠어', rule: 'v', reasons: ['-겠', '-아/어']},
273 {term: '되다', source: '되겠다', rule: 'v', reasons: ['-겠', '-다']},
274 {term: '되다', source: '됩니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
275 {term: '되다', source: '되냐', rule: 'v', reasons: ['-(으)냐']},
276 {term: '되다', source: '됐습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
277 {term: '되다', source: '됐냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
278 {term: '되다', source: '되겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
279 {term: '되다', source: '되겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
280 {term: '되다', source: '되네', rule: 'v', reasons: ['-네']},
281 {term: '되다', source: '되는구나', rule: 'v', reasons: ['-는구나']},
282 {term: '되다', source: '됨', rule: 'v', reasons: ['-(으)ㅁ']},
283 {term: '되다', source: '된', rule: 'v', reasons: ['-(으)ㄴ']},
284 {term: '되다', source: '되게', rule: 'v', reasons: ['-게']},
285 {term: '되다', source: '되고', rule: 'v', reasons: ['-고']},
286 {term: '되다', source: '되면', rule: 'v', reasons: ['-(으)면']},
287 {term: '되다', source: '되니', rule: 'v', reasons: ['-(으)니']},
288 {term: '되다', source: '되십시오', rule: 'v', reasons: ['-(으)십시오']},
289 {term: '되다', source: '되세요', rule: 'v', reasons: ['-(으)세요']},
290 {term: '되다', source: '돼라', rule: 'v', reasons: ['-아/어라']},
291 {term: '되다', source: '됩시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
292 {term: '되다', source: '되자', rule: 'v', reasons: ['-자']},
293 ],
294 },
295 {
296 category: 'ㅐ다',
297 valid: true,
298 tests: [
299 {term: '보내다', source: '보내다', rule: 'v', reasons: []},
300 {term: '보내다', source: '보냅니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
301 {term: '보내다', source: '보내요', rule: 'v', reasons: ['-아/어요']},
302 {term: '보내다', source: '보내', rule: 'v', reasons: ['어간']},
303 {term: '보내다', source: '보낸다', rule: 'v', reasons: ['-(느)ㄴ다']},
304 {term: '보내다', source: '보냈습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
305 {term: '보내다', source: '보냈어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
306 {term: '보내다', source: '보냈어', rule: 'v', reasons: ['-았/었', '-아/어']},
307 {term: '보내다', source: '보냈다', rule: 'v', reasons: ['-았/었', '-다']},
308 {term: '보내다', source: '보내겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
309 {term: '보내다', source: '보내겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
310 {term: '보내다', source: '보내겠어', rule: 'v', reasons: ['-겠', '-아/어']},
311 {term: '보내다', source: '보내겠다', rule: 'v', reasons: ['-겠', '-다']},
312 {term: '보내다', source: '보냅니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
313 {term: '보내다', source: '보내냐', rule: 'v', reasons: ['-(으)냐']},
314 {term: '보내다', source: '보냈습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
315 {term: '보내다', source: '보냈냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
316 {term: '보내다', source: '보내겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
317 {term: '보내다', source: '보내겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
318 {term: '보내다', source: '보내네', rule: 'v', reasons: ['-네']},
319 {term: '보내다', source: '보내는구나', rule: 'v', reasons: ['-는구나']},
320 {term: '보내다', source: '보냄', rule: 'v', reasons: ['-(으)ㅁ']},
321 {term: '보내다', source: '보낸', rule: 'v', reasons: ['-(으)ㄴ']},
322 {term: '보내다', source: '보내게', rule: 'v', reasons: ['-게']},
323 {term: '보내다', source: '보내고', rule: 'v', reasons: ['-고']},
324 {term: '보내다', source: '보내면', rule: 'v', reasons: ['-(으)면']},
325 {term: '보내다', source: '보내니', rule: 'v', reasons: ['-(으)니']},
326 {term: '보내다', source: '보내십시오', rule: 'v', reasons: ['-(으)십시오']},
327 {term: '보내다', source: '보내세요', rule: 'v', reasons: ['-(으)세요']},
328 {term: '보내다', source: '보내라', rule: 'v', reasons: ['-아/어라']},
329 {term: '보내다', source: '보냅시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
330 {term: '보내다', source: '보내자', rule: 'v', reasons: ['-자']},
331 ],
332 },
333 {
334 category: 'ㅕ다',
335 valid: true,
336 tests: [
337 {term: '펴다', source: '펴다', rule: 'v', reasons: []},
338 {term: '펴다', source: '폅니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
339 {term: '펴다', source: '펴요', rule: 'v', reasons: ['-아/어요']},
340 {term: '펴다', source: '펴', rule: 'v', reasons: ['어간']},
341 {term: '펴다', source: '편다', rule: 'v', reasons: ['-(느)ㄴ다']},
342 {term: '펴다', source: '폈습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
343 {term: '펴다', source: '폈어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
344 {term: '펴다', source: '폈어', rule: 'v', reasons: ['-았/었', '-아/어']},
345 {term: '펴다', source: '폈다', rule: 'v', reasons: ['-았/었', '-다']},
346 {term: '펴다', source: '펴겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
347 {term: '펴다', source: '펴겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
348 {term: '펴다', source: '펴겠어', rule: 'v', reasons: ['-겠', '-아/어']},
349 {term: '펴다', source: '펴겠다', rule: 'v', reasons: ['-겠', '-다']},
350 {term: '펴다', source: '폅니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
351 {term: '펴다', source: '펴냐', rule: 'v', reasons: ['-(으)냐']},
352 {term: '펴다', source: '폈습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
353 {term: '펴다', source: '폈냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
354 {term: '펴다', source: '펴겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
355 {term: '펴다', source: '펴겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
356 {term: '펴다', source: '펴네', rule: 'v', reasons: ['-네']},
357 {term: '펴다', source: '펴는구나', rule: 'v', reasons: ['-는구나']},
358 {term: '펴다', source: '폄', rule: 'v', reasons: ['-(으)ㅁ']},
359 {term: '펴다', source: '편', rule: 'v', reasons: ['-(으)ㄴ']},
360 {term: '펴다', source: '펴게', rule: 'v', reasons: ['-게']},
361 {term: '펴다', source: '펴고', rule: 'v', reasons: ['-고']},
362 {term: '펴다', source: '펴면', rule: 'v', reasons: ['-(으)면']},
363 {term: '펴다', source: '펴니', rule: 'v', reasons: ['-(으)니']},
364 {term: '펴다', source: '펴십시오', rule: 'v', reasons: ['-(으)십시오']},
365 {term: '펴다', source: '펴세요', rule: 'v', reasons: ['-(으)세요']},
366 {term: '펴다', source: '펴라', rule: 'v', reasons: ['-아/어라']},
367 {term: '펴다', source: '폅시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
368 {term: '펴다', source: '펴자', rule: 'v', reasons: ['-자']},
369 ],
370 },
371 {
372 category: 'ㅏ + consonant + 다',
373 valid: true,
374 tests: [
375 {term: '받다', source: '받다', rule: 'v', reasons: []},
376 {term: '받다', source: '받습니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
377 {term: '받다', source: '받아요', rule: 'v', reasons: ['-아/어요']},
378 {term: '받다', source: '받아', rule: 'v', reasons: ['-아/어']},
379 {term: '받다', source: '받는다', rule: 'v', reasons: ['-(느)ㄴ다']},
380 {term: '받다', source: '받았습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
381 {term: '받다', source: '받았어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
382 {term: '받다', source: '받았어', rule: 'v', reasons: ['-았/었', '-아/어']},
383 {term: '받다', source: '받았다', rule: 'v', reasons: ['-았/었', '-다']},
384 {term: '받다', source: '받겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
385 {term: '받다', source: '받겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
386 {term: '받다', source: '받겠어', rule: 'v', reasons: ['-겠', '-아/어']},
387 {term: '받다', source: '받겠다', rule: 'v', reasons: ['-겠', '-다']},
388 {term: '받다', source: '받습니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
389 {term: '받다', source: '받냐', rule: 'v', reasons: ['-(으)냐']},
390 {term: '받다', source: '받았습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
391 {term: '받다', source: '받았냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
392 {term: '받다', source: '받겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
393 {term: '받다', source: '받겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
394 {term: '받다', source: '받네', rule: 'v', reasons: ['-네']},
395 {term: '받다', source: '받는구나', rule: 'v', reasons: ['-는구나']},
396 {term: '받다', source: '받음', rule: 'v', reasons: ['-(으)ㅁ']},
397 {term: '받다', source: '받은', rule: 'v', reasons: ['-(으)ㄴ']},
398 {term: '받다', source: '받게', rule: 'v', reasons: ['-게']},
399 {term: '받다', source: '받고', rule: 'v', reasons: ['-고']},
400 {term: '받다', source: '받으면', rule: 'v', reasons: ['-(으)면']},
401 {term: '받다', source: '받으니', rule: 'v', reasons: ['-(으)니']},
402 {term: '받다', source: '받으십시오', rule: 'v', reasons: ['-(으)십시오']},
403 {term: '받다', source: '받으세요', rule: 'v', reasons: ['-(으)세요']},
404 {term: '받다', source: '받아라', rule: 'v', reasons: ['-아/어라']},
405 {term: '받다', source: '받읍시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
406 {term: '받다', source: '받자', rule: 'v', reasons: ['-자']},
407 ],
408 },
409 {
410 category: 'ㅗ + consonant + 다',
411 valid: true,
412 tests: [
413 {term: '좋다', source: '좋다', rule: 'adj', reasons: []},
414 {term: '좋다', source: '좋습니다', rule: 'adj', reasons: ['-(스)ㅂ니다']},
415 {term: '좋다', source: '좋아요', rule: 'adj', reasons: ['-아/어요']},
416 {term: '좋다', source: '좋아', rule: 'adj', reasons: ['-아/어']},
417 {term: '좋다', source: '좋았습니다', rule: 'adj', reasons: ['-았/었', '-(스)ㅂ니다']},
418 {term: '좋다', source: '좋았어요', rule: 'adj', reasons: ['-았/었', '-아/어요']},
419 {term: '좋다', source: '좋았어', rule: 'adj', reasons: ['-았/었', '-아/어']},
420 {term: '좋다', source: '좋았다', rule: 'adj', reasons: ['-았/었', '-다']},
421 {term: '좋다', source: '좋겠습니다', rule: 'adj', reasons: ['-겠', '-(스)ㅂ니다']},
422 {term: '좋다', source: '좋겠어요', rule: 'adj', reasons: ['-겠', '-아/어요']},
423 {term: '좋다', source: '좋겠어', rule: 'adj', reasons: ['-겠', '-아/어']},
424 {term: '좋다', source: '좋겠다', rule: 'adj', reasons: ['-겠', '-다']},
425 {term: '좋다', source: '좋습니까', rule: 'adj', reasons: ['-(스)ㅂ니까']},
426 {term: '좋다', source: '좋냐', rule: 'adj', reasons: ['-(으)냐']},
427 {term: '좋다', source: '좋았습니까', rule: 'adj', reasons: ['-았/었', '-(스)ㅂ니까']},
428 {term: '좋다', source: '좋았을까', rule: 'adj', reasons: ['-았/었', '-(으)ㄹ까']},
429 {term: '좋다', source: '좋았냐', rule: 'adj', reasons: ['-았/었', '-(으)냐']},
430 {term: '좋다', source: '좋겠습니까', rule: 'adj', reasons: ['-겠', '-(스)ㅂ니까']},
431 {term: '좋다', source: '좋겠냐', rule: 'adj', reasons: ['-겠', '-(으)냐']},
432 {term: '좋다', source: '좋네', rule: 'adj', reasons: ['-네']},
433 {term: '좋다', source: '좋구나', rule: 'adj', reasons: ['-구나']},
434 {term: '좋다', source: '좋음', rule: 'adj', reasons: ['-(으)ㅁ']},
435 {term: '좋다', source: '좋은', rule: 'adj', reasons: ['-(으)ㄴ']},
436 {term: '좋다', source: '좋게', rule: 'adj', reasons: ['-게']},
437 {term: '좋다', source: '좋고', rule: 'adj', reasons: ['-고']},
438 {term: '좋다', source: '좋으면', rule: 'adj', reasons: ['-(으)면']},
439 {term: '좋다', source: '좋으니', rule: 'adj', reasons: ['-(으)니']},
440 ],
441 },
442 {
443 category: 'other vowel + consonant + 다',
444 valid: true,
445 tests: [
446 {term: '먹다', source: '먹다', rule: 'v', reasons: []},
447 {term: '먹다', source: '먹습니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
448 {term: '먹다', source: '먹어요', rule: 'v', reasons: ['-아/어요']},
449 {term: '먹다', source: '먹어', rule: 'v', reasons: ['-아/어']},
450 {term: '먹다', source: '먹는다', rule: 'v', reasons: ['-(느)ㄴ다']},
451 {term: '먹다', source: '먹었습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
452 {term: '먹다', source: '먹었어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
453 {term: '먹다', source: '먹었어', rule: 'v', reasons: ['-았/었', '-아/어']},
454 {term: '먹다', source: '먹었다', rule: 'v', reasons: ['-았/었', '-다']},
455 {term: '먹다', source: '먹겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
456 {term: '먹다', source: '먹겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
457 {term: '먹다', source: '먹겠어', rule: 'v', reasons: ['-겠', '-아/어']},
458 {term: '먹다', source: '먹겠다', rule: 'v', reasons: ['-겠', '-다']},
459 {term: '먹다', source: '먹습니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
460 {term: '먹다', source: '먹냐', rule: 'v', reasons: ['-(으)냐']},
461 {term: '먹다', source: '먹었습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
462 {term: '먹다', source: '먹었냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
463 {term: '먹다', source: '먹겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
464 {term: '먹다', source: '먹겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
465 {term: '먹다', source: '먹네', rule: 'v', reasons: ['-네']},
466 {term: '먹다', source: '먹는구나', rule: 'v', reasons: ['-는구나']},
467 {term: '먹다', source: '먹음', rule: 'v', reasons: ['-(으)ㅁ']},
468 {term: '먹다', source: '먹은', rule: 'v', reasons: ['-(으)ㄴ']},
469 {term: '먹다', source: '먹게', rule: 'v', reasons: ['-게']},
470 {term: '먹다', source: '먹고', rule: 'v', reasons: ['-고']},
471 {term: '먹다', source: '먹으면', rule: 'v', reasons: ['-(으)면']},
472 {term: '먹다', source: '먹으니', rule: 'v', reasons: ['-(으)니']},
473 {term: '먹다', source: '먹으십시오', rule: 'v', reasons: ['-(으)십시오']},
474 {term: '먹다', source: '먹으세요', rule: 'v', reasons: ['-(으)세요']},
475 {term: '먹다', source: '먹어라', rule: 'v', reasons: ['-아/어라']},
476 {term: '먹다', source: '먹읍시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
477 {term: '먹다', source: '먹자', rule: 'v', reasons: ['-자']},
478 ],
479 },
480 {
481 category: '하다',
482 valid: true,
483 tests: [
484 {term: '하다', source: '하다', rule: 'v', reasons: []},
485 {term: '하다', source: '합니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
486 {term: '하다', source: '해요', rule: 'v', reasons: ['-아/어요']},
487 {term: '하다', source: '해', rule: 'v', reasons: ['-아/어']},
488 {term: '하다', source: '한다', rule: 'v', reasons: ['-(느)ㄴ다']},
489 {term: '하다', source: '했습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
490 {term: '하다', source: '했어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
491 {term: '하다', source: '했어', rule: 'v', reasons: ['-았/었', '-아/어']},
492 {term: '하다', source: '했다', rule: 'v', reasons: ['-았/었', '-다']},
493 {term: '하다', source: '하겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
494 {term: '하다', source: '하겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
495 {term: '하다', source: '하겠어', rule: 'v', reasons: ['-겠', '-아/어']},
496 {term: '하다', source: '하겠다', rule: 'v', reasons: ['-겠', '-다']},
497 {term: '하다', source: '합니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
498 {term: '하다', source: '하냐', rule: 'v', reasons: ['-(으)냐']},
499 {term: '하다', source: '했습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
500 {term: '하다', source: '했냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
501 {term: '하다', source: '하겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
502 {term: '하다', source: '하겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
503 {term: '하다', source: '하네', rule: 'v', reasons: ['-네']},
504 {term: '하다', source: '하는구나', rule: 'v', reasons: ['-는구나']},
505 {term: '하다', source: '함', rule: 'v', reasons: ['-(으)ㅁ']},
506 {term: '하다', source: '한', rule: 'v', reasons: ['-(으)ㄴ']},
507 {term: '하다', source: '하게', rule: 'v', reasons: ['-게']},
508 {term: '하다', source: '하고', rule: 'v', reasons: ['-고']},
509 {term: '하다', source: '하면', rule: 'v', reasons: ['-(으)면']},
510 {term: '하다', source: '하니', rule: 'v', reasons: ['-(으)니']},
511 {term: '하다', source: '하십시오', rule: 'v', reasons: ['-(으)십시오']},
512 {term: '하다', source: '하세요', rule: 'v', reasons: ['-(으)세요']},
513 {term: '하다', source: '해라', rule: 'v', reasons: ['-아/어라']},
514 {term: '하다', source: '합시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
515 {term: '하다', source: '하자', rule: 'v', reasons: ['-자']},
516
517 {term: '공부하다', source: '공부하다', rule: 'v', reasons: []},
518 {term: '공부하다', source: '공부합니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
519 {term: '공부하다', source: '공부해요', rule: 'v', reasons: ['-아/어요']},
520 {term: '공부하다', source: '공부해', rule: 'v', reasons: ['-아/어']},
521 {term: '공부하다', source: '공부한다', rule: 'v', reasons: ['-(느)ㄴ다']},
522 {term: '공부하다', source: '공부했습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
523 {term: '공부하다', source: '공부했어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
524 {term: '공부하다', source: '공부했어', rule: 'v', reasons: ['-았/었', '-아/어']},
525 {term: '공부하다', source: '공부했다', rule: 'v', reasons: ['-았/었', '-다']},
526 {term: '공부하다', source: '공부하겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
527 {term: '공부하다', source: '공부하겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
528 {term: '공부하다', source: '공부하겠어', rule: 'v', reasons: ['-겠', '-아/어']},
529 {term: '공부하다', source: '공부하겠다', rule: 'v', reasons: ['-겠', '-다']},
530 {term: '공부하다', source: '공부합니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
531 {term: '공부하다', source: '공부하냐', rule: 'v', reasons: ['-(으)냐']},
532 {term: '공부하다', source: '공부했습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
533 {term: '공부하다', source: '공부했냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
534 {term: '공부하다', source: '공부하겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
535 {term: '공부하다', source: '공부하겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
536 {term: '공부하다', source: '공부하네', rule: 'v', reasons: ['-네']},
537 {term: '공부하다', source: '공부하는구나', rule: 'v', reasons: ['-는구나']},
538 {term: '공부하다', source: '공부함', rule: 'v', reasons: ['-(으)ㅁ']},
539 {term: '공부하다', source: '공부한', rule: 'v', reasons: ['-(으)ㄴ']},
540 {term: '공부하다', source: '공부하게', rule: 'v', reasons: ['-게']},
541 {term: '공부하다', source: '공부하고', rule: 'v', reasons: ['-고']},
542 {term: '공부하다', source: '공부하면', rule: 'v', reasons: ['-(으)면']},
543 {term: '공부하다', source: '공부하니', rule: 'v', reasons: ['-(으)니']},
544 {term: '공부하다', source: '공부하십시오', rule: 'v', reasons: ['-(으)십시오']},
545 {term: '공부하다', source: '공부하세요', rule: 'v', reasons: ['-(으)세요']},
546 {term: '공부하다', source: '공부해라', rule: 'v', reasons: ['-아/어라']},
547 {term: '공부하다', source: '공부합시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
548 {term: '공부하다', source: '공부하자', rule: 'v', reasons: ['-자']},
549 ],
550 },
551 {
552 category: 'ㅅ다 irregular',
553 valid: true,
554 tests: [
555 {term: '짓다', source: '짓다', rule: 'v', reasons: []},
556 {term: '짓다', source: '짓습니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
557 {term: '짓다', source: '지어요', rule: 'v', reasons: ['-아/어요']},
558 {term: '짓다', source: '지어', rule: 'v', reasons: ['-아/어']},
559 {term: '짓다', source: '짓는다', rule: 'v', reasons: ['-(느)ㄴ다']},
560 {term: '짓다', source: '지었습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
561 {term: '짓다', source: '지었어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
562 {term: '짓다', source: '지었어', rule: 'v', reasons: ['-았/었', '-아/어']},
563 {term: '짓다', source: '지었다', rule: 'v', reasons: ['-았/었', '-다']},
564 {term: '짓다', source: '짓겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
565 {term: '짓다', source: '짓겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
566 {term: '짓다', source: '짓겠어', rule: 'v', reasons: ['-겠', '-아/어']},
567 {term: '짓다', source: '짓겠다', rule: 'v', reasons: ['-겠', '-다']},
568 {term: '짓다', source: '짓습니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
569 {term: '짓다', source: '짓냐', rule: 'v', reasons: ['-(으)냐']},
570 {term: '짓다', source: '지었습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
571 {term: '짓다', source: '지었냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
572 {term: '짓다', source: '짓겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
573 {term: '짓다', source: '짓겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
574 {term: '짓다', source: '짓네', rule: 'v', reasons: ['-네']},
575 {term: '짓다', source: '짓는구나', rule: 'v', reasons: ['-는구나']},
576 {term: '짓다', source: '지음', rule: 'v', reasons: ['-(으)ㅁ']},
577 {term: '짓다', source: '지은', rule: 'v', reasons: ['-(으)ㄴ']},
578 {term: '짓다', source: '짓게', rule: 'v', reasons: ['-게']},
579 {term: '짓다', source: '짓고', rule: 'v', reasons: ['-고']},
580 {term: '짓다', source: '지으면', rule: 'v', reasons: ['-(으)면']},
581 {term: '짓다', source: '지으니', rule: 'v', reasons: ['-(으)니']},
582 {term: '짓다', source: '지으십시오', rule: 'v', reasons: ['-(으)십시오']},
583 {term: '짓다', source: '지으세요', rule: 'v', reasons: ['-(으)세요']},
584 {term: '짓다', source: '지어라', rule: 'v', reasons: ['-아/어라']},
585 {term: '짓다', source: '지읍시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
586 {term: '짓다', source: '짓자', rule: 'v', reasons: ['-자']},
587 ],
588 },
589 {
590 category: 'ㄷ다 irregular',
591 valid: true,
592 tests: [
593 {term: '걷다', source: '걷다', rule: 'v', reasons: []},
594 {term: '걷다', source: '걷습니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
595 {term: '걷다', source: '걸어', rule: 'v', reasons: ['-아/어']},
596 {term: '걷다', source: '걸어요', rule: 'v', reasons: ['-아/어요']},
597 {term: '걷다', source: '걷는다', rule: 'v', reasons: ['-(느)ㄴ다']},
598 {term: '걷다', source: '걸었다', rule: 'v', reasons: ['-았/었', '-다']},
599 {term: '걷다', source: '걸었습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
600 {term: '걷다', source: '걸었어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
601 {term: '걷다', source: '걸었어', rule: 'v', reasons: ['-았/었', '-아/어']},
602 {term: '걷다', source: '걷겠어', rule: 'v', reasons: ['-겠', '-아/어']},
603 {term: '걷다', source: '걷겠다', rule: 'v', reasons: ['-겠', '-다']},
604 {term: '걷다', source: '걷겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
605 {term: '걷다', source: '걷겠어', rule: 'v', reasons: ['-겠', '-아/어']},
606 {term: '걷다', source: '걷겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
607 {term: '걷다', source: '걷습니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
608 {term: '걷다', source: '걷냐', rule: 'v', reasons: ['-(으)냐']},
609 {term: '걷다', source: '걸었냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
610 {term: '걷다', source: '걸었습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
611 {term: '걷다', source: '걷겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
612 {term: '걷다', source: '걷겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
613 {term: '걷다', source: '걷네', rule: 'v', reasons: ['-네']},
614 {term: '걷다', source: '걷는구나', rule: 'v', reasons: ['-는구나']},
615 {term: '걷다', source: '걸음', rule: 'v', reasons: ['-(으)ㅁ']},
616 {term: '걷다', source: '걸은', rule: 'v', reasons: ['-(으)ㄴ']},
617 {term: '걷다', source: '걷게', rule: 'v', reasons: ['-게']},
618 {term: '걷다', source: '걷고', rule: 'v', reasons: ['-고']},
619 {term: '걷다', source: '걸으니', rule: 'v', reasons: ['-(으)니']},
620 {term: '걷다', source: '걸으면', rule: 'v', reasons: ['-(으)면']},
621 {term: '걷다', source: '걸으세요', rule: 'v', reasons: ['-(으)세요']},
622 {term: '걷다', source: '걸어라', rule: 'v', reasons: ['-아/어라']},
623 {term: '걷다', source: '걸으십시오', rule: 'v', reasons: ['-(으)십시오']},
624 {term: '걷다', source: '걷자', rule: 'v', reasons: ['-자']},
625 {term: '걷다', source: '걸읍시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
626 ],
627 },
628 {
629 category: 'ㅂ다 irregular',
630 valid: true,
631 tests: [
632 {term: '아름답다', source: '아름답다', rule: 'adj', reasons: []},
633 {term: '아름답다', source: '아름답습니다', rule: 'adj', reasons: ['-(스)ㅂ니다']},
634 {term: '아름답다', source: '아름다워요', rule: 'adj', reasons: ['-아/어요']},
635 {term: '아름답다', source: '아름다워', rule: 'adj', reasons: ['-아/어']},
636 {term: '아름답다', source: '아름다웠습니다', rule: 'adj', reasons: ['-았/었', '-(스)ㅂ니다']},
637 {term: '아름답다', source: '아름다웠어요', rule: 'adj', reasons: ['-았/었', '-아/어요']},
638 {term: '아름답다', source: '아름다웠어', rule: 'adj', reasons: ['-았/었', '-아/어']},
639 {term: '아름답다', source: '아름다웠다', rule: 'adj', reasons: ['-았/었', '-다']},
640 {term: '아름답다', source: '아름답겠습니다', rule: 'adj', reasons: ['-겠', '-(스)ㅂ니다']},
641 {term: '아름답다', source: '아름답겠어요', rule: 'adj', reasons: ['-겠', '-아/어요']},
642 {term: '아름답다', source: '아름답겠어', rule: 'adj', reasons: ['-겠', '-아/어']},
643 {term: '아름답다', source: '아름답겠다', rule: 'adj', reasons: ['-겠', '-다']},
644 {term: '아름답다', source: '아름답습니까', rule: 'adj', reasons: ['-(스)ㅂ니까']},
645 {term: '아름답다', source: '아름답냐', rule: 'adj', reasons: ['-(으)냐']},
646 {term: '아름답다', source: '아름다웠습니까', rule: 'adj', reasons: ['-았/었', '-(스)ㅂ니까']},
647 {term: '아름답다', source: '아름다웠을까', rule: 'adj', reasons: ['-았/었', '-(으)ㄹ까']},
648 {term: '아름답다', source: '아름다웠냐', rule: 'adj', reasons: ['-았/었', '-(으)냐']},
649 {term: '아름답다', source: '아름답겠습니까', rule: 'adj', reasons: ['-겠', '-(스)ㅂ니까']},
650 {term: '아름답다', source: '아름답겠냐', rule: 'adj', reasons: ['-겠', '-(으)냐']},
651 {term: '아름답다', source: '아름답네', rule: 'adj', reasons: ['-네']},
652 {term: '아름답다', source: '아름답구나', rule: 'adj', reasons: ['-구나']},
653 {term: '아름답다', source: '아름다움', rule: 'adj', reasons: ['-(으)ㅁ']},
654 {term: '아름답다', source: '아름다운', rule: 'adj', reasons: ['-(으)ㄴ']},
655 {term: '아름답다', source: '아름답게', rule: 'adj', reasons: ['-게']},
656 {term: '아름답다', source: '아름답고', rule: 'adj', reasons: ['-고']},
657 {term: '아름답다', source: '아름다우면', rule: 'adj', reasons: ['-(으)면']},
658 {term: '아름답다', source: '아름다우니', rule: 'adj', reasons: ['-(으)니']},
659
660 {term: '돕다', source: '돕다', rule: 'v', reasons: []},
661 {term: '돕다', source: '돕습니다', rule: 'v', reasons: ['-(스)ㅂ니다']},
662 {term: '돕다', source: '도와요', rule: 'v', reasons: ['-아/어요']},
663 {term: '돕다', source: '도와', rule: 'v', reasons: ['-아/어']},
664 {term: '돕다', source: '도왔습니다', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니다']},
665 {term: '돕다', source: '도왔어요', rule: 'v', reasons: ['-았/었', '-아/어요']},
666 {term: '돕다', source: '도왔어', rule: 'v', reasons: ['-았/었', '-아/어']},
667 {term: '돕다', source: '도왔다', rule: 'v', reasons: ['-았/었', '-다']},
668 {term: '돕다', source: '돕겠습니다', rule: 'v', reasons: ['-겠', '-(스)ㅂ니다']},
669 {term: '돕다', source: '돕겠어요', rule: 'v', reasons: ['-겠', '-아/어요']},
670 {term: '돕다', source: '돕겠어', rule: 'v', reasons: ['-겠', '-아/어']},
671 {term: '돕다', source: '돕겠다', rule: 'v', reasons: ['-겠', '-다']},
672 {term: '돕다', source: '돕습니까', rule: 'v', reasons: ['-(스)ㅂ니까']},
673 {term: '돕다', source: '돕냐', rule: 'v', reasons: ['-(으)냐']},
674 {term: '돕다', source: '도왔습니까', rule: 'v', reasons: ['-았/었', '-(스)ㅂ니까']},
675 {term: '돕다', source: '도왔냐', rule: 'v', reasons: ['-았/었', '-(으)냐']},
676 {term: '돕다', source: '돕겠습니까', rule: 'v', reasons: ['-겠', '-(스)ㅂ니까']},
677 {term: '돕다', source: '돕겠냐', rule: 'v', reasons: ['-겠', '-(으)냐']},
678 {term: '돕다', source: '돕네', rule: 'v', reasons: ['-네']},
679 {term: '돕다', source: '돕는구나', rule: 'v', reasons: ['-는구나']},
680 {term: '돕다', source: '도움', rule: 'v', reasons: ['-(으)ㅁ']},
681 {term: '돕다', source: '도운', rule: 'v', reasons: ['-(으)ㄴ']},
682 {term: '돕다', source: '돕게', rule: 'v', reasons: ['-게']},
683 {term: '돕다', source: '돕고', rule: 'v', reasons: ['-고']},
684 {term: '돕다', source: '도우면', rule: 'v', reasons: ['-(으)면']},
685 {term: '돕다', source: '도우니', rule: 'v', reasons: ['-(으)니']},
686 {term: '돕다', source: '도우십시오', rule: 'v', reasons: ['-(으)십시오']},
687 {term: '돕다', source: '도우세요', rule: 'v', reasons: ['-(으)세요']},
688 {term: '돕다', source: '도와라', rule: 'v', reasons: ['-아/어라']},
689 {term: '돕다', source: '도웁시다', rule: 'v', reasons: ['-(으)ㅂ시다']},
690 {term: '돕다', source: '돕자', rule: 'v', reasons: ['-자']},
691 ],
692 },
693 {
694 category: '이다',
695 valid: true,
696 tests: [
697 {term: '이다', source: '이어서', rule: 'ida', reasons: ['-아/어서']},
698 {term: '이다', source: '이어야', rule: 'ida', reasons: ['-아/어야']},
699 {term: '이다', source: '이어야겠', rule: 'ida', reasons: ['-아/어야겠']},
700 {term: '이다', source: '이어야만', rule: 'ida', reasons: ['-아/어야만']},
701 {term: '이다', source: '이어야지', rule: 'ida', reasons: ['-아/어야지']},
702 {term: '이다', source: '이어요', rule: 'ida', reasons: ['-아/어요']},
703 {term: '이다', source: '이어', rule: 'ida', reasons: ['-아/어']},
704 {term: '이다', source: '이어다', rule: 'ida', reasons: ['-아/어다']},
705 {term: '이다', source: '이어다가', rule: 'ida', reasons: ['-아/어다가']},
706 {term: '이다', source: '이어도', rule: 'ida', reasons: ['-아/어도']},
707 {term: '이다', source: '이어라', rule: 'ida', reasons: ['-아/어라']},
708 {term: '이다', source: '이어지이다', rule: 'ida', reasons: ['-아/어지이다']},
709 {term: '이다', source: '이었었', rule: 'ida', reasons: ['-았/었었']},
710 {term: '이다', source: '이었자', rule: 'ida', reasons: ['-았/었자']},
711
712 {term: '이다', source: '여서', rule: 'ida', reasons: ['-아/어서']},
713 {term: '이다', source: '여야', rule: 'ida', reasons: ['-아/어야']},
714 {term: '이다', source: '여야겠', rule: 'ida', reasons: ['-아/어야겠']},
715 {term: '이다', source: '여야만', rule: 'ida', reasons: ['-아/어야만']},
716 {term: '이다', source: '여야지', rule: 'ida', reasons: ['-아/어야지']},
717 {term: '이다', source: '여요', rule: 'ida', reasons: ['-아/어요']},
718 {term: '이다', source: '여', rule: 'ida', reasons: ['-아/어']},
719 {term: '이다', source: '여다', rule: 'ida', reasons: ['-아/어다']},
720 {term: '이다', source: '여다가', rule: 'ida', reasons: ['-아/어다가']},
721 {term: '이다', source: '여도', rule: 'ida', reasons: ['-아/어도']},
722 {term: '이다', source: '여라', rule: 'ida', reasons: ['-아/어라']},
723 {term: '이다', source: '여지이다', rule: 'ida', reasons: ['-아/어지이다']},
724 {term: '이다', source: '였었', rule: 'ida', reasons: ['-았/었었']},
725 {term: '이다', source: '였자', rule: 'ida', reasons: ['-았/었자']},
726
727 {term: '이다', source: '이야', rule: 'ida', reasons: ['-야']},
728 {term: '이다', source: '일거나', rule: 'ida', reasons: ['-(으)ㄹ거나']},
729 {term: '이다', source: '일 거야', rule: 'ida', reasons: ['-(으)ㄹ 거야']},
730 {term: '이다', source: '일 거예요', rule: 'ida', reasons: ['-(으)ㄹ 거예요']},
731 {term: '이다', source: '일 것이다', rule: 'ida', reasons: ['-(으)ㄹ 것이다']},
732 {term: '이다', source: '일 것입니다', rule: 'ida', reasons: ['-(으)ㄹ 것입니다']},
733 {term: '이다', source: '일 거다', rule: 'ida', reasons: ['-(으)ㄹ 거다']},
734 {term: '이다', source: '일 겁니다', rule: 'ida', reasons: ['-(으)ㄹ 겁니다']},
735 {term: '이다', source: '일께', rule: 'ida', reasons: ['-(으)ㄹ께']},
736 {term: '이다', source: '이나', rule: 'ida', reasons: ['-(으)나']},
737 {term: '이다', source: '인', rule: 'ida', reasons: ['-(으)ㄴ']},
738 {term: '이다', source: '예요', rule: 'ida', reasons: ['-아/어요']},
739 ],
740 },
741 {
742 category: 'invalid deinflections',
743 valid: false,
744 tests: [
745 {term: '보다', source: '보십시다', rule: 'v', reasons: ['-(으)시', '-(으)ㅂ시다']},
746
747 // ida
748 {term: '이다', source: '이서', rule: 'ida', reasons: ['아/어서']},
749 {term: '이다', source: '이야', rule: 'ida', reasons: ['아/어야']},
750 {term: '이다', source: '이야겠', rule: 'ida', reasons: ['아/어야겠']},
751 {term: '이다', source: '이야만', rule: 'ida', reasons: ['아/어야만']},
752 {term: '이다', source: '이야지', rule: 'ida', reasons: ['아/어야지']},
753 {term: '이다', source: '이요', rule: 'ida', reasons: ['아/어요']},
754 {term: '이다', source: '이는', rule: 'ida', reasons: ['-는']},
755 ],
756 },
757];
758/* eslint-enable @stylistic/no-multi-spaces */
759
760// Preprocessing
761/**
762 * @param {string} str
763 * @returns {string}
764 */
765function disassemble(str) {
766 return Hangul.disassemble(str, false).join('');
767}
768
769const languageTransformer = new LanguageTransformer();
770languageTransformer.addDescriptor(koreanTransforms);
771testLanguageTransformer(languageTransformer, tests, disassemble);