From 022154c3e18d5cc30db2d056a5015405c0cbdcae Mon Sep 17 00:00:00 2001 From: toasted-nutbread Date: Tue, 23 Mar 2021 20:54:04 -0400 Subject: [PATCH] Test AnkiNoteBuilder (#1550) * Add test for AnkiNoteBuilder * Add test data --- test/data/anki-note-builder-test-results.json | 2479 +++++++++++++++++ test/test-anki-note-builder.js | 226 ++ 2 files changed, 2705 insertions(+) create mode 100644 test/data/anki-note-builder-test-results.json create mode 100644 test/test-anki-note-builder.js diff --git a/test/data/anki-note-builder-test-results.json b/test/data/anki-note-builder-test-results.json new file mode 100644 index 00000000..9b7c7f65 --- /dev/null +++ b/test/data/anki-note-builder-test-results.json @@ -0,0 +1,2479 @@ +[ + { + "name": "Basic kanji test 1", + "results": [ + { + "character": "打", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "glossary": "
  1. meaning1
  2. meaning2
  3. meaning3
  4. meaning4
  5. meaning5
", + "kunyomi": "う.つ, う.ち-, ぶ.つ", + "onyomi": "ダ, ダアス", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "stroke-count": "Stroke count: Unknown", + "tags": "", + "url": "url:" + } + ] + }, + { + "name": "Basic kanji test 2", + "results": [ + { + "character": "込", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "込", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "glossary": "
  1. meaning1
  2. meaning2
  3. meaning3
  4. meaning4
  5. meaning5
", + "kunyomi": "-こ.む, こ.む, こ.み, -こ.み, こ.める", + "onyomi": "", + "screenshot": "", + "sentence": "cloze-prefix込cloze-suffix", + "stroke-count": "Stroke count: Unknown", + "tags": "", + "url": "url:" + } + ] + }, + { + "name": "Missing kanji test", + "results": [] + }, + { + "name": "Find term using expression text 1", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using expression text 2", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打つ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打つcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打つ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打つcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打つ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打つcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打つ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打つcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using expression text 3", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using expression text 4", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "画像", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "画像", + "frequencies": "", + "furigana": "画像がぞう", + "furigana-plain": "画像[がぞう]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "がぞう", + "screenshot": "", + "sentence": "cloze-prefix画像cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using reading 1", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "だ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefixだcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using reading 2", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "ダース", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefixダースcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using reading 3", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うつ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefixうつcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うつ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefixうつcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using reading 4", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "ぶつ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefixぶつcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "ぶつ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefixぶつcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using reading 5", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うちこむ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefixうちこむcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うちこむ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefixうちこむcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefixうちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefixうちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using reading 6", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "ぶちこむ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefixぶちこむcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "ぶちこむ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefixぶちこむcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "ぶち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefixぶちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "ぶち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefixぶちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Find term using reading 7", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "がぞう", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "画像", + "frequencies": "", + "furigana": "画像がぞう", + "furigana-plain": "画像[がぞう]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "がぞう", + "screenshot": "", + "sentence": "cloze-prefixがぞうcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Missing term 1", + "results": [] + }, + { + "name": "Missing term 2", + "results": [] + }, + { + "name": "Search using different modes", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Search using different modes", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2)
    • definition13
    • definition14
  2. (tag1, tag2, Test Dictionary 2)
    • definition15
    • definition16
", + "glossary-brief": "
    • definition13
    • definition14
    • definition15
    • definition16
", + "glossary-no-dictionary": "
  1. (tag1, tag2)
    • definition13
    • definition14
  2. (tag1, tag2)
    • definition15
    • definition16
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2)
    • definition17
    • definition18
  2. (tag1, tag2, Test Dictionary 2)
    • definition19
    • definition20
", + "glossary-brief": "
    • definition17
    • definition18
    • definition19
    • definition20
", + "glossary-no-dictionary": "
  1. (tag1, tag2)
    • definition17
    • definition18
  2. (tag1, tag2)
    • definition19
    • definition20
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2)
    • definition5
    • definition6
  2. (tag1, tag2, Test Dictionary 2)
    • definition7
    • definition8
