/Desu.Tests/Japanese/TestEntries.cs

https://gitlab.com/Wacton/Desu · C# · 699 lines · 601 code · 98 blank · 0 comment · 9 complexity · f4a671689e4d397954d22c3bff0964d4 MD5 · raw file

  1. namespace Wacton.Desu.Tests.Japanese;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Wacton.Desu.Enums;
  5. using Wacton.Desu.Japanese;
  6. public static class TestEntries
  7. {
  8. public static TestEntry 食べる()
  9. {
  10. var kanji1 = new TestKanji
  11. {
  12. Text = "食べる",
  13. Priorities = new List<Priority> { Priority("ichi1"), Priority("news2"), Priority("nf25") }
  14. };
  15. var kanji2 = new TestKanji
  16. {
  17. Text = "喰べる",
  18. Informations = new List<KanjiInformation> { KanjiInformation("word containing irregular kanji usage") }
  19. };
  20. var reading1 = new TestReading
  21. {
  22. Text = "たべる",
  23. Priorities = new List<Priority> { Priority("ichi1"), Priority("news2"), Priority("nf25") }
  24. };
  25. var sense1 = new TestSense
  26. {
  27. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("Ichidan verb"), PartOfSpeech("transitive verb") },
  28. Glosses = new List<Gloss> { new("to eat", Language("eng"), null, null) }
  29. };
  30. var sense2 = new TestSense
  31. {
  32. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("Ichidan verb"), PartOfSpeech("transitive verb") },
  33. Glosses = new List<Gloss> {
  34. new("to live on (e.g. a salary)", Language("eng"), null, null),
  35. new("to live off", Language("eng"), null, null),
  36. new("to subsist on", Language("eng"), null, null),
  37. }
  38. };
  39. var sense3 = new TestSense
  40. {
  41. Glosses = new List<Gloss> {
  42. new("eten", Language("dut"), null, null),
  43. new("opeten", Language("dut"), null, null),
  44. new("consumeren", Language("dut"), null, null),
  45. new("gebruiken", Language("dut"), null, null),
  46. new("nemen", Language("dut"), null, null),
  47. new("nuttigen", Language("dut"), null, null),
  48. new("verorberen", Language("dut"), null, null),
  49. new("naar binnen werken", Language("dut"), null, null),
  50. new("wegwerken", Language("dut"), null, null),
  51. new("{inform.} bikken", Language("dut"), null, null),
  52. new("{inform.} binnenslaan", Language("dut"), null, null),
  53. new("{i.h.b.} zich voeden met", Language("dut"), null, null),
  54. new("{uitdr.} de inwendige mens versterken", Language("dut"), null, null)
  55. }
  56. };
  57. var sense4 = new TestSense
  58. {
  59. Glosses = new List<Gloss> {
  60. new("de kost verdienen", Language("dut"), null, null),
  61. new("aan de kost komen", Language("dut"), null, null),
  62. new("in zijn onderhoud voorzien", Language("dut"), null, null),
  63. new("leven (van)", Language("dut"), null, null)
  64. }
  65. };
  66. var sense5 = new TestSense
  67. {
  68. Glosses = new List<Gloss> {
  69. new("manger", Language("fre"), null, null)
  70. }
  71. };
  72. var sense6 = new TestSense
  73. {
  74. Glosses = new List<Gloss> {
  75. new("vivre avec (par ex. un salaire)", Language("fre"), null, null),
  76. new("vivre de (par ex. ses rentes)", Language("fre"), null, null),
  77. new("subsister grâce à", Language("fre"), null, null)
  78. }
  79. };
  80. var sense7 = new TestSense
  81. {
  82. Glosses = new List<Gloss> {
  83. new("essen", Language("ger"), null, null),
  84. new("speisen", Language("ger"), null, null),
  85. new("zu sich nehmen", Language("ger"), null, null),
  86. new("fressen", Language("ger"), null, null),
  87. new("probieren", Language("ger"), null, null),
  88. }
  89. };
  90. var sense8 = new TestSense
  91. {
  92. Glosses = new List<Gloss> {
  93. new("leben von", Language("ger"), null, null),
  94. }
  95. };
  96. var sense9 = new TestSense
  97. {
  98. Glosses = new List<Gloss> {
  99. new("kiesz", Language("hun"), null, null),
  100. }
  101. };
  102. var sense10 = new TestSense
  103. {
  104. Glosses = new List<Gloss> {
  105. new("1) есть", Language("rus"), null, null),
  106. new("2) (перен.) жить, существовать", Language("rus"), null, null),
  107. }
  108. };
  109. var sense11 = new TestSense
  110. {
  111. Glosses = new List<Gloss> {
  112. new("jesti", Language("slv"), null, null),
  113. }
  114. };
  115. var sense12 = new TestSense
  116. {
  117. Glosses = new List<Gloss> {
  118. new("comer", Language("spa"), null, null),
  119. }
  120. };
  121. var sense13 = new TestSense
  122. {
  123. Glosses = new List<Gloss> {
  124. new("äta", Language("swe"), null, null),
  125. }
  126. };
  127. var testEntry = new TestEntry
  128. {
  129. Sequence = 1358280,
  130. Kanjis = new List<IKanji> { kanji1, kanji2 },
  131. Readings = new List<IReading> { reading1 },
  132. Senses = new List<ISense> { sense1, sense2, sense3, sense4, sense5, sense6, sense7, sense8, sense9, sense10, sense11, sense12, sense13 }
  133. };
  134. return testEntry;
  135. }
  136. public static TestEntry ()
  137. {
  138. var kanji1 = new TestKanji
  139. {
  140. Text = "々"
  141. };
  142. var reading1 = new TestReading
  143. {
  144. Text = "のま"
  145. };
  146. var reading2 = new TestReading
  147. {
  148. Text = "ノマ",
  149. IsTrueKanjiReading = false
  150. };
  151. var sense1 = new TestSense
  152. {
  153. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("unclassified") },
  154. CrossReferences = new List<string> { "同の字点" },
  155. Glosses = new List<Gloss> { new("kanji repetition mark", Language("eng"), GlossType("expl"), null) }
  156. };
  157. var sense2 = new TestSense
  158. {
  159. Glosses = new List<Gloss> {
  160. new("teken dat herhaling van de voorafgaande kanji aanduidt; ook dō no jiten 同の字点 genoemd", Language("dut"), null, null),
  161. }
  162. };
  163. var sense3 = new TestSense
  164. {
  165. Glosses = new List<Gloss> {
  166. new("Wiederholungszeichen für Kanji (Laut wird durch Wiederholung manchmal stimmhaft)", Language("ger"), null, null)
  167. }
  168. };
  169. var testEntry = new TestEntry
  170. {
  171. Sequence = 1000060,
  172. Kanjis = new List<IKanji> { kanji1 },
  173. Readings = new List<IReading> { reading1, reading2 },
  174. Senses = new List<ISense> { sense1, sense2, sense3 }
  175. };
  176. return testEntry;
  177. }
  178. public static TestEntry βカロテン()
  179. {
  180. var kanji1 = new TestKanji
  181. {
  182. Text = "βカロテン"
  183. };
  184. var kanji2 = new TestKanji
  185. {
  186. Text = "βカロチン",
  187. };
  188. var kanji3 = new TestKanji
  189. {
  190. Text = "β-カロテン",
  191. };
  192. var kanji4 = new TestKanji
  193. {
  194. Text = "β-カロチン",
  195. };
  196. var reading1 = new TestReading
  197. {
  198. Text = "ベータカロテン",
  199. Restriction = new List<string> { "βカロテン", "β-カロテン" }
  200. };
  201. var reading2 = new TestReading
  202. {
  203. Text = "ベータカロチン",
  204. Restriction = new List<string> { "βカロチン", "β-カロチン" }
  205. };
  206. var reading3 = new TestReading
  207. {
  208. Text = "ベタカロテン",
  209. Restriction = new List<string> { "βカロテン", "β-カロテン" },
  210. Informations = new List<ReadingInformation> { ReadingInformation("word containing irregular kana usage") }
  211. };
  212. var reading4 = new TestReading
  213. {
  214. Text = "ベタカロチン",
  215. Restriction = new List<string> { "βカロチン", "β-カロチン" },
  216. Informations = new List<ReadingInformation> { ReadingInformation("word containing irregular kana usage") }
  217. };
  218. var sense1 = new TestSense
  219. {
  220. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  221. Glosses = new List<Gloss> { new("beta-carotene", Language("eng"), null, null) }
  222. };
  223. var testEntry = new TestEntry
  224. {
  225. Sequence = 1149580,
  226. Kanjis = new List<IKanji> { kanji1, kanji2, kanji3, kanji4 },
  227. Readings = new List<IReading> { reading1, reading2, reading3, reading4 },
  228. Senses = new List<ISense> { sense1 }
  229. };
  230. return testEntry;
  231. }
  232. public static TestEntry Withコロナ()
  233. {
  234. var kanji1 = new TestKanji
  235. {
  236. Text = "withコロナ"
  237. };
  238. var reading1 = new TestReading
  239. {
  240. Text = "ウィズコロナ",
  241. };
  242. var reading2 = new TestReading
  243. {
  244. Text = "ウイズコロナ",
  245. };
  246. var sense1 = new TestSense
  247. {
  248. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  249. Miscellanea = new List<Miscellaneous> { Miscellaneous("word usually written using kana alone") },
  250. LoanwordSources = new List<LoanwordGloss> { new("with corona", Language("eng"), null, null, false, true) },
  251. Glosses = new List<Gloss> {
  252. new("coexisting with the coronavirus", Language("eng"), null, null),
  253. new("life during the COVID-19 pandemic", Language("eng"), null, null)
  254. }
  255. };
  256. var testEntry = new TestEntry
  257. {
  258. Sequence = 2845709,
  259. Kanjis = new List<IKanji> { kanji1 },
  260. Readings = new List<IReading> { reading1, reading2 },
  261. Senses = new List<ISense> { sense1 }
  262. };
  263. return testEntry;
  264. }
  265. public static TestEntry サーターアンダギー()
  266. {
  267. var reading1 = new TestReading
  268. {
  269. Text = "サーターアンダギー",
  270. };
  271. var reading2 = new TestReading
  272. {
  273. Text = "サーターアンダーギー",
  274. };
  275. var reading3 = new TestReading
  276. {
  277. Text = "サータアンダーギー",
  278. };
  279. var reading4 = new TestReading
  280. {
  281. Text = "さーたーあんだぎー",
  282. };
  283. var sense1 = new TestSense
  284. {
  285. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  286. Fields = new List<Field> { Field("food, cooking") },
  287. Dialects = new List<Dialect> { Dialect("Ryuukyuu-ben") },
  288. Glosses = new List<Gloss> {
  289. new("sata andagi", Language("eng"), null, null),
  290. new("Okinawan sweet deep-fried bun similar to a doughnut", Language("eng"), GlossType("expl"), null)
  291. }
  292. };
  293. var sense2 = new TestSense
  294. {
  295. Glosses = new List<Gloss> {
  296. new("Sātāandagī", Language("ger"), null, null),
  297. new("okinawaisches Schmalzgebackenes", Language("ger"), null, null)
  298. }
  299. };
  300. var testEntry = new TestEntry
  301. {
  302. Sequence = 1985540,
  303. Readings = new List<IReading> { reading1, reading2, reading3, reading4 },
  304. Senses = new List<ISense> { sense1, sense2 }
  305. };
  306. return testEntry;
  307. }
  308. public static TestEntry 九百()
  309. {
  310. var kanji1 = new TestKanji
  311. {
  312. Text = "900",
  313. };
  314. var kanji2 = new TestKanji
  315. {
  316. Text = "九百",
  317. };
  318. var kanji3 = new TestKanji
  319. {
  320. Text = "9百",
  321. };
  322. var kanji4 = new TestKanji
  323. {
  324. Text = "九〇〇",
  325. };
  326. var reading1 = new TestReading
  327. {
  328. Text = "きゅうひゃく",
  329. };
  330. var reading2 = new TestReading
  331. {
  332. Text = "くひゃく",
  333. };
  334. var sense1 = new TestSense
  335. {
  336. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("numeric") },
  337. Glosses = new List<Gloss> {
  338. new("900", Language("eng"), null, null),
  339. new("nine hundred", Language("eng"), null, null)
  340. }
  341. };
  342. var sense2 = new TestSense
  343. {
  344. KanjiRestriction = new List<string> { "九百" },
  345. ReadingRestriction = new List<string> { "くひゃく" },
  346. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  347. Miscellanea = new List<Miscellaneous> { Miscellaneous("archaism"), Miscellaneous("derogatory") },
  348. Glosses = new List<Gloss> {
  349. new("fool", Language("eng"), null, null),
  350. new("idiot", Language("eng"), null, null)
  351. }
  352. };
  353. var sense3 = new TestSense
  354. {
  355. Glosses = new List<Gloss> {
  356. new("neunhundert", Language("ger"), null, null),
  357. new("900", Language("ger"), null, null)
  358. }
  359. };
  360. var sense4 = new TestSense
  361. {
  362. Glosses = new List<Gloss> { new("девятьсот", Language("rus"), null, null) }
  363. };
  364. var sense5 = new TestSense
  365. {
  366. Glosses = new List<Gloss> {
  367. new("novecientos", Language("spa"), null, null),
  368. new("900", Language("spa"), null, null)
  369. }
  370. };
  371. var testEntry = new TestEntry
  372. {
  373. Sequence = 2220410,
  374. Kanjis = new List<IKanji> { kanji1, kanji2, kanji3, kanji4 },
  375. Readings = new List<IReading> { reading1, reading2 },
  376. Senses = new List<ISense> { sense1, sense2, sense3, sense4, sense5 }
  377. };
  378. return testEntry;
  379. }
  380. public static TestEntry 蘇格蘭()
  381. {
  382. var kanji1 = new TestKanji
  383. {
  384. Text = "蘇格蘭",
  385. Informations = new List<KanjiInformation> {
  386. KanjiInformation("ateji (phonetic) reading"),
  387. KanjiInformation("rarely-used kanji form")
  388. }
  389. };
  390. var reading1 = new TestReading
  391. {
  392. Text = "スコットランド",
  393. };
  394. var sense1 = new TestSense
  395. {
  396. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  397. Miscellanea = new List<Miscellaneous> { Miscellaneous("word usually written using kana alone") },
  398. Glosses = new List<Gloss> { new("Scotland", Language("eng"), null, null) }
  399. };
  400. var sense2 = new TestSense
  401. {
  402. Glosses = new List<Gloss> {
  403. new("Schotland", Language("dut"), null, null),
  404. new("{afk.} Sch.", Language("dut"), null, null)
  405. }
  406. };
  407. var sense3 = new TestSense
  408. {
  409. Glosses = new List<Gloss> {
  410. new("Schottland (Nordteil Großbritanniens einschl. der Hebriden, Orkney- und Shetland-Inseln)", Language("ger"), null, null),
  411. }
  412. };
  413. var sense4 = new TestSense
  414. {
  415. Glosses = new List<Gloss> { new("Шотландия", Language("rus"), null, null) }
  416. };
  417. var sense5 = new TestSense
  418. {
  419. Glosses = new List<Gloss> { new("escocia", Language("spa"), null, null) }
  420. };
  421. var sense6 = new TestSense
  422. {
  423. Glosses = new List<Gloss> { new("Skottland", Language("swe"), null, null) }
  424. };
  425. var testEntry = new TestEntry
  426. {
  427. Sequence = 1069140,
  428. Kanjis = new List<IKanji> { kanji1 },
  429. Readings = new List<IReading> { reading1 },
  430. Senses = new List<ISense> { sense1, sense2, sense3, sense4, sense5, sense6 }
  431. };
  432. return testEntry;
  433. }
  434. public static TestEntry 羊水()
  435. {
  436. var kanji1 = new TestKanji
  437. {
  438. Text = "羊水",
  439. Priorities = new List<Priority> { Priority("news2"), Priority("nf33") }
  440. };
  441. var reading1 = new TestReading
  442. {
  443. Text = "ようすい",
  444. Priorities = new List<Priority> { Priority("news2"), Priority("nf33") }
  445. };
  446. var sense1 = new TestSense
  447. {
  448. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  449. Fields = new List<Field> { Field("pathology") },
  450. Glosses = new List<Gloss> { new("amniotic fluid", Language("eng"), null, null) }
  451. };
  452. var sense2 = new TestSense
  453. {
  454. Glosses = new List<Gloss> {
  455. new("Fruchtwasser", Language("ger"), null, null),
  456. new("Amnionflüssigkeit", Language("ger"), null, null),
  457. new("Liquor amnii", Language("ger"), null, null)
  458. }
  459. };
  460. var sense3 = new TestSense
  461. {
  462. Glosses = new List<Gloss> {
  463. new("fostervatten", Language("swe"), null, null),
  464. }
  465. };
  466. var testEntry = new TestEntry
  467. {
  468. Sequence = 1662330,
  469. Kanjis = new List<IKanji> { kanji1 },
  470. Readings = new List<IReading> { reading1 },
  471. Senses = new List<ISense> { sense1, sense2, sense3 }
  472. };
  473. return testEntry;
  474. }
  475. public static TestEntry タチ()
  476. {
  477. var reading1 = new TestReading
  478. {
  479. Text = "タチ",
  480. };
  481. var sense1 = new TestSense
  482. {
  483. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  484. CrossReferences = new List<string> { "攻め・2", "受け・5" },
  485. Antonyms = new List<string> { "猫・6" },
  486. Miscellanea = new List<Miscellaneous> { Miscellaneous("colloquialism") },
  487. Glosses = new List<Gloss> { new("dominant partner of a homosexual relationship", Language("eng"), null, null) }
  488. };
  489. var testEntry = new TestEntry
  490. {
  491. Sequence = 2180730,
  492. Readings = new List<IReading> { reading1 },
  493. Senses = new List<ISense> { sense1 }
  494. };
  495. return testEntry;
  496. }
  497. public static TestEntry コンビナートキャンペーン()
  498. {
  499. var reading1 = new TestReading
  500. {
  501. Text = "コンビナートキャンペーン",
  502. };
  503. var sense1 = new TestSense
  504. {
  505. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("noun (common) (futsuumeishi)") },
  506. LoanwordSources = new List<LoanwordGloss> {
  507. new("kombinat", Language("rus"), null, null, true, false),
  508. new("campaign", Language("eng"), null, null, true, false)
  509. },
  510. Glosses = new List<Gloss> { new("industrial campaign", Language("eng"), null, null) }
  511. };
  512. var sense2 = new TestSense
  513. {
  514. Glosses = new List<Gloss> { new("industrieübergreifende Werbekampagne", Language("ger"), null, null) }
  515. };
  516. var testEntry = new TestEntry
  517. {
  518. Sequence = 1053260,
  519. Readings = new List<IReading> { reading1 },
  520. Senses = new List<ISense> { sense1, sense2 }
  521. };
  522. return testEntry;
  523. }
  524. public static TestEntry ()
  525. {
  526. var reading1 = new TestReading
  527. {
  528. Text = "ヽ",
  529. };
  530. var sense1 = new TestSense
  531. {
  532. PartsOfSpeech = new List<PartOfSpeech> { PartOfSpeech("unclassified") },
  533. CrossReferences = new List<string> { "一の字点" },
  534. Glosses = new List<Gloss> { new("repetition mark in katakana", Language("eng"), GlossType("expl"), null) }
  535. };
  536. var sense2 = new TestSense
  537. {
  538. Glosses = new List<Gloss> { new("hitotsuten 一つ点: teken dat herhaling van het voorafgaande katakana-schriftteken aangeeft", Language("dut"), null, null) }
  539. };
  540. var testEntry = new TestEntry
  541. {
  542. Sequence = 1000000,
  543. Readings = new List<IReading> { reading1 },
  544. Senses = new List<ISense> { sense1, sense2 }
  545. };
  546. return testEntry;
  547. }
  548. public static TestEntry FullObject()
  549. {
  550. return new TestEntry
  551. {
  552. Sequence = 999999999,
  553. Kanjis = new []
  554. {
  555. new TestKanji
  556. {
  557. Text = null,
  558. Informations = new []{ Enums.KanjiInformation.RarelyUsedKanji },
  559. Priorities = new []{ Enums.Priority.SpecialCommon2 }
  560. }
  561. },
  562. Readings = new []
  563. {
  564. new TestReading
  565. {
  566. Text = null,
  567. IsTrueKanjiReading = true,
  568. Restriction = new []{"[Restriction]"},
  569. Informations = new []{ Enums.ReadingInformation.OutdatedKana },
  570. Priorities = new []{ Enums.Priority.SpecialCommon2 }
  571. }
  572. },
  573. Senses = new []
  574. {
  575. new TestSense
  576. {
  577. KanjiRestriction = new []{ "[KanjiRestriction]" },
  578. ReadingRestriction = new []{ "[ReadingRestriction]" },
  579. PartsOfSpeech = new []{ Enums.PartOfSpeech.VerbUnspecified },
  580. CrossReferences = new []{ "[CrossReference]" },
  581. Antonyms = new []{ "[Antonym]" },
  582. Fields = new []{ Enums.Field.Zoology },
  583. Miscellanea = new []{ Enums.Miscellaneous.Yojijukugo },
  584. Informations = new []{ "[Information]" },
  585. LoanwordSources = new[] { new LoanwordGloss("term", Enums.Language.Yiddish, Enums.GlossType.Trademark, "gender", true, true) },
  586. Dialects = new []{ Enums.Dialect.Tsugaru },
  587. Glosses = new []{ new Gloss("term", Enums.Language.English, Enums.GlossType.Trademark, "gender") }
  588. }
  589. }
  590. };
  591. }
  592. private static Dialect Dialect(string code) => Enumeration.GetAll<Dialect>().Single(x => x.Code == code);
  593. private static Field Field(string code) => Enumeration.GetAll<Field>().Single(x => x.Code == code);
  594. private static GlossType GlossType(string code) => Enumeration.GetAll<GlossType>().Single(x => x.Code == code);
  595. private static Language Language(string code) => Enumeration.GetAll<Language>().Single(x => x.ThreeLetterCode == code);
  596. private static KanjiInformation KanjiInformation(string code) => Enumeration.GetAll<KanjiInformation>().Single(x => x.Code == code);
  597. private static Miscellaneous Miscellaneous(string code) => Enumeration.GetAll<Miscellaneous>().Single(x => x.Code == code);
  598. private static PartOfSpeech PartOfSpeech(string code) => Enumeration.GetAll<PartOfSpeech>().Single(x => x.Code == code);
  599. private static Priority Priority(string code) => Enumeration.GetAll<Priority>().Single(x => x.Code == code);
  600. private static ReadingInformation ReadingInformation(string code) => Enumeration.GetAll<ReadingInformation>().Single(x => x.Code == code);
  601. }