|
153 | 153 | "句読点を変更できる。" |
154 | 154 | (should-not (tctest-cmp "[IMON] 。、 [KUTEN_A] 。、 [KUTEN_J] 。、" |
155 | 155 | :expect "。、. , 。、<!>"))) |
| 156 | + |
| 157 | +(ert-deftest tctest-katakana-in-prefix-maze () |
| 158 | + "前置交ぜ書き変換中にカタカナモードに変更できる。" |
| 159 | + :tags '(:prefix) |
| 160 | + (should-not (tctest-cmp "[IMON] あ [PREMAZE] # え # SPC い" |
| 161 | + :expect "あヱい<!>" |
| 162 | + :setup-fun #'tctest-bind-katakana))) |
| 163 | + |
| 164 | +(ert-deftest tctest-katakana-in-prefix-bushu () |
| 165 | + "前置部首変換中にカタカナモードに変更できる。" |
| 166 | + :tags '(:prefix) |
| 167 | + (should-not (tctest-cmp "[IMON] あ [PREBUSHU] # い # い" |
| 168 | + :expect "あ似<!>" |
| 169 | + :setup-fun #'tctest-bind-katakana))) |
| 170 | + |
| 171 | +(ert-deftest tctest-kuten-in-prefix-bushu () |
| 172 | + "前置部首変換中に句点を変更できる。" |
| 173 | + :tags '(:prefix) |
| 174 | + (should-not (tctest-cmp "[IMON] [KUTEN_A] 、 [PREBUSHU] 大 [KUTEN_J] 、" |
| 175 | + :expect ", 犬<!>"))) |
| 176 | + |
156 | 177 | ;;; |
157 | 178 | ;;; *tcode-isearch-start-state |
158 | 179 | ;;; |
159 | 180 | (ert-deftest tctest-isearch-start-nil-off () |
160 | 181 | "tcode-isearch-start-state nil、IM off で isearch 開始時 IM off" |
161 | 182 | :tags '(:isearch-start) |
162 | | - (should-not (tctest-cmp "am C-s ma [MATCH]" |
163 | | - :initial "...人.ma" |
164 | | - :expect "am...人.[ma<!>]" |
| 183 | + (skip-unless tcode-use-isearch) |
| 184 | + (should-not (tctest-cmp "am C-s ma [IMON] 人 [MATCH]" |
| 185 | + :initial "...人人..ma人..人ma..mama" |
| 186 | + :expect "am...人人..[ma人<!>]..人ma..mama" |
165 | 187 | :vars '((tcode-isearch-start-state nil))))) |
166 | 188 |
|
167 | 189 | (ert-deftest tctest-isearch-start-nil-on () |
168 | 190 | "tcode-isearch-start-state nil、IM on で isearch 開始時 IM on" |
169 | 191 | :tags '(:isearch-start) |
170 | 192 | (skip-unless tcode-use-isearch) |
171 | | - (should-not (tctest-cmp "[IMON] 色 C-s 人 [MATCH]" |
172 | | - :initial "...人.ma" |
173 | | - :expect "色...[人<!>].ma" |
| 193 | + (should-not (tctest-cmp "[IMON] 色 C-s 人 [IMOFF] ma [MATCH]" |
| 194 | + :initial "...人人..ma人..人ma..mama" |
| 195 | + :expect "色...人人..ma人..[人ma<!>]..mama" |
174 | 196 | :vars '((tcode-isearch-start-state nil))))) |
175 | 197 |
|
176 | 198 | (ert-deftest tctest-isearch-start-0-off () |
177 | 199 | "tcode-isearch-start-state 0、IM off で isearch 開始時 IM off" |
178 | 200 | :tags '(:isearch-start) |
179 | | - (should-not (tctest-cmp "am C-s ma [MATCH]" |
180 | | - :initial "...人.ma" |
181 | | - :expect "am...人.[ma<!>]" |
| 201 | + (skip-unless tcode-use-isearch) |
| 202 | + (should-not (tctest-cmp "am C-s ma [IMON] 人 [MATCH]" |
| 203 | + :initial "...人人..ma人..人ma..mama" |
| 204 | + :expect "am...人人..[ma人<!>]..人ma..mama" |
182 | 205 | :vars '((tcode-isearch-start-state 0))))) |
183 | 206 |
|
184 | 207 | (ert-deftest tctest-isearch-start-0-on () |
185 | 208 | "tcode-isearch-start-state 0、IM on で isearch 開始時 IM off" |
186 | 209 | :tags '(:isearch-start) |
187 | | - (should-not (tctest-cmp "[IMON] 色 C-s ma [MATCH]" |
188 | | - :initial "...人.ma" |
189 | | - :expect "色...人.[ma<!>]" |
| 210 | + ;; tc-is22 実装では、isearch 中初回の切り換えでオフのまま |
| 211 | + :expected-result (if (eq tcode-use-isearch t) :failed :passed) |
| 212 | + (skip-unless tcode-use-isearch) |
| 213 | + (should-not (tctest-cmp "[IMON] 色 C-s ma [IMON] 人 [MATCH]" |
| 214 | + :initial "...人人..ma人..人ma..mama" |
| 215 | + :expect "色...人人..[ma人<!>]..人ma..mama" |
190 | 216 | :vars '((tcode-isearch-start-state 0))))) |
191 | 217 |
|
192 | 218 | (ert-deftest tctest-isearch-start-1-off () |
193 | 219 | "tcode-isearch-start-state 1、IM off で isearch 開始時 IM on" |
194 | 220 | :tags '(:isearch-start) |
| 221 | + ;; tc-is22 実装では、isearch 中初回の切り換えでオンのまま |
| 222 | + :expected-result (if (eq tcode-use-isearch t) :failed :passed) |
195 | 223 | (skip-unless tcode-use-isearch) |
196 | | - (should-not (tctest-cmp "am C-s 人 [MATCH]" |
197 | | - :initial "...人.ma" |
198 | | - :expect "am...[人<!>].ma" |
| 224 | + (should-not (tctest-cmp "am C-s 人 [IMOFF] ma [MATCH]" |
| 225 | + :initial "...人人..ma人..人ma..mama" |
| 226 | + :expect "am...人人..ma人..[人ma<!>]..mama" |
199 | 227 | :vars '((tcode-isearch-start-state 1))))) |
200 | 228 |
|
201 | 229 | (ert-deftest tctest-isearch-start-1-on () |
202 | 230 | "tcode-isearch-start-state 1、IM on で isearch 開始時 IM on" |
203 | 231 | :tags '(:isearch-start) |
204 | 232 | (skip-unless tcode-use-isearch) |
205 | | - (should-not (tctest-cmp "[IMON] 色 C-s 人 [MATCH]" |
206 | | - :initial "...人.ma" |
207 | | - :expect "色...[人<!>].ma" |
| 233 | + (should-not (tctest-cmp "[IMON] 色 C-s 人 [IMOFF] ma [MATCH]" |
| 234 | + :initial "...人人..ma人..人ma..mama" |
| 235 | + :expect "色...人人..ma人..[人ma<!>]..mama" |
208 | 236 | :vars '((tcode-isearch-start-state 1))))) |
209 | 237 |
|
210 | 238 | ;;; |
|
306 | 334 | :initial "...歌手 か手" |
307 | 335 | :expect "...[歌手<!>] か手"))) |
308 | 336 |
|
| 337 | +(ert-deftest tctest-delete-postfix-maze-in-isearch () |
| 338 | + "isearch 中の後置交ぜ書き変換結果を1文字だけ削除できる。" |
| 339 | + :tags '(:postfix) |
| 340 | + ;; 非 :im 実装では変換後も minibuffer にいるので問題にならない。 |
| 341 | + (skip-unless (eq tcode-use-isearch :im)) |
| 342 | + (should-not (tctest-cmp "[IMON] C-s ななめ [POSTMAZE] RET DEL 陽 [MATCH]" |
| 343 | + :initial "...斜陽...斜め" |
| 344 | + :expect "<DING>...[斜陽<!>]...斜め"))) |
| 345 | + |
| 346 | +(ert-deftest tctest-delete-prefix-maze-in-isearch () |
| 347 | + "isearch 中の後置交ぜ書き変換結果を1文字だけ削除できる。" |
| 348 | + :tags '(:postfix) |
| 349 | + ;; 非 :im 実装では変換後も minibuffer にいるので問題にならない。 |
| 350 | + (skip-unless (eq tcode-use-isearch :im)) |
| 351 | + (should-not (tctest-cmp "[IMON] C-s [PREMAZE] ななめ SPC DEL 陽 [MATCH]" |
| 352 | + :initial "...斜陽...斜め" |
| 353 | + :expect "...[斜陽<!>]...斜め"))) |
| 354 | + |
309 | 355 | ;;; |
310 | 356 | ;;; *isearch での各種入力モード |
311 | 357 | ;;; |
|
372 | 418 | :initial "...|. , . , . , |。、. , 。、|。、。、。、" |
373 | 419 | :expect "...|. , . , . , |[。、. , 。、<!>]|。、。、。、"))) |
374 | 420 |
|
| 421 | +(ert-deftest tctest-katakana-in-isearch-prefix-maze () |
| 422 | + "isearch 中の前置交ぜ書き変換中にカタカナモードに変更できる。" |
| 423 | + :tags '(:prefix) |
| 424 | + ;; 非 :im 実装では確定後、minibufferを出るための RET が必要。次テストにて。 |
| 425 | + (skip-unless (eq tcode-use-isearch :im)) |
| 426 | + (should-not (tctest-cmp "[IMON] C-s あ [PREMAZE] # え # SPC い [MATCH]" |
| 427 | + :initial "...あえい..あヱい" |
| 428 | + :expect "...あえい..[あヱい<!>]" |
| 429 | + :setup-fun #'tctest-bind-katakana))) |
| 430 | + |
| 431 | +(ert-deftest tctest-katakana-in-isearch-prefix-maze-is22 () |
| 432 | + "isearch 中の前置交ぜ書き変換中にカタカナモードに変更できる。" |
| 433 | + :tags '(:prefix) |
| 434 | + ;; 非 :im 実装では確定後、minibufferを出るための RET が必要。 |
| 435 | + (skip-unless (tctest-is-non-im-p)) |
| 436 | + (should-not (tctest-cmp "[IMON] C-s あ [PREMAZE] # え # SPC RET い [MATCH]" |
| 437 | + :initial "...あえい..あヱい" |
| 438 | + :expect "...あえい..[あヱい<!>]" |
| 439 | + :setup-fun #'tctest-bind-katakana))) |
| 440 | + |
| 441 | +(ert-deftest tctest-katakana-in-isearch-prefix-bushu () |
| 442 | + "isearch 中の前置部首変換中にカタカナモードに変更できる。" |
| 443 | + :tags '(:prefix) |
| 444 | + ;; :im でのみ実装。 |
| 445 | + :expected-result (if (eq tcode-use-isearch :im) :passed :failed) |
| 446 | + (skip-unless tcode-use-isearch) |
| 447 | + (should-not (tctest-cmp "[IMON] C-s あ [PREBUSHU] # い # い [MATCH]" |
| 448 | + :initial "...あ似" |
| 449 | + :expect "...[あ似<!>]" |
| 450 | + :setup-fun #'tctest-bind-katakana))) |
| 451 | + |
| 452 | +(ert-deftest tctest-kuten-in-isearch-prefix-bushu () |
| 453 | + "isearch 中の前置部首変換中に句点を変更できる。" |
| 454 | + :tags '(:prefix) |
| 455 | + ;; :im でのみ実装。 |
| 456 | + :expected-result (if (eq tcode-use-isearch :im) :passed :failed) |
| 457 | + (skip-unless tcode-use-isearch) |
| 458 | + (should-not (tctest-cmp |
| 459 | + "[IMON] C-s [KUTEN_A] 、 [PREBUSHU] 大 [KUTEN_J] 、 [MATCH]" |
| 460 | + :initial "..., 犬" |
| 461 | + :expect "...[, 犬<!>]"))) |
| 462 | + |
| 463 | +;;; |
| 464 | +;;; *モード表示 |
| 465 | +;;; |
| 466 | + |
| 467 | +(ert-deftest tctest-start-mode () |
| 468 | + "テスト開始のモード表示は[]。" ; 初回 C-\ するまでは空。 |
| 469 | + (should-not (tctest-cmp "[MODE]" |
| 470 | + :expect "[]<!>"))) |
| 471 | + |
| 472 | +(ert-deftest tctest-im-mode () |
| 473 | + "[IMON][IMOFF] で [TC] 表示が切り換わる。" |
| 474 | + (should-not (tctest-cmp "[IMON] [MODE] 人 [IMOFF] [MODE] ma" |
| 475 | + :expect "[TC]人[--]ma<!>"))) |
| 476 | + |
| 477 | +(ert-deftest tctest-alnum-mode () |
| 478 | + "[ALNUM_ZEN][ALNUM_HAN] で [T]表示が切り換わる。" |
| 479 | + (should-not (tctest-cmp |
| 480 | + "[IMON] [MODE] A [ALNUM_ZEN] [MODE] A [ALNUM_HAN] [MODE] A" |
| 481 | + :expect "[TC]A[T]A[TC]A<!>"))) |
| 482 | + |
| 483 | +(ert-deftest tctest-katakana-mode () |
| 484 | + "カタカナモードの表示が切り換わる。" |
| 485 | + (should-not (tctest-cmp |
| 486 | + "[IMON] [MODE] あ # [MODE] ア # [MODE] あ" |
| 487 | + :expect "[TCひ]あ[TCカ]ア[TCひ]あ<!>" |
| 488 | + :setup-fun #'tctest-bind-katakana))) |
| 489 | + |
| 490 | + |
| 491 | +;;; |
| 492 | +;;; *tcode-isearch-start-stateのモード表示 |
| 493 | +;;; |
| 494 | +(ert-deftest tctest-isearch-start-nil-off-mode () |
| 495 | + "t-i-s-s nil、IM off で isearch 開始時、モード表示 []" |
| 496 | + :tags '(:isearch-start) |
| 497 | + (should-not (tctest-cmp "[MODE] C-s [MODE] ma [MATCH]" |
| 498 | + :initial "...人.ma" |
| 499 | + :expect "[][]...人.[ma<!>]" |
| 500 | + :vars '((tcode-isearch-start-state nil))))) |
| 501 | + |
| 502 | +(ert-deftest tctest-isearch-start-nil-on-mode () |
| 503 | + "t-i-s-s nil、IM on で isearch 開始時、モード表示 [TC]" |
| 504 | + :tags '(:isearch-start) |
| 505 | + (skip-unless tcode-use-isearch) |
| 506 | + (should-not (tctest-cmp "[IMON] [MODE] C-s [MODE] 人 [MATCH]" |
| 507 | + :initial "...人.ma" |
| 508 | + :expect "[TC][TC]...[人<!>].ma" |
| 509 | + :vars '((tcode-isearch-start-state nil))))) |
| 510 | + |
| 511 | +(ert-deftest tctest-isearch-start-0-off-mode () |
| 512 | + "t-i-s-s 0、IM off で isearch 開始時、モード表示 []" |
| 513 | + :tags '(:isearch-start) |
| 514 | + (should-not (tctest-cmp "[MODE] C-s [MODE] ma [MATCH]" |
| 515 | + :initial "...人.ma" |
| 516 | + :expect "[][]...人.[ma<!>]" |
| 517 | + :vars '((tcode-isearch-start-state 0))))) |
| 518 | + |
| 519 | +(ert-deftest tctest-isearch-start-0-on-mode () |
| 520 | + "t-i-s-s 0、IM on で isearch 開始時、モード表示 [--]" |
| 521 | + :tags '(:isearch-start) |
| 522 | + :expected-result (if (eq tcode-use-isearch t) :failed :passed) |
| 523 | + (skip-unless tcode-use-isearch) |
| 524 | + (should-not (tctest-cmp "[IMON] [MODE] C-s [MODE] ma [MATCH]" |
| 525 | + :initial "...人.ma" |
| 526 | + :expect "[TC][--]...人.[ma<!>]" |
| 527 | + :vars '((tcode-isearch-start-state 0))))) |
| 528 | + |
| 529 | +(ert-deftest tctest-isearch-start-1-off-mode () |
| 530 | + "t-i-s-s 1、IM off で isearch 開始時、モード表示 [TC]" |
| 531 | + :tags '(:isearch-start) |
| 532 | + :expected-result (if (eq tcode-use-isearch t) :failed :passed) |
| 533 | + (skip-unless tcode-use-isearch) |
| 534 | + (should-not (tctest-cmp "[MODE] C-s [MODE] 人 [MATCH]" |
| 535 | + :initial "...人.ma" |
| 536 | + :expect "[][TC]...[人<!>].ma" |
| 537 | + :vars '((tcode-isearch-start-state 1))))) |
| 538 | + |
| 539 | +(ert-deftest tctest-isearch-start-1-on-mode () |
| 540 | + "t-i-s-s 1、IM on で isearch 開始時、モード表示 [TC]" |
| 541 | + :tags '(:isearch-start) |
| 542 | + (skip-unless tcode-use-isearch) |
| 543 | + (should-not (tctest-cmp "[IMON] [MODE] C-s [MODE] 人 [MATCH]" |
| 544 | + :initial "...人.ma" |
| 545 | + :expect "[TC][TC]...[人<!>].ma" |
| 546 | + :vars '((tcode-isearch-start-state 1))))) |
| 547 | + |
375 | 548 | ;;; |
376 | 549 | ;;; *wrapped search |
377 | 550 | ;;; |
|
0 commit comments