opencc-rs 0.6.0

OpenCC bindings for Rust
Documentation
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
{
  "cases": [
    {
      "id": "case_001",
      "input": "虛偽歎息",
      "expected": {
        "hk2s": "虚伪叹息"
      }
    },
    {
      "id": "case_002",
      "input": "潮濕灶台",
      "expected": {
        "hk2s": "潮湿灶台"
      }
    },
    {
      "id": "case_003",
      "input": "讚歎沙河涌洶湧的波浪",
      "expected": {
        "hk2s": "赞叹沙河涌汹涌的波浪"
      }
    },
    {
      "id": "case_004",
      "input": "為賦新詞強説愁",
      "expected": {
        "hk2t": "爲賦新詞強說愁"
      }
    },
    {
      "id": "case_005",
      "input": "想到自己一緊張就口吃,我就沒胃口吃飯",
      "expected": {
        "hk2t": "想到自己一緊張就口吃,我就沒胃口喫飯",
        "tw2t": "想到自己一緊張就口吃,我就沒胃口喫飯"
      }
    },
    {
      "id": "case_006",
      "input": "旧字体歴史仮名遣 新字体現代仮名遣",
      "expected": {
        "jp2t": "舊字體歷史假名遣 新字體現代假名遣"
      }
    },
    {
      "id": "case_007",
      "input": "横浜 糸魚川 伊予国",
      "expected": {
        "jp2t": "橫濱 絲魚川 伊豫國"
      }
    },
    {
      "id": "case_008",
      "input": "駅弁当 弁別 弁護士 弁膜",
      "expected": {
        "jp2t": "驛辨當 辨別 辯護士 瓣膜"
      }
    },
    {
      "id": "case_009",
      "input": "芸術 欠航 欠缺 飲料缶",
      "expected": {
        "jp2t": "藝術 缺航 欠缺 飲料罐"
      }
    },
    {
      "id": "case_010",
      "input": "虚伪叹息",
      "expected": {
        "s2hk": "虛偽嘆息"
      }
    },
    {
      "id": "case_011",
      "input": "潮湿灶台",
      "expected": {
        "s2hk": "潮濕灶台"
      }
    },
    {
      "id": "case_012",
      "input": "赞叹沙河涌汹涌的波浪",
      "expected": {
        "s2hk": "讚歎沙河涌洶湧的波浪"
      }
    },
    {
      "id": "case_013",
      "input": "为了核实这说法",
      "expected": {
        "s2hk": "為了核實這説法"
      }
    },
    {
      "id": "case_014",
      "input": "高剂量的苦瓜素还会抑制胚胎发育",
      "expected": {
        "s2hk": "高劑量的苦瓜素還會抑制胚胎發育",
        "s2t": "高劑量的苦瓜素還會抑制胚胎發育",
        "s2tw": "高劑量的苦瓜素還會抑制胚胎發育",
        "s2twp": "高劑量的苦瓜素還會抑制胚胎發育"
      }
    },
    {
      "id": "case_015",
      "input": "夸夸其谈 夸父逐日",
      "expected": {
        "s2t": "誇誇其談 夸父逐日"
      }
    },
    {
      "id": "case_016",
      "input": "我干什么不干你事。",
      "expected": {
        "s2t": "我幹什麼不干你事。"
      }
    },
    {
      "id": "case_017",
      "input": "太后的头发很干燥。",
      "expected": {
        "s2t": "太后的頭髮很乾燥。"
      }
    },
    {
      "id": "case_018",
      "input": "燕燕于飞,差池其羽。之子于归,远送于野。",
      "expected": {
        "s2t": "燕燕于飛,差池其羽。之子于歸,遠送於野。"
      }
    },
    {
      "id": "case_019",
      "input": "请成相,世之殃,愚暗愚暗堕贤良。人主无贤,如瞽无相何伥伥!请布基,慎圣人,愚而自专事不治。主忌苟胜,群臣莫谏必逢灾。",
      "expected": {
        "s2t": "請成相,世之殃,愚闇愚闇墮賢良。人主無賢,如瞽無相何倀倀!請布基,慎聖人,愚而自專事不治。主忌苟勝,羣臣莫諫必逢災。"
      }
    },
    {
      "id": "case_020",
      "input": "曾经有一份真诚的爱情放在我面前,我没有珍惜,等我失去的时候我才后悔莫及。人事间最痛苦的事莫过于此。如果上天能够给我一个再来一次得机会,我会对那个女孩子说三个字,我爱你。如果非要在这份爱上加个期限,我希望是,一万年。",
      "expected": {
        "s2t": "曾經有一份真誠的愛情放在我面前,我沒有珍惜,等我失去的時候我才後悔莫及。人事間最痛苦的事莫過於此。如果上天能夠給我一個再來一次得機會,我會對那個女孩子說三個字,我愛你。如果非要在這份愛上加個期限,我希望是,一萬年。"
      }
    },
    {
      "id": "case_021",
      "input": "新的理论被发现了。",
      "expected": {
        "s2t": "新的理論被發現了。"
      }
    },
    {
      "id": "case_022",
      "input": "金胄不是金色的甲胄。",
      "expected": {
        "s2t": "金胄不是金色的甲冑。"
      }
    },
    {
      "id": "case_023",
      "input": "经理发现后劝谕两人",
      "expected": {
        "s2t": "經理發現後勸諭兩人"
      }
    },
    {
      "id": "case_024",
      "input": "想到自己一紧张就口吃,我就没胃口吃饭",
      "expected": {
        "s2t": "想到自己一緊張就口吃,我就沒胃口喫飯"
      }
    },
    {
      "id": "s2t_ximian",
      "input": "细面 宽面 油泼面 臊子面 裤带面 重庆小面 肉酱面 酸菜鱼面 肥肠面 炒码面 牛腩面 牛筋面 三鲜面 番茄面 羊肉面 猪肉面 卤肉面 鲁肉面 虾球面 虾仁面 拉揸面 杂烩面 拉杂面 嗱喳面 强棒面 酱面 葱油面 油酱面 焖面 焗面 焗猪扒面 猫耳面 削筋面 浆水面 拨鱼面 刀拨面 银丝面 菠菜面 黄鱼面 大肠面 焖肉面 大排面 腰花面 咖喱面 麻辣面 酸辣面 火鸡面 锅烧面 切仔面 卤味面 炒鳝面 沾面 手工面 出前一丁面 意大利面",
      "expected": {
        "s2t": "細麪 寬麪 油潑麪 臊子麪 褲帶麪 重慶小麪 肉醬麪 酸菜魚麪 肥腸麪 炒碼麪 牛腩麪 牛筋麪 三鮮麪 番茄麪 羊肉麪 豬肉麪 滷肉麪 魯肉麪 蝦球麪 蝦仁麪 拉揸麪 雜燴麪 拉雜麪 嗱喳麪 強棒麪 醬麪 蔥油麪 油醬麪 燜麪 焗麪 焗豬扒麪 貓耳麪 削筋麪 漿水麪 撥魚麪 刀撥麪 銀絲麪 菠菜麪 黃魚麪 大腸麪 燜肉麪 大排麪 腰花麪 咖喱麪 麻辣麪 酸辣麪 火雞麪 鍋燒麪 切仔麪 滷味麪 炒鱔麪 沾麪 手工麪 出前一丁麪 意大利麪",
        "s2tw": "細麵 寬麵 油潑麵 臊子麵 褲帶麵 重慶小麵 肉醬麵 酸菜魚麵 肥腸麵 炒碼麵 牛腩麵 牛筋麵 三鮮麵 番茄麵 羊肉麵 豬肉麵 滷肉麵 魯肉麵 蝦球麵 蝦仁麵 拉揸麵 雜燴麵 拉雜麵 嗱喳麵 強棒麵 醬麵 蔥油麵 油醬麵 燜麵 焗麵 焗豬扒麵 貓耳麵 削筋麵 漿水麵 撥魚麵 刀撥麵 銀絲麵 菠菜麵 黃魚麵 大腸麵 燜肉麵 大排麵 腰花麵 咖喱麵 麻辣麵 酸辣麵 火雞麵 鍋燒麵 切仔麵 滷味麵 炒鱔麵 沾麵 手工麵 出前一丁麵 意大利麵",
        "s2twp": "細麵 寬麵 油潑麵 臊子麵 褲帶麵 重慶小麵 肉醬麵 酸菜魚麵 肥腸麵 炒碼麵 牛腩麵 牛筋麵 三鮮麵 番茄麵 羊肉麵 豬肉麵 滷肉麵 魯肉麵 蝦球麵 蝦仁麵 拉揸麵 雜燴麵 拉雜麵 嗱喳麵 強棒麵 醬麵 蔥油麵 油醬麵 燜麵 焗麵 焗豬扒麵 貓耳麵 削筋麵 漿水麵 撥魚麵 刀撥麵 銀絲麵 菠菜麵 黃魚麵 大腸麵 燜肉麵 大排麵 腰花麵 咖哩麵 麻辣麵 酸辣麵 火雞麵 鍋燒麵 切仔麵 滷味麵 炒鱔麵 沾麵 手工麵 出前一丁麵 義大利麵",
        "s2hk": "細麪 寬麪 油潑麪 臊子麪 褲帶麪 重慶小麪 肉醬麪 酸菜魚麪 肥腸麪 炒碼麪 牛腩麪 牛筋麪 三鮮麪 番茄麪 羊肉麪 豬肉麪 滷肉麪 魯肉麪 蝦球麪 蝦仁麪 拉揸麪 雜燴麪 拉雜麪 嗱喳麪 強棒麪 醬麪 葱油麪 油醬麪 燜麪 焗麪 焗豬扒麪 貓耳麪 削筋麪 漿水麪 撥魚麪 刀撥麪 銀絲麪 菠菜麪 黃魚麪 大腸麪 燜肉麪 大排麪 腰花麪 咖喱麪 麻辣麪 酸辣麪 火雞麪 鍋燒麪 切仔麪 滷味麪 炒鱔麪 沾麪 手工麪 出前一丁麪 意大利麪"
      }
    },
    {
      "id": "case_025",
      "input": "恒指最新消息,恒生指数跌破 2 万点",
      "expected": {
        "s2t": "恒指最新消息,恒生指數跌破 2 萬點"
      }
    },
    {
      "id": "case_026",
      "input": "恒生银行和恒大集团发布财报",
      "expected": {
        "s2t": "恒生銀行和恒大集團發佈財報"
      }
    },
    {
      "id": "case_027",
      "input": "着装污染虚伪发泄棱柱群众里面",
      "expected": {
        "s2tw": "著裝汙染虛偽發洩稜柱群眾裡面"
      }
    },
    {
      "id": "case_028",
      "input": "鲶鱼和鲇鱼是一种生物。",
      "expected": {
        "s2tw": "鯰魚和鯰魚是一種生物。"
      }
    },
    {
      "id": "case_029",
      "input": "鼠标里面的硅二极管坏了,导致光标分辨率降低。",
      "expected": {
        "s2twp": "滑鼠裡面的矽二極體壞了,導致游標解析度降低。"
      }
    },
    {
      "id": "case_030",
      "input": "我们在老挝的服务器的硬盘需要使用互联网算法软件解决异步的问题。",
      "expected": {
        "s2twp": "我們在寮國的伺服器的硬碟需要使用網際網路演算法軟體解決非同步的問題。"
      }
    },
    {
      "id": "case_031",
      "input": "为什么你在床里面睡着?",
      "expected": {
        "s2twp": "為什麼你在床裡面睡著?"
      }
    },
    {
      "id": "case_032",
      "input": "海内存知己",
      "expected": {
        "s2twp": "海內存知己"
      }
    },
    {
      "id": "case_033",
      "input": "摩尔线程",
      "expected": {
        "s2twp": "摩爾線程"
      }
    },
    {
      "id": "case_034",
      "input": "字节跳动",
      "expected": {
        "s2twp": "字節跳動"
      }
    },
    {
      "id": "case_035",
      "input": "潮溼的露臺",
      "expected": {
        "t2hk": "潮濕的露台"
      }
    },
    {
      "id": "case_036",
      "input": "爲了覈實這說法",
      "expected": {
        "t2hk": "為了核實這説法"
      }
    },
    {
      "id": "case_037",
      "input": "包糉子活動告一段落",
      "expected": {
        "t2hk": "包粽子活動告一段落"
      }
    },
    {
      "id": "case_038",
      "input": "舊字體歷史假名遣 新字體現代假名遣",
      "expected": {
        "t2jp": "旧字体歴史仮名遣 新字体現代仮名遣"
      }
    },
    {
      "id": "case_039",
      "input": "橫濱 絲魚川 伊豫國",
      "expected": {
        "t2jp": "横浜 糸魚川 伊予国"
      }
    },
    {
      "id": "case_040",
      "input": "驛辨當 辨別 辯護士 瓣膜",
      "expected": {
        "t2jp": "駅弁当 弁別 弁護士 弁膜"
      }
    },
    {
      "id": "case_041",
      "input": "藝術 缺航 飲料罐",
      "expected": {
        "t2jp": "芸術 欠航 飲料缶"
      }
    },
    {
      "id": "case_042",
      "input": "曾經有一份真誠的愛情放在我面前,我沒有珍惜,等我失去的時候我才後悔莫及。人事間最痛苦的事莫過於此。如果上天能夠給我一個再來一次得機會,我會對那個女孩子說三個字,我愛你。如果非要在這份愛上加個期限,我希望是,一萬年。",
      "expected": {
        "t2s": "曾经有一份真诚的爱情放在我面前,我没有珍惜,等我失去的时候我才后悔莫及。人事间最痛苦的事莫过于此。如果上天能够给我一个再来一次得机会,我会对那个女孩子说三个字,我爱你。如果非要在这份爱上加个期限,我希望是,一万年。"
      }
    },
    {
      "id": "case_044",
      "input": "著裝著作汙染虛偽發洩稜柱群眾裡面",
      "expected": {
        "tw2s": "着装著作污染虚伪发泄棱柱群众里面"
      }
    },
    {
      "id": "case_045",
      "input": "滑鼠裡面的矽二極體壞了,導致游標解析度降低。",
      "expected": {
        "tw2sp": "鼠标里面的硅二极管坏了,导致光标分辨率降低。"
      }
    },
    {
      "id": "case_046",
      "input": "我們在寮國的伺服器的硬碟需要使用網際網路演算法軟體解決非同步的問題。",
      "expected": {
        "tw2sp": "我们在老挝的服务器的硬盘需要使用互联网算法软件解决异步的问题。"
      }
    },
    {
      "id": "case_047",
      "input": "為什麼你在床裡面睡著?",
      "expected": {
        "tw2sp": "为什么你在床里面睡着?"
      }
    },
    {
      "id": "case_048",
      "input": "用滑鼠點選正規表示式",
      "expected": {
        "tw2sp": "用鼠标点击正则表达式"
      }
    },
    {
      "id": "case_049",
      "input": "KB大橋也被視為帛琉人的後花園",
      "expected": {
        "tw2sp": "KB大桥也被视为帕劳人的后花园"
      }
    },
    {
      "id": "case_050",
      "input": "這個軟體裡有一套軟體動物的資料庫",
      "expected": {
        "tw2sp": "这个软件里有一套软体动物的数据库"
      }
    },
    {
      "id": "case_051",
      "input": "為了眾人化妝床頭裡面衛生,醞釀群峰鐵鉤嘆氣事件",
      "expected": {
        "tw2t": "爲了衆人化妝牀頭裏面衛生,醞釀羣峯鐵鉤嘆氣事件"
      }
    },
    {
      "id": "case_052",
      "input": "在廚房裡做手擀麵",
      "expected": {
        "tw2t": "在廚房裏做手擀麪"
      }
    },
    {
      "id": "case_053",
      "input": "楊聯陞",
      "expected": {
        "t2s": "杨联陞"
      }
    },
    {
      "id": "case_054",
      "input": "步步高陞",
      "expected": {
        "t2s": "步步高升"
      }
    },
    {
      "id": "case_055_s2x",
      "input": "自干五 扇风 扇风耳朵 呼扇 扇火 扇火止沸 铺眉扇眼",
      "expected": {
        "s2t": "自乾五 搧風 扇風耳朵 呼搧 搧火 扇火止沸 鋪眉搧眼"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_475_s2twp",
      "input": "仙童半导体厂 人工智能借用",
      "expected": {
        "s2twp": "快捷半導體廠 人工智慧借用"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_475_tw2sp",
      "input": "畫素 畫素藉由 圖示 圖示覆蓋[sic]",
      "expected": {
        "tw2sp": "像素 画素借由 图标 图示复盖[sic]"
      }
    },
    {
      "id": "ByVoid_OpenCC_Issue714",
      "input": "寫一個解算器程式來解決方程式",
      "expected": {
        "tw2sp": "写一个解算器程序来解决方程式",
        "t2s": "写一个解算器程式来解决方程式"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1291_s2twp",
      "input": "现代无线通信技术可以通过无线信道进行高速传输,不受电缆束缚",
      "expected": {
        "s2twp": "現代無線通訊技術可以通過無線通道進行高速傳輸,不受電纜束縛"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1291_tw2sp",
      "input": "現代無線通訊技術可以透過無線通道進行高速傳輸,不受電纜束縛",
      "expected": {
        "tw2sp": "现代无线通信技术可以透过无线通道进行高速传输,不受电缆束缚"
      }
    },
    {
      "id": "ByVoid_OpenCC_Issue950_AlgorithmConversion",
      "input": "算法",
      "expected": {
        "s2t": "算法",
        "s2tw": "算法",
        "s2twp": "演算法",
        "s2hk": "算法",
        "tw2sp": "算法"
      }
    },
    {
      "id": "ByVoid_OpenCC_Issue950_AlgorithmConversionRev",
      "input": "演算法",
      "expected": {
        "s2t": "演算法",
        "s2tw": "演算法",
        "s2twp": "演算法",
        "s2hk": "演算法",
        "tw2s": "演算法",
        "tw2sp": "算法",
        "tw2t": "演算法",
        "t2s": "演算法",
        "t2hk": "演算法"
      }
    },
    {
      "id": "ByVoid_OpenCC_Issue950_AlgorithmInPhrase",
      "input": "排序算法很重要",
      "expected": {
        "s2twp": "排序演算法很重要"
      }
    },
    {
      "id": "nVidia_naming_s2t",
      "input": "英伟达",
      "expected": {
        "s2twp": "輝達",
        "s2t": "英偉達",
        "s2tw": "英偉達",
        "s2hk": "英偉達"
      }
    },
    {
      "id": "nVidia_naming_t2s",
      "input": "輝達",
      "expected": {
        "tw2sp": "英伟达",
        "t2s": "辉达",
        "tw2s": "辉达",
        "hk2s": "辉达"
      }
    },
    {
      "id": "fortune_500_company_names_tw_s2twp",
      "input": "沙特阿美 沙特阿美公司 伯克希尔哈撒韦 伯克希尔哈撒韦公司 伯克希尔-哈撒韦 伯克希尔-哈撒韦公司 大众公司 大众汽车 大众汽车集团 大众集团 埃克森美孚 开市客 开市客公司 台积公司 台积电 强生公司 宝洁 宝洁公司 阿斯利康 阿斯利康公司 欧莱雅 欧莱雅集团 宝马集团",
      "expected": {
        "s2twp": "沙烏地阿美 沙烏地阿美公司 波克夏海瑟威 波克夏海瑟威公司 波克夏海瑟威 波克夏海瑟威公司 福斯汽車 福斯汽車 福斯汽車集團 福斯集團 艾克森美孚 好市多 好市多公司 台積公司 台積電 嬌生公司 寶僑 寶僑公司 阿斯特捷利康 阿斯特捷利康公司 萊雅 萊雅集團 BMW集團"
      }
    },
    {
      "id": "fortune_500_company_names_tw2sp",
      "input": "沙烏地阿美 沙烏地阿美公司 波克夏海瑟威 波克夏海瑟威公司 福斯汽車 福斯汽車集團 福斯集團 艾克森美孚 好市多 好市多公司 台積公司 台積電 嬌生公司 寶僑 寶僑公司 阿斯特捷利康 阿斯特捷利康公司 萊雅 萊雅集團 BMW集團",
      "expected": {
        "tw2sp": "沙特阿美 沙特阿美公司 伯克希尔哈撒韦 伯克希尔哈撒韦公司 大众汽车 大众汽车集团 大众集团 埃克森美孚 开市客 开市客公司 台积公司 台积电 强生公司 宝洁 宝洁公司 阿斯利康 阿斯利康公司 欧莱雅 欧莱雅集团 宝马集团"
      }
    },
    {
      "id": "medical_terms_tw_s2twp",
      "input": "前列腺癌、抑郁症、胰腺炎是常见疾病",
      "expected": {
        "s2t": "前列腺癌、抑鬱症、胰腺炎是常見疾病",
        "s2tw": "前列腺癌、抑鬱症、胰腺炎是常見疾病",
        "s2twp": "攝護腺癌、憂鬱症、胰臟炎是常見疾病"
      }
    },
    {
      "id": "medical_terms_tw_tw2sp",
      "input": "攝護腺、憂鬱症、胰臟的醫學術語",
      "expected": {
        "tw2s": "摄护腺、忧郁症、胰脏的医学术语",
        "tw2sp": "前列腺、抑郁症、胰腺的医学术语",
        "t2s": "摄护腺、忧郁症、胰脏的医学术语"
      }
    },
    {
      "id": "medical_phrases_tw_s2twp",
      "input": "乙肝患者服用阿司匹林、他汀类和阻滞剂后,白细胞与红细胞计数恢复正常",
      "expected": {
        "s2t": "乙肝患者服用阿司匹林、他汀類和阻滯劑後,白細胞與紅細胞計數恢復正常",
        "s2tw": "乙肝患者服用阿司匹林、他汀類和阻滯劑後,白細胞與紅細胞計數恢復正常",
        "s2twp": "B肝患者服用阿斯匹靈、史他汀類和阻斷劑後,白血球與紅血球計數恢復正常"
      }
    },
    {
      "id": "medical_phrases_tw_neuro_s2twp",
      "input": "阿尔茨海默症、帕金森病和多动症的诊断需要计算机断层,代谢综合征也很常见",
      "expected": {
        "s2t": "阿爾茨海默症、帕金森病和多動症的診斷需要計算機斷層,代謝綜合徵也很常見",
        "s2tw": "阿爾茨海默症、帕金森病和多動症的診斷需要計算機斷層,代謝綜合徵也很常見",
        "s2twp": "阿茲海默症、帕金森氏症和過動症的診斷需要電腦斷層,代謝症候群也很常見"
      }
    },
    {
      "id": "medical_phrases_tw_tw2sp",
      "input": "B型肝炎患者服用阿斯匹靈、史他汀類和阻斷劑後,白血球與紅血球計數恢復正常",
      "expected": {
        "tw2s": "B型肝炎患者服用阿斯匹灵、史他汀类和阻断剂后,白血球与红血球计数恢复正常",
        "tw2sp": "乙型肝炎患者服用阿司匹林、他汀类和阻滞剂后,白细胞与红细胞计数恢复正常",
        "t2s": "B型肝炎患者服用阿斯匹灵、史他汀类和阻断剂后,白血球与红血球计数恢复正常"
      }
    },
    {
      "id": "medical_phrases_tw_neuro_tw2sp",
      "input": "阿茲海默症、帕金森氏症和過動症的診斷需要電腦斷層,代謝症候群也很常見",
      "expected": {
        "tw2s": "阿兹海默症、帕金森氏症和过动症的诊断需要电脑断层,代谢症候群也很常见",
        "tw2sp": "阿尔茨海默症、帕金森病和多动症的诊断需要计算机断层,代谢综合征也很常见",
        "t2s": "阿兹海默症、帕金森氏症和过动症的诊断需要电脑断层,代谢症候群也很常见"
      }
    },
    {
      "id": "medical_phrases_tw_acetaminophen_s2twp",
      "input": "对乙酰氨基酚和扑热息痛都是常用的退烧止痛药",
      "expected": {
        "s2t": "對乙酰氨基酚和撲熱息痛都是常用的退燒止痛藥",
        "s2tw": "對乙酰氨基酚和撲熱息痛都是常用的退燒止痛藥",
        "s2twp": "對乙醯胺基酚和對乙醯胺基酚都是常用的退燒止痛藥"
      }
    },
    {
      "id": "medical_phrases_tw_acetaminophen_tw2sp",
      "input": "對乙醯胺基酚和乙醯胺酚指的是同一種退燒止痛藥",
      "expected": {
        "tw2sp": "对乙酰氨基酚和对乙酰氨基酚指的是同一种退烧止痛药"
      }
    },
    {
      "id": "medical_phrases_tw_aids_love_taste_tw2sp",
      "input": "愛滋病患也能嚐到戀愛滋味",
      "expected": {
        "tw2sp": "艾滋病人也能尝到恋爱滋味"
      }
    },
    {
      "id": "medical_phrases_tw_hepatitis_s2twp",
      "input": "乙肝和丙肝患者要定期追蹤",
      "expected": {
        "s2t": "乙肝和丙肝患者要定期追蹤",
        "s2tw": "乙肝和丙肝患者要定期追蹤",
        "s2twp": "B肝和C肝患者要定期追蹤"
      }
    },
    {
      "id": "medical_phrases_tw_cardio_tw2sp",
      "input": "心肌梗塞、心房顫動、心房撲動的診斷需要心電圖",
      "expected": {
        "tw2s": "心肌梗塞、心房颤动、心房扑动的诊断需要心电图",
        "tw2sp": "心肌梗死、心房颤动、心房扑动的诊断需要心电图"
      }
    },
    {
      "id": "medical_phrases_tw_ultrasound_s2twp",
      "input": "超声波检查、B超和彩超都是常用的影像检查",
      "expected": {
        "s2t": "超聲波檢查、B超和彩超都是常用的影像檢查",
        "s2tw": "超聲波檢查、B超和彩超都是常用的影像檢查",
        "s2twp": "超音波檢查、超音波和彩色超音波都是常用的影像檢查"
      }
    },
    {
      "id": "medical_phrases_tw_ultrasound_tw2sp",
      "input": "腹部超音波和工業超音波用途不同",
      "expected": {
        "tw2s": "腹部超音波和工业超音波用途不同",
        "tw2sp": "腹部超声波和工业超声波用途不同"
      }
    },
    {
      "id": "dioxin_terms_tw_s2twp",
      "input": "二𫫇英(也作二恶英)是一类公认的剧毒、持久性环境污染物",
      "expected": {
        "s2t": "二噁英(也作二噁英)是一類公認的劇毒、持久性環境污染物",
        "t2s": "二𫫇英(也作二恶英)是一类公认的剧毒、持久性环境污染物",
        "s2tw": "二噁英(也作二噁英)是一類公認的劇毒、持久性環境汙染物",
        "s2twp": "戴奧辛(也作戴奧辛)是一類公認的劇毒、永續性環境汙染物"
      }
    },
    {
      "id": "dioxin_terms_tw_tw2sp",
      "input": "戴奧辛是一類公認的劇毒、持久性環境汙染物",
      "expected": {
        "s2t": "戴奧辛是一類公認的劇毒、持久性環境汙染物",
        "t2s": "戴奥辛是一类公认的剧毒、持久性环境污染物",
        "tw2s": "戴奥辛是一类公认的剧毒、持久性环境污染物",
        "tw2sp": "二𫫇英是一类公认的剧毒、持久性环境污染物"
      }
    },
    {
      "id": "hantavirus_s2twp",
      "input": "汉坦病毒",
      "expected": {
        "s2t": "漢坦病毒",
        "s2tw": "漢坦病毒",
        "s2twp": "漢他病毒",
        "s2hk": "漢坦病毒"
      }
    },
    {
      "id": "hantavirus_tw2sp",
      "input": "漢他病毒",
      "expected": {
        "tw2s": "汉他病毒",
        "tw2sp": "汉坦病毒",
        "tw2t": "漢他病毒"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_475",
      "input": "元数据 元數據 调制 调制解调器",
      "expected": {
        "s2twp": "後設資料 後設資料 調變 數據機",
        "s2tw": "元數據 元數據 調製 調製解調器",
        "s2t": "元數據 元數據 調製 調製解調器"
      }
    },
    {
      "id": "variants_tw_s2twp",
      "input": "社區 所罗门群岛 复选框 复选按钮",
      "expected": {
        "s2twp": "社群 索羅門群島 核取方塊 核取按鈕",
        "s2tw": "社區 所羅門群島 複選框 複選按鈕",
        "s2t": "社區 所羅門羣島 複選框 複選按鈕"
      }
    },
    {
      "id": "variants_tw_tw2sp",
      "input": "社群 索羅門群島 核取方塊 核取按鈕",
      "expected": {
        "tw2sp": "社区 所罗门群岛 复选框 复选按钮",
        "tw2s": "社群 索罗门群岛 核取方块 核取按钮",
        "t2s": "社群 索罗门群岛 核取方块 核取按钮"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_447_s2x",
      "input": "拜访吃茶小舖和纯吃茶",
      "expected": {
        "s2t": "拜訪喫茶小舖和純喫茶",
        "s2tw": "拜訪喫茶小舖和純喫茶",
        "s2twp": "拜訪喫茶小舖和純喫茶",
        "s2hk": "拜訪喫茶小舖和純喫茶"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_447_t2x",
      "input": "拜訪喫茶小舖和純喫茶",
      "expected": {
        "t2tw": "拜訪喫茶小舖和純喫茶",
        "t2hk": "拜訪喫茶小舖和純喫茶"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1369_s2x",
      "input": "郭台铭 郭台成 龙应台 今周刊 爱丽舍 爱丽舍宫",
      "expected": {
        "s2t": "郭台銘 郭台成 龍應台 今周刊 愛麗舍 愛麗舍宮",
        "s2tw": "郭台銘 郭台成 龍應台 今周刊 愛麗舍 愛麗舍宮",
        "s2twp": "郭台銘 郭台成 龍應台 今周刊 愛麗舍 愛麗舍宮",
        "s2hk": "郭台銘 郭台成 龍應台 今周刊 愛麗舍 愛麗舍宮",
        "s2hkp": "郭台銘 郭台成 龍應台 今周刊 愛麗舍 愛麗舍宮"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1369_t2x",
      "input": "郭台銘 郭台成 龍應台 今周刊 愛麗舍 愛麗舍宮 沈厚 郭臺銘 郭臺成 龍應臺 愛麗捨宮",
      "expected": {
        "t2s": "郭台铭 郭台成 龙应台 今周刊 爱丽舍 爱丽舍宫 沉厚 郭台铭 郭台成 龙应台 爱丽舍宫",
        "tw2s": "郭台铭 郭台成 龙应台 今周刊 爱丽舍 爱丽舍宫 沉厚 郭台铭 郭台成 龙应台 爱丽舍宫",
        "tw2sp": "郭台铭 郭台成 龙应台 今周刊 爱丽舍 爱丽舍宫 沉厚 郭台铭 郭台成 龙应台 爱丽舍宫",
        "hk2s": "郭台铭 郭台成 龙应台 今周刊 爱丽舍 爱丽舍宫 沉厚 郭台铭 郭台成 龙应台 爱丽舍宫",
        "hk2sp": "郭台铭 郭台成 龙应台 今周刊 爱丽舍 爱丽舍宫 沉厚 郭台铭 郭台成 龙应台 爱丽舍宫",
        "hk2t": "郭台銘 郭台成 龍應台 今周刊 愛麗舍 愛麗舍宮 沈厚 郭臺銘 郭臺成 龍應臺 愛麗捨宮"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1035_s2t",
      "input": "想象 想象力 富于想象 想像水一样",
      "expected": {
        "s2t": "想像 想像力 富於想像 想像水一樣"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_914",
      "input": "别强 彆強",
      "expected": {
        "s2t": "別強 彆強",
        "s2tw": "別強 彆強",
        "s2twp": "別強 彆強",
        "s2hk": "別強 彆強",
        "t2s": "别强 别强",
        "tw2s": "别强 别强",
        "hk2s": "别强 别强"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1035_t2s",
      "input": "想像 想像力 富於想像 想像水一樣",
      "expected": {
        "t2s": "想像 想像力 富于想像 想像水一样"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1036_s2x",
      "input": "丁当 歌手丁当 丁丁当当 当当丁丁 绑架丁丁当;叮当 叮叮当 叮叮当当",
      "expected": {
        "s2t": "丁當 歌手丁噹 丁丁當當 當當丁丁 綁架丁丁當;叮噹 叮叮噹 叮叮噹噹",
        "s2twp": "叮噹 歌手丁噹 叮叮噹噹 當當丁丁 綁架丁丁當;叮噹 叮叮噹 叮叮噹噹"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1036_t2s",
      "input": "叮噹 歌手丁噹 叮叮噹 叮叮噹噹 當當丁丁 綁架丁丁當",
      "expected": {
        "tw2sp": "丁当 歌手丁当 丁丁当 丁丁当当 当当丁丁 绑架丁丁当"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_988",
      "input": "上下数千年,纵横几万里",
      "expected": {
        "s2t": "上下數千年,縱橫幾萬里"
      }
    },
    {
      "id": "s2twp_gong_yuan_to_xi_yuan",
      "input": "公元前100年,公元1949年,采用公元纪年",
      "expected": {
        "s2twp": "西元前100年,西元1949年,採用公元紀年"
      }
    },
    {
      "id": "macro_terms_s2twp",
      "input": "宏定义、宏展开、宏调用、宏替换、宏命令、宏语言、宏处理、宏函数、宏指令和宏编程",
      "expected": {
        "s2twp": "巨集定義、巨集展開、巨集呼叫、巨集替換、巨集命令、巨集語言、巨集處理、巨集函式、巨集指令和巨集程式設計"
      }
    },
    {
      "id": "macro_names_s2twp",
      "input": "黄宏和李彦宏",
      "expected": {
        "s2twp": "黃宏和李彥宏"
      }
    },
    {
      "id": "macro_names_tw2sp",
      "input": "黃宏和李彥宏",
      "expected": {
        "tw2sp": "黄宏和李彦宏"
      }
    },
    {
      "id": "macro_terms_tw2sp",
      "input": "巨集定義、巨集展開、巨集呼叫、巨集替換、巨集命令、巨集語言、巨集處理、巨集函式、巨集指令和巨集程式設計",
      "expected": {
        "tw2sp": "宏定义、宏展开、宏调用、宏替换、宏命令、宏语言、宏处理、宏函数、宏指令和宏编程"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_585",
      "input": "妆发",
      "expected": {
        "s2t": "妝髮",
        "s2tw": "妝髮",
        "s2twp": "妝髮",
        "s2hk": "妝髮"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_582",
      "input": "倒霉",
      "expected": {
        "s2t": "倒霉",
        "s2tw": "倒霉",
        "s2twp": "倒霉",
        "s2hk": "倒霉"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_580",
      "input": "去干扰",
      "expected": {
        "s2t": "去干擾",
        "s2tw": "去干擾",
        "s2twp": "去干擾",
        "s2hk": "去干擾"
      }
    },
    {
      "id": "console_stays_unchanged",
      "input": "控制台",
      "expected": {
        "s2t": "控制台",
        "s2tw": "控制台",
        "s2twp": "控制台",
        "s2hk": "控制台",
        "t2s": "控制台",
        "t2tw": "控制台",
        "t2hk": "控制台",
        "tw2s": "控制台",
        "tw2sp": "控制台",
        "tw2t": "控制台",
        "hk2s": "控制台",
        "hk2t": "控制台"
      }
    },
    {
      "id": "stardew_valley",
      "input": "星露谷物语",
      "expected": {
        "s2t": "星露谷物語",
        "s2tw": "星露谷物語",
        "s2twp": "星露谷物語",
        "s2hk": "星露谷物語"
      }
    },
    {
      "id": "mobile_data_s2twp",
      "input": "移动数据",
      "expected": {
        "s2t": "移動數據",
        "s2tw": "移動數據",
        "s2twp": "行動數據"
      }
    },
    {
      "id": "mobile_data_tw2sp",
      "input": "行動數據",
      "expected": {
        "tw2sp": "移动数据"
      }
    },
    {
      "id": "big_data_s2twp",
      "input": "大数据",
      "expected": {
        "s2t": "大數據",
        "s2tw": "大數據",
        "s2twp": "大數據"
      }
    },
    {
      "id": "hk_place_connaught_road",
      "input": "干诺道",
      "expected": {
        "s2t": "干諾道",
        "s2hk": "干諾道",
        "s2tw": "干諾道",
        "s2twp": "干諾道"
      }
    },
    {
      "id": "hk_place_quarry_bay",
      "input": "鲗鱼涌",
      "expected": {
        "s2t": "鰂魚涌",
        "s2hk": "鰂魚涌",
        "s2tw": "鰂魚涌",
        "s2twp": "鰂魚涌"
      }
    },
    {
      "id": "obama_s2twp",
      "input": "奥巴马",
      "expected": {
        "s2t": "奧巴馬",
        "s2tw": "奧巴馬",
        "s2twp": "歐巴馬"
      }
    },
    {
      "id": "obama_tw2sp",
      "input": "歐巴馬",
      "expected": {
        "tw2sp": "奥巴马"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_backpack",
      "input": "背包",
      "expected": {
        "s2t": "背包",
        "s2tw": "背包",
        "s2twp": "背包",
        "s2hk": "背包"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1001_nian_fo",
      "input": "念佛",
      "expected": {
        "s2t": "念佛",
        "s2tw": "念佛",
        "s2twp": "念佛",
        "s2hk": "念佛"
      }
    },
    {
      "id": "t2s_place_name_qian_an_xian",
      "input": "乾安縣 乾安鎮 乾縣 乾州 乾元縣 乾佑縣",
      "expected": {
        "t2s": "乾安县 乾安镇 乾县 乾州 乾元县 乾佑县",
        "hk2s": "乾安县 乾安镇 乾县 乾州 乾元县 乾佑县",
        "tw2s": "乾安县 乾安镇 乾县 乾州 乾元县 乾佑县",
        "tw2sp": "乾安县 乾安镇 乾县 乾州 乾元县 乾佑县"
      }
    },
    {
      "id": "nk2028_opencc-js_Issue_37",
      "input": "低级别产品",
      "expected": {
        "s2t": "低級別產品",
        "s2hk": "低級別產品",
        "s2tw": "低級別產品",
        "s2twp": "低級別產品"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_531_tongguo",
      "input": "本次会议一致通过。",
      "expected": {
        "s2t": "本次會議一致通過。",
        "s2hk": "本次會議一致通過。",
        "s2tw": "本次會議一致通過。",
        "s2twp": "本次會議一致通過。"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_933_s2twp",
      "input": "缺省 默认 预设",
      "expected": {
        "s2twp": "預設 預設 預設"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_508",
      "input": "高级设置默认的概率是50%",
      "expected": {
        "s2twp": "進階設定預設的機率是50%"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_933_tw2sp",
      "input": "預設",
      "expected": {
        "tw2sp": "预设"
      }
    },
    {
      "id": "procedural_chengxu_not_converted_to_chengshi",
      "input": "司法程序、诉讼程序、正当程序",
      "expected": {
        "s2twp": "司法程序、訴訟程序、正當程序"
      }
    },
    {
      "id": "western_classical_musicians_s2twp",
      "input": "亨德尔、维瓦尔第、泰勒曼、斯卡拉蒂、蒙特威尔第、科雷利、珀塞尔、拉莫、库普兰、海顿、莫扎特、贝多芬、舒伯特、克莱门蒂(克列门蒂)、萨列里、格鲁克、博凯里尼、肖邦、李斯特、舒曼、门德尔松、勃拉姆斯、瓦格纳、威尔第、罗西尼、多尼采蒂、贝利尼、柏辽兹、比才、古诺、福雷、德彪西、拉威尔、萨蒂、拉洛、柴可夫斯基、里姆斯基-科萨科夫、穆索尔斯基、鲍罗丁、格林卡、拉赫玛尼诺夫、斯克里亚宾、普罗科菲耶夫、肖斯塔科维奇、斯特拉文斯基、德沃夏克、斯美塔那、雅纳切克、马勒、布鲁克纳、施特劳斯、西贝柳斯、格里格、尼尔森、阿尔文、埃尔加、沃恩·威廉斯、霍尔斯特、布里顿、沃尔顿、蒂佩特、戴留斯、巴克斯、布里奇、科普兰、格什温、伯恩斯坦、巴伯、艾夫斯、凯奇、格拉斯、赖希、亚当斯、帕特、勋伯格、贝尔格、韦伯恩、欣德米特、奥尔夫、施托克豪森、梅西安、布列兹、利盖蒂、潘德列茨基、帕格尼尼、萨拉萨蒂、克莱斯勒、海菲茨、鲁宾斯坦、霍洛维茨、古尔德、卡拉扬、托斯卡尼尼、富特文格勒",
      "expected": {
        "s2twp": "韓德爾、韋瓦第、泰勒曼、史卡拉第、蒙特威爾第、柯雷利、普賽爾、拉摩、庫普蘭、海頓、莫札特、貝多芬、舒伯特、克萊門第(克萊門第)、薩列里、格魯克、波凱里尼、蕭邦、李斯特、舒曼、孟德爾頌、布拉姆斯、華格納、威爾第、羅西尼、多尼采第、貝里尼、白遼士、比才、古諾、佛瑞、德布西、拉威爾、薩提、拉羅、柴可夫斯基、林姆斯基-高沙可夫、穆索斯基、包羅定、葛令卡、拉赫曼尼諾夫、史克里亞賓、普羅高菲夫、蕭士塔高維契、史特拉汶斯基、德弗札克、史麥塔納、楊納傑克、馬勒、布魯克納、史特勞斯、西貝流士、葛利格、尼爾森、阿爾文、艾爾加、佛漢·威廉斯、霍爾斯特、布瑞頓、華爾頓、提佩特、戴流士、巴克斯、布里奇、柯普蘭、蓋希文、伯恩斯坦、巴伯、艾夫斯、凱吉、葛拉斯、萊許、亞當斯、帕特、荀白克、貝爾格、韋本、興德密特、奧福、史托克豪森、梅湘、布萊茲、利蓋悌、潘德列茲基、帕格尼尼、薩拉沙泰、克萊斯勒、海飛茲、魯賓斯坦、霍洛維茲、顧爾德、卡拉揚、托斯卡尼尼、富特文格勒"
      }
    },
    {
      "id": "western_classical_musicians_tw2sp",
      "input": "韓德爾、韋瓦第、泰勒曼、史卡拉第、蒙特威爾第、柯雷利、普賽爾、拉摩、庫普蘭、海頓、莫札特、貝多芬、舒伯特、克萊門第、薩列里、格魯克、波凱里尼、蕭邦、李斯特、舒曼、孟德爾頌、布拉姆斯、華格納、威爾第、羅西尼、多尼采第、貝里尼、白遼士、比才、古諾、佛瑞、德布西、拉威爾、薩提、拉羅、柴可夫斯基、林姆斯基-高沙可夫、穆索斯基、包羅定、葛令卡、拉赫曼尼諾夫、史克里亞賓、普羅高菲夫、蕭士塔高維契、史特拉汶斯基、德弗札克、史麥塔納、楊納傑克、馬勒、布魯克納、史特勞斯、西貝流士、葛利格、尼爾森、阿爾文、艾爾加、佛漢·威廉斯、霍爾斯特、布瑞頓、華爾頓、提佩特、戴流士、巴克斯、布里奇、柯普蘭、蓋希文、伯恩斯坦、巴伯、艾夫斯、凱吉、葛拉斯、萊許、亞當斯、帕特、荀白克、貝爾格、韋本、興德密特、奧福、史托克豪森、梅湘、布萊茲、利蓋悌、潘德列茲基、帕格尼尼、薩拉沙泰、克萊斯勒、海飛茲、魯賓斯坦、霍洛維茲、顧爾德、卡拉揚、托斯卡尼尼、富特文格勒",
      "expected": {
        "tw2sp": "亨德尔、维瓦尔第、泰勒曼、斯卡拉蒂、蒙特威尔第、科雷利、珀塞尔、拉莫、库普兰、海顿、莫扎特、贝多芬、舒伯特、克莱门蒂、萨列里、格鲁克、博凯里尼、肖邦、李斯特、舒曼、门德尔松、勃拉姆斯、瓦格纳、威尔第、罗西尼、多尼采蒂、贝利尼、柏辽兹、比才、古诺、福雷、德彪西、拉威尔、萨蒂、拉洛、柴可夫斯基、里姆斯基-科萨科夫、穆索尔斯基、鲍罗丁、格林卡、拉赫玛尼诺夫、斯克里亚宾、普罗科菲耶夫、肖斯塔科维奇、斯特拉文斯基、德沃夏克、斯美塔那、雅纳切克、马勒、布鲁克纳、施特劳斯、西贝柳斯、格里格、尼尔森、阿尔文、埃尔加、沃恩·威廉斯、霍尔斯特、布里顿、沃尔顿、蒂佩特、戴留斯、巴克斯、布里奇、科普兰、格什温、伯恩斯坦、巴伯、艾夫斯、凯奇、格拉斯、赖希、亚当斯、帕特、勋伯格、贝尔格、韦伯恩、欣德米特、奥尔夫、施托克豪森、梅西安、布列兹、利盖蒂、潘德列茨基、帕格尼尼、萨拉萨蒂、克莱斯勒、海菲茨、鲁宾斯坦、霍洛维茨、古尔德、卡拉扬、托斯卡尼尼、富特文格勒"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1174_s2twp",
      "input": "第三范式 范式转移 巴科斯范式",
      "expected": {
        "s2twp": "第三範式 範式轉移 巴科斯範式"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1174_tw2sp",
      "input": "第三正規化 第三範式 範式轉移 巴科斯範式",
      "expected": {
        "tw2sp": "第三范式 第三范式 范式转移 巴科斯范式"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_935_ethernet_s2twp",
      "input": "以太网 以太网络 以太网路 以太网路由器",
      "expected": {
        "s2twp": "乙太網路 乙太網路 乙太網路 乙太網路路由器"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_935_ethernet_tw2sp",
      "input": "乙太網 乙太網路 乙太網絡 乙太網路由器 乙太網路路由器",
      "expected": {
        "tw2sp": "以太网 以太网 以太网络 以太网路由器 以太网路由器"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_neijuan_s2t",
      "input": "内卷",
      "expected": {
        "s2t": "內捲",
        "s2tw": "內捲",
        "s2hk": "內捲"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_943_s2t",
      "input": "失之毫厘谬以千里 立方厘米",
      "expected": {
        "s2hk": "失之毫釐謬以千里 立方釐米",
        "s2t": "失之毫釐謬以千里 立方釐米",
        "s2tw": "失之毫釐謬以千里 立方釐米",
        "s2twp": "失之毫釐謬以千里 立方釐米"
      }
    },
    {
      "id": "zipper_s2t",
      "input": "拉链 拉链工程",
      "expected": {
        "s2hk": "拉鏈 拉鏈工程",
        "s2t": "拉鏈 拉鏈工程",
        "s2tw": "拉鏈 拉鏈工程",
        "s2twp": "拉鏈 拉鏈工程"
      }
    },
    {
      "id": "palette_s2twp_tw2sp",
      "input": "调色板 调色盘 調色板 調色盤",
      "expected": {
        "s2twp": "調色盤 調色盤 調色盤 調色盤",
        "tw2sp": "调色板 调色盘 调色板 调色盘"
      }
    },
    {
      "id": "deleted_14-character_phrases_s2t",
      "input": "但得一片橘皮吃且莫忘了洞庭湖 先天下之忧而忧后天下之乐而乐 在天愿做比翼鸟在地愿做连理枝 摇车儿里的爷爷拄拐棍儿的孙子 有意栽花花不发无心插柳柳成阴 有缘千里来相会无缘对面不相逢 濒危野生动植物种国际贸易公约 酒逢知己千锺少话不投机半句多 长江后浪催前浪一代新人换旧人",
      "expected": {
        "s2t": "但得一片橘皮喫且莫忘了洞庭湖 先天下之憂而憂後天下之樂而樂 在天願做比翼鳥在地願做連理枝 搖車兒裏的爺爺拄柺棍兒的孫子 有意栽花花不發無心插柳柳成陰 有緣千里來相會無緣對面不相逢 瀕危野生動植物種國際貿易公約 酒逢知己千鍾少話不投機半句多 長江後浪催前浪一代新人換舊人",
        "s2hk": "但得一片橘皮吃且莫忘了洞庭湖 先天下之憂而憂後天下之樂而樂 在天願做比翼鳥在地願做連理枝 搖車兒裏的爺爺拄枴棍兒的孫子 有意栽花花不發無心插柳柳成陰 有緣千里來相會無緣對面不相逢 瀕危野生動植物種國際貿易公約 酒逢知己千鍾少話不投機半句多 長江後浪催前浪一代新人換舊人",
        "s2tw": "但得一片橘皮吃且莫忘了洞庭湖 先天下之憂而憂後天下之樂而樂 在天願做比翼鳥在地願做連理枝 搖車兒裡的爺爺拄柺棍兒的孫子 有意栽花花不發無心插柳柳成陰 有緣千里來相會無緣對面不相逢 瀕危野生動植物種國際貿易公約 酒逢知己千鍾少話不投機半句多 長江後浪催前浪一代新人換舊人",
        "s2twp": "但得一片橘皮吃且莫忘了洞庭湖 先天下之憂而憂後天下之樂而樂 在天願做比翼鳥在地願做連理枝 搖車兒裡的爺爺拄柺棍兒的孫子 有意栽花花不發無心插柳柳成陰 有緣千里來相會無緣對面不相逢 瀕危野生動植物種國際貿易公約 酒逢知己千鍾少話不投機半句多 長江後浪催前浪一代新人換舊人"
      }
    },
    {
      "id": "deleted_14-character_phrase_t2s",
      "input": "酒逢知己千鍾少話不投機半句多",
      "expected": {
        "t2s": "酒逢知己千锺少话不投机半句多"
      }
    },
    {
      "id": "deleted_long_phrases_s2t",
      "input": "成功的男人后面必有一个奉献的女人 善有善报恶有恶报若然不报时晨未到 生物技术与制药工业发展推动小组 双江拉祜族佤族布朗族傣族自治县 每一个人都有美中不足的地方 斯里兰卡民主社会主义共和国 全国人民代表大会常务委员会",
      "expected": {
        "s2t": "成功的男人後面必有一個奉獻的女人 善有善報惡有惡報若然不報時晨未到 生物技術與製藥工業發展推動小組 雙江拉祜族佤族布朗族傣族自治縣 每一個人都有美中不足的地方 斯里蘭卡民主社會主義共和國 全國人民代表大會常務委員會"
      }
    },
    {
      "id": "namibia_s2twp",
      "input": "纳米比亚",
      "expected": {
        "s2t": "納米比亞",
        "s2tw": "納米比亞",
        "s2twp": "納米比亞",
        "s2hk": "納米比亞"
      }
    },
    {
      "id": "georgia_state_country_s2twp",
      "input": "佐治亚 佐治亚州 格鲁吉亚 格鲁吉亚共和国",
      "expected": {
        "s2twp": "喬治亞 喬治亞州 喬治亞 喬治亞共和國"
      }
    },
    {
      "id": "georgia_state_country_tw2sp",
      "input": "喬治亞州 喬治亞共和國 喬治亞",
      "expected": {
        "tw2sp": "佐治亚州 格鲁吉亚共和国 乔治亚"
      }
    },
    {
      "id": "us_states_s2_regional_phrases",
      "input": "阿拉巴马州 阿拉斯加州 亚利桑那州 阿肯色州 加利福尼亚州 科罗拉多州 康涅狄格州 特拉华州 佛罗里达州 佐治亚州 夏威夷州 爱达荷州 伊利诺伊州 印第安纳州 艾奥瓦州 堪萨斯州 肯塔基州 路易斯安那州 缅因州 马里兰州 马萨诸塞州 密歇根州 明尼苏达州 密西西比州 密苏里州 蒙大拿州 内布拉斯加州 内华达州 新罕布什尔州 新泽西州 新墨西哥州 纽约州 北卡罗来纳州 北达科他州 俄亥俄州 俄克拉荷马州 俄勒冈州 宾夕法尼亚州 罗得岛州 南卡罗来纳州 南达科他州 田纳西州 得克萨斯州 犹他州 佛蒙特州 弗吉尼亚州 华盛顿州 西弗吉尼亚州 威斯康星州 怀俄明州",
      "expected": {
        "s2twp": "阿拉巴馬州 阿拉斯加州 亞利桑那州 阿肯色州 加利福尼亞州 科羅拉多州 康乃狄克州 德拉瓦州 佛羅里達州 喬治亞州 夏威夷州 愛達荷州 伊利諾州 印第安納州 愛荷華州 堪薩斯州 肯塔基州 路易斯安那州 緬因州 馬里蘭州 麻薩諸塞州 密西根州 明尼蘇達州 密西西比州 密蘇里州 蒙大拿州 內布拉斯加州 內華達州 新罕布夏州 紐澤西州 新墨西哥州 紐約州 北卡羅萊納州 北達科他州 俄亥俄州 奧克拉荷馬州 奧勒岡州 賓夕法尼亞州 羅德島州 南卡羅萊納州 南達科他州 田納西州 得克薩斯州 猶他州 佛蒙特州 維吉尼亞州 華盛頓州 西維吉尼亞州 威斯康辛州 懷俄明州",
        "s2hkp": "阿拉巴馬州 阿拉斯加州 亞利桑那州 阿肯色州 加利福尼亞州 科羅拉多州 康涅狄格州 特拉華州 佛羅里達州 佐治亞州 夏威夷州 愛達荷州 伊利諾州 印第安納州 艾奧瓦州 堪薩斯州 肯塔基州 路易斯安那州 緬因州 馬利蘭州 馬薩諸塞州 密芝根州 明尼蘇達州 密西西比州 密蘇里州 蒙大拿州 內布拉斯加州 內華達州 新罕布什爾州 新澤西州 新墨西哥州 紐約州 北卡羅萊納州 北達科他州 俄亥俄州 奧克拉荷馬州 俄勒岡州 賓夕凡尼亞州 羅德島州 南卡羅萊納州 南達科他州 田納西州 德薩斯州 猶他州 佛蒙特州 維珍尼亞州 華盛頓州 西維珍尼亞州 威斯康星州 懷俄明州"
      }
    },
    {
      "id": "us_states_hk_hk2sp",
      "input": "伊利諾州 馬利蘭州 密芝根州 北卡羅萊納州 南卡羅萊納州 奧克拉荷馬州 賓夕凡尼亞州 羅德島州 德薩斯州 維珍尼亞州 西維珍尼亞州",
      "expected": {
        "hk2sp": "伊利诺伊州 马里兰州 密歇根州 北卡罗来纳州 南卡罗来纳州 俄克拉何马州 宾夕法尼亚州 罗得岛州 得克萨斯州 弗吉尼亚州 西弗吉尼亚州"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_645",
      "input": "华氏巨球蛋白血症 高钠血症最常见的原因是失水后未得到补充",
      "expected": {
        "s2t": "華氏巨球蛋白血症 高鈉血症最常見的原因是失水後未得到補充",
        "s2hk": "華氏巨球蛋白血症 高鈉血症最常見的原因是失水後未得到補充",
        "s2tw": "華氏巨球蛋白血症 高鈉血症最常見的原因是失水後未得到補充",
        "s2twp": "華氏巨球蛋白血症 高鈉血症最常見的原因是失水後未得到補充"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1228_existing_behaviors",
      "input": "殢 殢云尤雨 𣨼 𣨼云尤雨",
      "expected": {
        "s2t": "殢 殢雲尤雨 殢 殢雲尤雨",
        "t2s": "𣨼 𣨼云尤雨 𣨼 𣨼云尤雨"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1229_existing_behaviors",
      "input": "剔团𪢮月儿初淡 剔團圞月兒初淡",
      "expected": {
        "s2t": "剔團圞月兒初淡 剔團圞月兒初淡",
        "t2s": "剔团𪢮月儿初淡 剔团𪢮月儿初淡"
      }
    },
    {
      "id": "fruit_dried_phrases_s2t",
      "input": "葡萄干 芒果干 香蕉干 苹果干 草莓干 凤梨干 柿干 桃干 杏干 洋李干 梅干 无花果干 龙眼干 荔枝干 橄榄干 金桔干 山楂干 椰子干 榴莲干 榴梿干 奇异果干 百香果干 冻干猫粮",
      "expected": {
        "s2t": "葡萄乾 芒果乾 香蕉乾 蘋果乾 草莓乾 鳳梨乾 柿乾 桃乾 杏乾 洋李乾 梅乾 無花果乾 龍眼乾 荔枝乾 橄欖乾 金桔乾 山楂乾 椰子乾 榴蓮乾 榴槤乾 奇異果乾 百香果乾 凍乾貓糧",
        "s2tw": "葡萄乾 芒果乾 香蕉乾 蘋果乾 草莓乾 鳳梨乾 柿乾 桃乾 杏乾 洋李乾 梅乾 無花果乾 龍眼乾 荔枝乾 橄欖乾 金桔乾 山楂乾 椰子乾 榴蓮乾 榴槤乾 奇異果乾 百香果乾 凍乾貓糧",
        "s2twp": "葡萄乾 芒果乾 香蕉乾 蘋果乾 草莓乾 鳳梨乾 柿乾 桃乾 杏乾 洋李乾 梅乾 無花果乾 龍眼乾 荔枝乾 橄欖乾 金桔乾 山楂乾 椰子乾 榴槤乾 榴槤乾 奇異果乾 百香果乾 凍乾貓糧",
        "s2hk": "葡萄乾 芒果乾 香蕉乾 蘋果乾 草莓乾 鳳梨乾 柿乾 桃乾 杏乾 洋李乾 梅乾 無花果乾 龍眼乾 荔枝乾 橄欖乾 金桔乾 山楂乾 椰子乾 榴蓮乾 榴槤乾 奇異果乾 百香果乾 凍乾貓糧"
      }
    },
    {
      "id": "fruit_dried_phrases_t2s",
      "input": "葡萄乾 芒果乾 香蕉乾 蘋果乾 草莓乾 鳳梨乾 柿乾 桃乾 杏乾 洋李乾 梅乾 無花果乾 龍眼乾 荔枝乾 橄欖乾 金桔乾 山楂乾 椰子乾 榴槤乾 奇異果乾 百香果乾 凍乾貓糧",
      "expected": {
        "t2s": "葡萄干 芒果干 香蕉干 苹果干 草莓干 凤梨干 柿干 桃干 杏干 洋李干 梅干 无花果干 龙眼干 荔枝干 橄榄干 金桔干 山楂干 椰子干 榴梿干 奇异果干 百香果干 冻干猫粮",
        "hk2s": "葡萄干 芒果干 香蕉干 苹果干 草莓干 凤梨干 柿干 桃干 杏干 洋李干 梅干 无花果干 龙眼干 荔枝干 橄榄干 金桔干 山楂干 椰子干 榴梿干 奇异果干 百香果干 冻干猫粮",
        "tw2s": "葡萄干 芒果干 香蕉干 苹果干 草莓干 凤梨干 柿干 桃干 杏干 洋李干 梅干 无花果干 龙眼干 荔枝干 橄榄干 金桔干 山楂干 椰子干 榴梿干 奇异果干 百香果干 冻干猫粮",
        "tw2sp": "葡萄干 芒果干 香蕉干 苹果干 草莓干 凤梨干 柿干 桃干 杏干 洋李干 梅干 无花果干 龙眼干 荔枝干 橄榄干 金桔干 山楂干 椰子干 榴莲干 奇异果干 百香果干 冻干猫粮"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1246_hk_variant_reverse_phrases",
      "input": "才智 核心 方針 肥皂 香皂 接續香煙 煙",
      "expected": {
        "hk2t": "才智 核心 方針 肥皂 香皂 接續香煙 煙"
      }
    },
    {
      "id": "hk_variants_rev_preferred_characters",
      "input": "才 核 煙",
      "expected": {
        "hk2t": "才 核 煙"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1246_tw_variant_reverse_phrases",
      "input": "才智 核心 方針 肥皂 香皂 參考",
      "expected": {
        "tw2t": "才智 核心 方針 肥皂 香皂 參考"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1246_core_reverse_phrase",
      "input": "核心 原子核 无核化 稽覈",
      "expected": {
        "hk2t": "核心 原子核 无核化 稽覈",
        "tw2t": "核心 原子核 无核化 稽覈",
        "t2s": "核心 原子核 无核化 稽核",
        "tw2s": "核心 原子核 无核化 稽核",
        "tw2sp": "内核 原子核 无核化 稽核",
        "hk2s": "核心 原子核 无核化 稽核"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1246_test",
      "input": "這樣才行",
      "expected": {
        "hk2t": "這樣才行",
        "hk2s": "这样才行",
        "tw2t": "這樣纔行",
        "tw2s": "这样才行"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1248_niu_ji_tong_zao",
      "input": "牛骥同皁 牛骥同皂 牛骥同一皁 牛骥同一皂",
      "expected": {
        "s2t": "牛驥同皁 牛驥同皁 牛驥同一皁 牛驥同一皁",
        "s2hk": "牛驥同皁 牛驥同皁 牛驥同一皁 牛驥同一皁",
        "s2tw": "牛驥同皁 牛驥同皁 牛驥同一皁 牛驥同一皁",
        "s2twp": "牛驥同皁 牛驥同皁 牛驥同一皁 牛驥同一皁"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_930",
      "input": "狸猫 狸貓 貍貓",
      "expected": {
        "s2t": "狸貓 狸貓 貍貓",
        "s2tw": "狸貓 狸貓 貍貓",
        "s2twp": "狸貓 狸貓 貍貓",
        "s2hk": "狸貓 狸貓 貍貓",
        "t2s": "狸猫 狸猫 狸猫",
        "t2tw": "狸猫 狸貓 貍貓",
        "t2hk": "狸猫 狸貓 貍貓",
        "tw2s": "狸猫 狸猫 狸猫",
        "tw2sp": "狸猫 狸猫 狸猫",
        "tw2t": "狸猫 狸貓 貍貓",
        "hk2s": "狸猫 狸猫 狸猫",
        "hk2t": "狸猫 狸貓 貍貓"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1256_HK_news_channels",
      "input": "有线新闻 无线新闻 无线新闻台 有線新聞 無線新聞 無線新聞台",
      "expected": {
        "s2hk": "有線新聞 無綫新聞 無綫新聞台 有線新聞 無綫新聞 無綫新聞台",
        "t2hk": "有线新闻 无线新闻 无线新闻台 有線新聞 無綫新聞 無綫新聞台"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1267_HK_proper_noun_variants_s2hk",
      "input": "张卫健 张柏芝 张栢芝 白腊 冼靖峰 温兆伦",
      "expected": {
        "s2hk": "張衛健 張柏芝 張栢芝 白腊 冼靖峰 溫兆倫"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1267_HK_proper_noun_variants_t2hk",
      "input": "張衛健 張衞健 張柏芝 張栢芝 黃成 白臘 冼靖峯 温兆倫 溫兆倫",
      "expected": {
        "t2hk": "張衛健 張衛健 張柏芝 張栢芝 黃成 白腊 冼靖峰 溫兆倫 溫兆倫",
        "hk2t": "張衛健 張衛健 張柏芝 張栢芝 黃成 白臘 冼靖峯 溫兆倫 溫兆倫"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1267_HK_proper_noun_variants_heng_lines",
      "input": "恒生大学 恒生指数 观塘线 港岛线 恆生大學 恆生指數 觀塘線 港島線",
      "expected": {
        "s2hk": "恒生大學 恒生指數 觀塘綫 港島綫 恒生大學 恒生指數 觀塘綫 港島綫",
        "t2hk": "恒生大学 恒生指数 观塘线 港岛线 恒生大學 恒生指數 觀塘綫 港島綫"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1267_HK_railway_line_variants_hk2t",
      "input": "北港島綫 南港島綫 將軍澳綫 屯馬綫 東九龍綫 東涌綫 東鐵綫 機場快綫 沙中綫 港島綫 荃灣綫 觀塘綫 迪士尼綫",
      "expected": {
        "hk2t": "北港島線 南港島線 將軍澳線 屯馬線 東九龍線 東涌線 東鐵線 機場快線 沙中線 港島線 荃灣線 觀塘線 迪士尼線"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1266_zhou",
      "input": "甲胄 甲冑",
      "expected": {
        "s2t": "甲冑 甲冑",
        "t2s": "甲胄 甲胄",
        "s2tw": "甲冑 甲冑",
        "tw2s": "甲胄 甲胄",
        "s2hk": "甲冑 甲冑",
        "hk2s": "甲胄 甲胄",
        "s2twp": "甲冑 甲冑",
        "tw2sp": "甲胄 甲胄",
        "tw2t": "甲胄 甲冑",
        "t2tw": "甲胄 甲冑",
        "hk2t": "甲胄 甲冑",
        "t2hk": "甲胄 甲冑"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_722",
      "input": "抬头 擡头 抬頭 擡頭",
      "expected": {
        "t2s": "抬头 抬头 抬头 抬头",
        "hk2s": "抬头 抬头 抬头 抬头",
        "tw2s": "抬头 抬头 抬头 抬头",
        "tw2sp": "抬头 抬头 抬头 抬头",
        "s2t": "抬頭 擡頭 抬頭 擡頭",
        "s2hk": "抬頭 擡頭 抬頭 擡頭",
        "s2tw": "抬頭 擡頭 抬頭 擡頭",
        "s2twp": "抬頭 擡頭 抬頭 擡頭",
        "t2hk": "抬头 擡头 抬頭 擡頭",
        "t2tw": "抬头 擡头 抬頭 擡頭",
        "hk2t": "抬头 擡头 抬頭 擡頭",
        "tw2t": "抬头 擡头 抬頭 擡頭"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_722_preexisting_s2t",
      "input": "哄抬物价 抬出去 抬回来 抬杠 抬高身价",
      "expected": {
        "s2t": "哄抬物價 抬出去 抬回來 抬槓 抬高身價",
        "s2hk": "哄抬物價 抬出去 抬回來 抬槓 抬高身價",
        "s2tw": "哄抬物價 抬出去 抬回來 抬槓 抬高身價",
        "s2twp": "哄抬物價 抬出去 抬回來 抬槓 抬高身價"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_722_preexisting_t2s_1",
      "input": "哄擡物價 哄抬物價 擡出去 抬出去 擡回來 抬回來 擡槓 抬槓 擡高身價 抬高身價",
      "expected": {
        "t2s": "哄抬物价 哄抬物价 抬出去 抬出去 抬回来 抬回来 抬杠 抬杠 抬高身价 抬高身价",
        "hk2s": "哄抬物价 哄抬物价 抬出去 抬出去 抬回来 抬回来 抬杠 抬杠 抬高身价 抬高身价",
        "tw2s": "哄抬物价 哄抬物价 抬出去 抬出去 抬回来 抬回来 抬杠 抬杠 抬高身价 抬高身价",
        "tw2sp": "哄抬物价 哄抬物价 抬出去 抬出去 抬回来 抬回来 抬杠 抬杠 抬高身价 抬高身价"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_767_solace",
      "input": "慰藉著受傷的心靈 慰藉着受伤的心灵",
      "expected": {
        "s2t": "慰藉著受傷的心靈 慰藉着受傷的心靈",
        "s2tw": "慰藉著受傷的心靈 慰藉著受傷的心靈",
        "s2twp": "慰藉著受傷的心靈 慰藉著受傷的心靈",
        "s2hk": "慰藉著受傷的心靈 慰藉着受傷的心靈",
        "t2s": "慰藉著受伤的心灵 慰藉着受伤的心灵",
        "t2tw": "慰藉著受傷的心靈 慰藉著受伤的心灵",
        "t2hk": "慰藉著受傷的心靈 慰藉着受伤的心灵",
        "tw2s": "慰藉着受伤的心灵 慰藉着受伤的心灵",
        "tw2sp": "慰藉着受伤的心灵 慰藉着受伤的心灵",
        "tw2t": "慰藉着受傷的心靈 慰藉着受伤的心灵",
        "hk2s": "慰藉著受伤的心灵 慰藉着受伤的心灵",
        "hk2t": "慰藉著受傷的心靈 慰藉着受伤的心灵"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_736_reviewed_phrases",
      "input": "埔里社抚垦局 呆里撒奸 劈里啪啦 嘀里嘟噜 行万里路胜读万卷书",
      "expected": {
        "s2t": "埔裏社撫墾局 呆裏撒奸 劈里啪啦 嘀裏嘟嚕 行萬里路勝讀萬卷書"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_736_li_contexts",
      "input": "教室里 山里 市里 归里 春社里 番社里 广里 庄里 底里 社里 里言",
      "expected": {
        "s2t": "教室裏 山裏 市裏 歸裏 春社裏 番社裏 廣裏 莊裏 底裏 社裏 裏言"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_1295",
      "input": "耳机里漏出很多声音",
      "expected": {
        "s2t": "耳機裏漏出很多聲音"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1288_acyl_group",
      "input": "异烟碱酰酸",
      "expected": {
        "s2t": "異菸鹼酰酸",
        "s2tw": "異菸鹼酰酸",
        "s2twp": "異菸鹼醯酸"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_461_jian_s2t",
      "input": "中国曾把碱写作硷,只有可溶于水的无机碱才叫碱,现已不再区分",
      "expected": {
        "s2t": "中國曾把鹼寫作硷,只有可溶於水的無機鹼才叫鹼,現已不再區分",
        "s2tw": "中國曾把鹼寫作硷,只有可溶於水的無機鹼才叫鹼,現已不再區分",
        "s2twp": "中國曾把鹼寫作硷,只有可溶於水的無機鹼才叫鹼,現已不再區分",
        "s2hk": "中國曾把鹼寫作硷,只有可溶於水的無機鹼才叫鹼,現已不再區分"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1275_amino_acid_s2x",
      "input": "氨基酸 丙氨酸 精氨酸 天冬酰胺 天门冬酰胺 天冬氨酸 天门冬氨酸 胱氨酸 谷氨酸 谷氨酰胺 甘氨酸 组氨酸 异亮氨酸 亮氨酸 赖氨酸 甲硫氨酸 苯丙氨酸 脯氨酸 丝氨酸 苏氨酸 色氨酸 酪氨酸 缬氨酸",
      "expected": {
        "s2t": "氨基酸 丙氨酸 精氨酸 天冬酰胺 天門冬酰胺 天冬氨酸 天門冬氨酸 胱氨酸 穀氨酸 穀氨酰胺 甘氨酸 組氨酸 異亮氨酸 亮氨酸 賴氨酸 甲硫氨酸 苯丙氨酸 脯氨酸 絲氨酸 蘇氨酸 色氨酸 酪氨酸 纈氨酸",
        "s2tw": "氨基酸 丙氨酸 精氨酸 天冬酰胺 天門冬酰胺 天冬氨酸 天門冬氨酸 胱氨酸 穀氨酸 穀氨酰胺 甘氨酸 組氨酸 異亮氨酸 亮氨酸 賴氨酸 甲硫氨酸 苯丙氨酸 脯氨酸 絲氨酸 蘇氨酸 色氨酸 酪氨酸 纈氨酸",
        "s2twp": "胺基酸 丙胺酸 精胺酸 天冬醯胺 天門冬醯胺 天冬胺酸 天門冬胺酸 胱胺酸 麩胺酸 麩醯胺酸 甘胺酸 組胺酸 異白胺酸 白胺酸 離胺酸 甲硫胺酸 苯丙胺酸 脯胺酸 絲胺酸 蘇胺酸 色胺酸 酪胺酸 纈胺酸"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1275_amino_acid_tw2x",
      "input": "胺基酸 丙胺酸 精胺酸 天冬醯胺 天門冬醯胺 天冬胺酸 天門冬胺酸 胱胺酸 麩胺酸 麩醯胺酸 甘胺酸 組胺酸 異白胺酸 白胺酸 離胺酸 甲硫胺酸 苯丙胺酸 脯胺酸 絲胺酸 蘇胺酸 色胺酸 酪胺酸 纈胺酸",
      "expected": {
        "tw2s": "胺基酸 丙胺酸 精胺酸 天冬醯胺 天门冬醯胺 天冬胺酸 天门冬胺酸 胱胺酸 麸胺酸 麸醯胺酸 甘胺酸 组胺酸 异白胺酸 白胺酸 离胺酸 甲硫胺酸 苯丙胺酸 脯胺酸 丝胺酸 苏胺酸 色胺酸 酪胺酸 缬胺酸",
        "tw2sp": "氨基酸 丙氨酸 精氨酸 天冬酰胺 天门冬酰胺 天冬氨酸 天门冬氨酸 胱氨酸 谷氨酸 谷氨酰胺 甘氨酸 组氨酸 异亮氨酸 亮氨酸 赖氨酸 甲硫氨酸 苯丙氨酸 脯氨酸 丝氨酸 苏氨酸 色氨酸 酪氨酸 缬氨酸"
      }
    },
    {
      "id": "chongqing_small_area_exception",
      "input": "重庆小面积商铺",
      "expected": {
        "s2t": "重慶小面積商鋪",
        "s2tw": "重慶小面積商鋪",
        "s2twp": "重慶小面積商鋪"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_506",
      "input": "几率 機率 機會率 概率",
      "expected": {
        "s2t": "幾率 機率 機會率 概率",
        "s2tw": "幾率 機率 機會率 概率",
        "s2twp": "機率 機率 機會率 機率",
        "s2hk": "幾率 機率 機會率 概率",
        "s2hkp": "機率 機率 機會率 概率",
        "t2s": "几率 机率 机会率 概率",
        "t2tw": "几率 機率 機會率 概率",
        "t2hk": "几率 機率 機會率 概率",
        "tw2s": "几率 机率 机会率 概率",
        "tw2sp": "几率 概率 机会率 概率",
        "tw2t": "几率 機率 機會率 概率",
        "hk2s": "几率 机率 机会率 概率",
        "hk2sp": "几率 几率 概率 概率",
        "hk2t": "几率 機率 機會率 概率"
      }
    },
    {
      "id": "s2t_dry_cooking_gan",
      "input": "干炒牛河 干拌饭 干拌面 干捞面",
      "expected": {
        "s2t": "乾炒牛河 乾拌飯 乾拌麪 乾撈麪"
      }
    },
    {
      "id": "s2t_mian_not_noodle",
      "input": "手工面具 手工面膜",
      "expected": {
        "s2t": "手工面具 手工面膜"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_ke_vs_ke",
      "input": "相剋 剋架 剋毒 挨剋",
      "expected": {
        "t2s": "相克 剋架 剋毒 挨剋"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_sheng_vs_sheng",
      "input": "昇華 畢昇 吳育昇 張昇 徐胤昇 李昇 李昇勳 溫昇豪 烏昇 王彥昇 申昇勳 盧象昇 蔣昇 金昇玟 閻鶴昇 陳昇 陳志昇 韓昇延 龔昇",
      "expected": {
        "t2s": "升华 毕昇 吴育昇 张昇 徐胤昇 李昇 李昇勋 温昇豪 乌昇 王彦昇 申昇勋 卢象昇 蒋昇 金昇玟 阎鹤昇 陈昇 陈志昇 韩昇延 龚昇"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_fan_vs_fan",
      "input": "氾濫 氾勝之 南氾 東氾 氾南 氾國 氾水",
      "expected": {
        "t2s": "泛滥 氾胜之 南氾 东氾 氾南 氾国 氾水"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_su_vs_su",
      "input": "甦醒 成甦 林甦 楊甦棣 許甦魂 陳甦 韓甦 馮甦 黃甦",
      "expected": {
        "t2s": "苏醒 成甦 林甦 杨甦棣 许甦魂 陈甦 韩甦 冯甦 黄甦"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_mi_vs_mi",
      "input": "祕密 允祕 胤祕 吳祕 李祕 袁祕 辛祕 祕丕笈 祕彭祖 祕瓊",
      "expected": {
        "t2s": "秘密 允祕 胤祕 吴祕 李祕 袁祕 辛祕 祕丕笈 祕彭祖 祕琼"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_xiu_vs_xiu",
      "input": "束脩 肉脩 腶脩 脩炳 脩脡 脩脯 脩金 脩敬 脩飾",
      "expected": {
        "t2s": "束脩 肉脩 腶脩 脩炳 脩脡 脩脯 脩金 脩敬 修饰"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_sou_vs_sou",
      "input": "茅蒐 其陰多蒐 春蒐 蒐狩 蒐獵 蒐苗 蒐獮 蒐田 蒐畋 秋蒐於紅 秋蒐于紅 蒐索",
      "expected": {
        "t2s": "茅蒐 其阴多蒐 春蒐 蒐狩 蒐猎 蒐苗 蒐狝 蒐田 蒐畋 秋蒐于红 秋蒐于红 搜索"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_li_vs_li",
      "input": "毫釐 年釐 懷釐 春釐 祝釐 逆釐",
      "expected": {
        "t2s": "毫厘 年釐 怀釐 春釐 祝釐 逆釐"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_zha_vs_zha",
      "input": "劄記 目劄 二十二史劄記 廿二史箚記 潛丘劄記;札记 目劄 二十二史札记 廿二史箚记 潜丘札记",
      "expected": {
        "t2s": "札记 目劄 二十二史札记 廿二史札记 潜丘札记;札记 目劄 二十二史札记 廿二史札记 潜丘札记",
        "s2t": "劄記 目劄 二十二史劄記 廿二史箚記 潛丘劄記;札記 目劄 二十二史劄記 廿二史箚記 潛丘劄記"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_han_vs_han",
      "input": "扞格 扞拒 扞衛;捍格 捍拒 捍卫",
      "expected": {
        "t2s": "扞格 捍拒 捍卫;捍格 捍拒 捍卫",
        "s2t": "扞格 扞拒 扞衛;捍格 捍拒 捍衛"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_ning_vs_ning",
      "input": "張鈞甯 甯采臣 甯氏;张钧甯 甯采臣 甯氏",
      "expected": {
        "t2s": "张钧甯 甯采臣 甯氏;张钧甯 甯采臣 甯氏",
        "s2t": "張鈞甯 甯采臣 甯氏;張鈞甯 甯采臣 甯氏"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_jia_vs_jia",
      "input": "袷袢 袷衣 袷裙;袷袢 夹衣 夹裙",
      "expected": {
        "t2s": "袷袢 夹衣 夹裙;袷袢 夹衣 夹裙",
        "s2t": "袷袢 袷衣 袷裙;袷袢 夾衣 夾裙"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_xi_vs_xi",
      "input": "綦谿利跂 谿工 玉谿生 勃谿 棠谿 谿子 谿州 樠谿 潕谿 後谿 太谿 解谿 陽谿;綦溪利跂 谿工 玉溪生 勃溪 棠溪 溪子 溪州 𣗊溪 𣲘溪 后溪 后溪穴 太溪 太溪穴 解溪 解溪穴 阳溪 阳溪穴",
      "expected": {
        "t2s": "綦溪利跂 谿工 玉溪生 勃溪 棠溪 溪子 溪州 𣗊溪 𣲘溪 后溪 太溪 解溪 阳溪;綦溪利跂 谿工 玉溪生 勃溪 棠溪 溪子 溪州 𣗊溪 𣲘溪 后溪 后溪穴 太溪 太溪穴 解溪 解溪穴 阳溪 阳溪穴",
        "s2t": "綦谿利跂 谿工 玉谿生 勃谿 棠谿 谿子 谿州 樠谿 潕谿 後谿 太谿 解谿 陽谿;綦谿利跂 谿工 玉谿生 勃谿 棠谿 溪子 溪州 樠谿 潕谿 後溪 後谿穴 太谿 太谿穴 解谿 解谿穴 陽溪 陽谿穴"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_jing_vs_jing_t2s",
      "input": "七逕 上逕 九逕山 南逕 水逕 沙逕 河逕 烏逕 社逕 赤石逕 逕口 逕聯 逕頭",
      "expected": {
        "t2s": "七迳 上迳 九迳山 南迳 水迳 沙迳 河迳 乌迳 社迳 赤石迳 迳口 迳联 迳头"
      }
    },
    {
      "id": "BYVoid_OpenCC_PR_464_jing_vs_jing_s2t",
      "input": "径庭 大相径庭 径取 径向 径流 径自 径行",
      "expected": {
        "s2t": "徑庭 大相逕庭 逕取 徑向 逕流 逕自 逕行"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_790_qian_ta_po",
      "input": "乾闥婆",
      "expected": {
        "t2s": "乾闼婆",
        "hk2s": "乾闼婆",
        "tw2s": "乾闼婆",
        "tw2sp": "乾闼婆"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_941_chan_s2t",
      "input": "铲子 铲刀 铲车 铲土 铲土机 铲雪 铲雪车 铲冰 铲球 飞铲 踢铲 铲倒 铲射 铲抢 反铲 铲板 铲起 铲除",
      "expected": {
        "s2t": "鏟子 鏟刀 鏟車 鏟土 鏟土機 鏟雪 鏟雪車 鏟冰 鏟球 飛鏟 踢鏟 鏟倒 鏟射 鏟搶 反鏟 鏟板 鏟起 剷除",
        "s2tw": "鏟子 鏟刀 鏟車 鏟土 鏟土機 鏟雪 鏟雪車 鏟冰 鏟球 飛鏟 踢鏟 鏟倒 鏟射 鏟搶 反鏟 鏟板 鏟起 剷除",
        "s2twp": "鏟子 鏟刀 鏟車 鏟土 鏟土機 鏟雪 鏟雪車 鏟冰 鏟球 飛鏟 踢鏟 鏟倒 鏟射 鏟搶 反鏟 鏟板 鏟起 剷除"
      }
    },
    {
      "id": "su_variant_preserve",
      "input": "甦 楊甦棣 復甦 甦醒 甦生 心肺復甦術 杨苏棣 复苏 苏醒",
      "expected": {
        "t2s": "甦 杨甦棣 复苏 苏醒 苏生 心肺复苏术 杨苏棣 复苏 苏醒",
        "s2t": "甦 楊甦棣 復甦 甦醒 甦生 心肺復甦術 楊甦棣 復甦 甦醒"
      }
    },
    {
      "id": "hk_computer_phrases_s2hkp",
      "input": "鼠标 光标 硬盘",
      "expected": {
        "s2hkp": "滑鼠 游標 硬碟"
      }
    },
    {
      "id": "hk_computer_phrases_hk2sp",
      "input": "滑鼠 游標 硬碟",
      "expected": {
        "hk2sp": "鼠标 光标 硬盘"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_175_yi_chu_phrase_exceptions_s2t",
      "input": "刚一出戏院 一出剧院 一出电影院 一出机场 一出来 风声一出 一出道 一出城 一出声 太阳一出",
      "expected": {
        "s2t": "剛一出戲院 一出劇院 一出電影院 一出機場 一出來 風聲一出 一出道 一出城 一出聲 太陽一出"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_936_s2twp",
      "input": "市场营销",
      "expected": {
        "s2twp": "市場行銷"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_936_tw2sp",
      "input": "市場行銷",
      "expected": {
        "tw2sp": "市场营销"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_1335",
      "input": "幷州",
      "expected": {
        "t2s": "并州"
      }
    },
    {
      "id": "BYVoid_OpenCC_Issue_475_mixed_script_input",
      "input": "录像带 錄像带 录像帶 錄像帶 数据库 数据庫 数據库 数據庫 數据库 數据庫 數據库 數據庫",
      "expected": {
        "s2twp": "錄影帶 錄影帶 錄影帶 錄影帶 資料庫 資料庫 資料庫 資料庫 資料庫 資料庫 資料庫 資料庫"
      }
    },
    {
      "id": "s2twp_2char_twphrases_segmentation_xin_pian",
      "input": "芯片面积",
      "expected": {
        "s2twp": "晶片面積"
      }
    }
  ]
}