", + "glossary-brief": "
    • definition5
    • definition6
    • definition7
    • definition8
", + "glossary-no-dictionary": "
  1. (tag1, tag2)
    • definition5
    • definition6
  2. (tag1, tag2)
    • definition7
    • definition8
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2)
    • definition9
    • definition10
  2. (tag1, tag2, Test Dictionary 2)
    • definition11
    • definition12
", + "glossary-brief": "
    • definition9
    • definition10
    • definition11
    • definition12
", + "glossary-no-dictionary": "
  1. (tag1, tag2)
    • definition9
    • definition10
  2. (tag1, tag2)
    • definition11
    • definition12
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Search using different modes", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[う]ち 込[こ]む打[ぶ]ち 込[こ]む", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2) (うちこむ only)
    • definition13
    • definition14
  2. (tag1, tag2, Test Dictionary 2) (ぶちこむ only)
    • definition17
    • definition18
  3. (tag1, tag2, Test Dictionary 2) (うちこむ only)
    • definition15
    • definition16
  4. (tag1, tag2, Test Dictionary 2) (ぶちこむ only)
    • definition19
    • definition20
", + "glossary-brief": "
    • definition13
    • definition14
    • definition17
    • definition18
    • definition15
    • definition16
    • definition19
    • definition20
", + "glossary-no-dictionary": "
  1. (tag1, tag2) (うちこむ only)
    • definition13
    • definition14
  2. (tag1, tag2) (ぶちこむ only)
    • definition17
    • definition18
  3. (tag1, tag2) (うちこむ only)
    • definition15
    • definition16
  4. (tag1, tag2) (ぶちこむ only)
    • definition19
    • definition20
", + "pitch-accents": "
  1. (うちこむ only)
  2. (うちこむ only)
  3. (ぶちこむ only)
  4. (ぶちこむ only)
", + "pitch-accent-graphs": "
  1. (うちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. (うちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
  3. (ぶちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
  4. (ぶちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. (うちこむ only) [0]
  2. (うちこむ only) [3]
  3. (ぶちこむ only) [0]
  4. (ぶちこむ only) [3]
", + "reading": "うちこむ、ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[う]つ打[ぶ]つ", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2) (うつ only)
    • definition5
    • definition6
  2. (tag1, tag2, Test Dictionary 2) (ぶつ only)
    • definition9
    • definition10
  3. (tag1, tag2, Test Dictionary 2) (うつ only)
    • definition7
    • definition8
  4. (tag1, tag2, Test Dictionary 2) (ぶつ only)
    • definition11
    • definition12
", + "glossary-brief": "
    • definition5
    • definition6
    • definition9
    • definition10
    • definition7
    • definition8
    • definition11
    • definition12
", + "glossary-no-dictionary": "
  1. (tag1, tag2) (うつ only)
    • definition5
    • definition6
  2. (tag1, tag2) (ぶつ only)
    • definition9
    • definition10
  3. (tag1, tag2) (うつ only)
    • definition7
    • definition8
  4. (tag1, tag2) (ぶつ only)
    • definition11
    • definition12
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ、ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Search inflected term", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込んでいませんでした", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "-te « progressive or perfect « polite past negative", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込んでいませんでしたcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込んでいませんでした", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "-te « progressive or perfect « polite past negative", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込んでいませんでしたcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込んでいませんでした", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "-te « progressive or perfect « polite past negative", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込んでいませんでしたcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち込んでいませんでした", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "-te « progressive or perfect « polite past negative", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打ち込んでいませんでしたcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Ignore text inside parentheses", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち込(こ)む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ち込(こ)むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち込(こ)む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ち込(こ)むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち込(こ)む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ち込(こ)むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち込(こ)む", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ち込(こ)むcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打(う)ち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix打(う)ちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "打", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix打cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Remove parentheses around text", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)(込)(む)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)(込)(む)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)(込)(む)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)(込)(む)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)(込)(む)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[う]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "うちこむ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)(込)(む)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)(込)(む)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "打[ぶ]ち 込[こ]む", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "
", + "pitch-accent-graphs": "
  1. \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. [0]
  2. [3]
", + "reading": "ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)(込)(む)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[う]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)(ち)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "つ", + "furigana-plain": "打[ぶ]つ", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ぶつ", + "screenshot": "", + "sentence": "cloze-prefix(打)(ち)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[だ]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "だ", + "screenshot": "", + "sentence": "cloze-prefix(打)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "(打)", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打", + "frequencies": "", + "furigana": "ダース", + "furigana-plain": "打[ダース]", + "glossary": "
(tag1, tag2, Test Dictionary 2)
", + "glossary-brief": "
", + "glossary-no-dictionary": "
(tag1, tag2)
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "ダース", + "screenshot": "", + "sentence": "cloze-prefix(打)cloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + }, + { + "name": "Test non-empty replacement", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "test", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "読む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "読[よ]む", + "glossary": "
(popular, Test Dictionary 2) to read
", + "glossary-brief": "
to read
", + "glossary-no-dictionary": "
(popular) to read
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "よむ", + "screenshot": "", + "sentence": "cloze-prefixtestcloze-suffix", + "tags": "popular", + "url": "url:" + } + ] + }, + { + "name": "Test non-empty replacement at end", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "つtest", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "強み", + "frequencies": "", + "furigana": "つよみ", + "furigana-plain": "強[つよ]み", + "glossary": "
(popular, Test Dictionary 2) strong point
", + "glossary-brief": "
strong point
", + "glossary-no-dictionary": "
(popular) strong point
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "つよみ", + "screenshot": "", + "sentence": "cloze-prefixつtestcloze-suffix", + "tags": "popular", + "url": "url:" + } + ] + }, + { + "name": "Test non-empty replacement at start", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "testました", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "polite past", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "読む", + "frequencies": "", + "furigana": "む", + "furigana-plain": "読[よ]む", + "glossary": "
(popular, Test Dictionary 2) to read
", + "glossary-brief": "
to read
", + "glossary-no-dictionary": "
(popular) to read
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "よむ", + "screenshot": "", + "sentence": "cloze-prefixtestましたcloze-suffix", + "tags": "popular", + "url": "url:" + } + ] + }, + { + "name": "Search merged mode with non-primary definitions", + "results": [ + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うちこむ", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打ち込む", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[う]ち 込[こ]む打[ぶ]ち 込[こ]む", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2) (うちこむ only)
    • definition13
    • definition14
  2. (tag1, tag2, Test Dictionary 2) (ぶちこむ only)
    • definition17
    • definition18
  3. (tag1, tag2, Test Dictionary 2) (うちこむ only)
    • definition15
    • definition16
  4. (tag1, tag2, Test Dictionary 2) (ぶちこむ only)
    • definition19
    • definition20
", + "glossary-brief": "
    • definition13
    • definition14
    • definition17
    • definition18
    • definition15
    • definition16
    • definition19
    • definition20
", + "glossary-no-dictionary": "
  1. (tag1, tag2) (うちこむ only)
    • definition13
    • definition14
  2. (tag1, tag2) (ぶちこむ only)
    • definition17
    • definition18
  3. (tag1, tag2) (うちこむ only)
    • definition15
    • definition16
  4. (tag1, tag2) (ぶちこむ only)
    • definition19
    • definition20
", + "pitch-accents": "
  1. (うちこむ only)
  2. (うちこむ only)
  3. (ぶちこむ only)
  4. (ぶちこむ only)
", + "pitch-accent-graphs": "
  1. (うちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
  2. (うちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
  3. (ぶちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
  4. (ぶちこむ only) \n \n \n \n \n \n \n \n \n \n \n \n \n
", + "pitch-accent-positions": "
  1. (うちこむ only) [0]
  2. (うちこむ only) [3]
  3. (ぶちこむ only) [0]
  4. (ぶちこむ only) [3]
", + "reading": "うちこむ、ぶちこむ", + "screenshot": "", + "sentence": "cloze-prefixうちこむcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + }, + { + "audio": "", + "clipboard-image": "", + "clipboard-text": "", + "cloze-body": "うち", + "cloze-prefix": "cloze-prefix", + "cloze-suffix": "cloze-suffix", + "conjugation": "masu stem", + "dictionary": "Test Dictionary 2", + "document-title": "title", + "expression": "打つ", + "frequencies": "", + "furigana": "", + "furigana-plain": "打[う]つ打[ぶ]つ", + "glossary": "
  1. (tag1, tag2, Test Dictionary 2) (うつ only)
    • definition5
    • definition6
  2. (tag1, tag2, Test Dictionary 2) (ぶつ only)
    • definition9
    • definition10
  3. (tag1, tag2, Test Dictionary 2) (うつ only)
    • definition7
    • definition8
  4. (tag1, tag2, Test Dictionary 2) (ぶつ only)
    • definition11
    • definition12
", + "glossary-brief": "
    • definition5
    • definition6
    • definition9
    • definition10
    • definition7
    • definition8
    • definition11
    • definition12
", + "glossary-no-dictionary": "
  1. (tag1, tag2) (うつ only)
    • definition5
    • definition6
  2. (tag1, tag2) (ぶつ only)
    • definition9
    • definition10
  3. (tag1, tag2) (うつ only)
    • definition7
    • definition8
  4. (tag1, tag2) (ぶつ only)
    • definition11
    • definition12
", + "pitch-accents": "No pitch accent data", + "pitch-accent-graphs": "No pitch accent data", + "pitch-accent-positions": "No pitch accent data", + "reading": "うつ、ぶつ", + "screenshot": "", + "sentence": "cloze-prefixうちcloze-suffix", + "tags": "tag1, tag2", + "url": "url:" + } + ] + } +] \ No newline at end of file diff --git a/test/test-anki-note-builder.js b/test/test-anki-note-builder.js new file mode 100644 index 00000000..f28bebef --- /dev/null +++ b/test/test-anki-note-builder.js @@ -0,0 +1,226 @@ +/* + * Copyright (C) 2021 Yomichan Authors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +const fs = require('fs'); +const path = require('path'); +const assert = require('assert'); +const {testMain} = require('../dev/util'); +const {TranslatorVM} = require('../dev/translator-vm'); + + +function clone(value) { + return JSON.parse(JSON.stringify(value)); +} + +async function createVM() { + const vm = new TranslatorVM(); + + const dictionaryDirectory = path.join(__dirname, 'data', 'dictionaries', 'valid-dictionary2'); + await vm.prepare(dictionaryDirectory, 'Test Dictionary 2'); + + vm.execute([ + 'js/data/anki-note-builder.js', + 'js/data/anki-util.js', + 'js/templates/template-renderer.js', + 'lib/handlebars.min.js' + ]); + + const [ + JapaneseUtil, + TemplateRenderer, + AnkiNoteData, + AnkiNoteBuilder + ] = vm.get([ + 'JapaneseUtil', + 'TemplateRenderer', + 'AnkiNoteData', + 'AnkiNoteBuilder' + ]); + + class TemplateRendererProxy { + constructor() { + const japaneseUtil = new JapaneseUtil(null); + this._templateRenderer = new TemplateRenderer(japaneseUtil); + this._templateRenderer.registerDataType('ankiNote', { + modifier: ({data, marker}) => new AnkiNoteData(japaneseUtil, marker, data).createPublic() + }); + } + + async render(template, data, type) { + return await this._templateRenderer.render(template, data, type); + } + } + vm.set({TemplateRendererProxy}); + + return {vm, AnkiNoteBuilder}; +} + +function getFieldMarkers(type) { + switch (type) { + case 'terms': + return [ + 'audio', + 'clipboard-image', + 'clipboard-text', + 'cloze-body', + 'cloze-prefix', + 'cloze-suffix', + 'conjugation', + 'dictionary', + 'document-title', + 'expression', + 'frequencies', + 'furigana', + 'furigana-plain', + 'glossary', + 'glossary-brief', + 'glossary-no-dictionary', + 'pitch-accents', + 'pitch-accent-graphs', + 'pitch-accent-positions', + 'reading', + 'screenshot', + 'sentence', + 'tags', + 'url' + ]; + case 'kanji': + return [ + 'character', + 'clipboard-image', + 'clipboard-text', + 'cloze-body', + 'cloze-prefix', + 'cloze-suffix', + 'dictionary', + 'document-title', + 'glossary', + 'kunyomi', + 'onyomi', + 'screenshot', + 'sentence', + 'stroke-count', + 'tags', + 'url' + ]; + default: + return []; + } +} + +async function getRenderResults(definitions, type, mode, templates, AnkiNoteBuilder, write) { + const markers = getFieldMarkers(type); + const fields = []; + for (const marker of markers) { + fields.push([marker, `{${marker}}`]); + } + + const clozePrefix = 'cloze-prefix'; + const clozeSuffix = 'cloze-suffix'; + const results = []; + for (const definition of definitions) { + const source = definition.type === 'kanji' ? definition.character : definition.rawSource; + const ankiNoteBuilder = new AnkiNoteBuilder(); + const context = { + url: 'url:', + sentence: { + text: `${clozePrefix}${source}${clozeSuffix}`, + offset: clozePrefix.length + }, + documentTitle: 'title' + }; + const errors = []; + const noteFields = (await ankiNoteBuilder.createNote({ + definition, + mode: null, + context, + templates, + deckName: 'deckName', + modelName: 'modelName', + fields, + tags: ['yomichan'], + injectedMedia: null, + checkForDuplicates: true, + duplicateScope: 'collection', + resultOutputMode: mode, + glossaryLayoutMode: 'default', + compactTags: false, + errors + })).fields; + if (!write) { + assert.deepStrictEqual(errors, []); + } + results.push(noteFields); + } + + return results; +} + + +async function main() { + const write = (process.argv[2] === '--write'); + + const {vm, AnkiNoteBuilder} = await createVM(); + + const testInputsFilePath = path.join(__dirname, 'data', 'translator-test-inputs.json'); + const {optionsPresets, tests} = JSON.parse(fs.readFileSync(testInputsFilePath, {encoding: 'utf8'})); + + const testResults1FilePath = path.join(__dirname, 'data', 'anki-note-builder-test-results.json'); + const expectedResults1 = JSON.parse(fs.readFileSync(testResults1FilePath, {encoding: 'utf8'})); + const actualResults1 = []; + + const templates = fs.readFileSync(path.join(__dirname, '..', 'ext', 'data/templates/default-anki-field-templates.handlebars'), {encoding: 'utf8'}); + + for (let i = 0, ii = tests.length; i < ii; ++i) { + const test = tests[i]; + const expected1 = expectedResults1[i]; + switch (test.func) { + case 'findTerms': + { + const {name, mode, text} = test; + const options = vm.buildOptions(optionsPresets, test.options); + const [definitions] = clone(await vm.translator.findTerms(mode, text, options)); + const results = clone(await getRenderResults(definitions, 'terms', mode, templates, AnkiNoteBuilder, write)); + actualResults1.push({name, results}); + if (!write) { + assert.deepStrictEqual(results, expected1.results); + } + } + break; + case 'findKanji': + { + const {name, text} = test; + const options = vm.buildOptions(optionsPresets, test.options); + const definitions = clone(await vm.translator.findKanji(text, options)); + const results = clone(await getRenderResults(definitions, 'kanji', null, templates, AnkiNoteBuilder, write)); + actualResults1.push({name, results}); + if (!write) { + assert.deepStrictEqual(results, expected1.results); + } + } + break; + } + } + + if (write) { + // Use 2 indent instead of 4 to save a bit of file size + fs.writeFileSync(testResults1FilePath, JSON.stringify(actualResults1, null, 2), {encoding: 'utf8'}); + } +} + + +if (require.main === module) { testMain(main); }