public PartialWordLookup(JMDictLookup jmDictLookup, IRadicalSearcher searcher, KanjiRadicalLookup lookup)
 {
     this.searcher = searcher;
     this.lookup   = lookup;
     allWords      = string.Join("", jmDictLookup.AllEntries()
                                 .SelectMany(entry => entry.KanjiEntries.Select(k => k.Kanji).Concat(entry.ReadingEntries.Select(r => r.Reading)))
                                 .Distinct()
                                 .Select(word => start + word + end));
 }
 public void Setup()
 {
     this.kanjiDict = KanjiDict.Create(Path.Combine(TestDataPaths.BaseDir, "character", "kanjidic2.xml.gz"));
     using (var reader = File.OpenText(Path.Combine(TestDataPaths.BaseDir, "character", "radkfile1_plus_2_utf8")))
         this.kanjiRadicalLookup = new KanjiRadicalLookup(Radkfile.Parse(reader), kanjiDict);
     this.jmdict = JMDictLookup.Create(TestDataPaths.JMDict, TestDataPaths.JMDictCache);
     this.radkfileKanjiAliveCorrelator =
         new RadkfileKanjiAliveCorrelator(Path.Combine(TestDataPaths.BaseDir, "character",
                                                       "radkfile_kanjilive_correlation_data.txt"));
     this.radicalSearcher = new RadicalSearcher(
         kanjiRadicalLookup.AllRadicals,
         KanjiAliveJapaneseRadicalInformation.Parse(Path.Combine(TestDataPaths.BaseDir, "character", "japanese-radicals.csv")),
         radkfileKanjiAliveCorrelator);
 }
 public KanjiLookupService(
     IKanjiRadicalLookup radicalLookup,
     IRadicalSearcher radicalSearcher,
     IKanjiProperties kanjiProperties,
     KanjiAliveJapaneseRadicalInformation kanjiAliveInfo,
     RadkfileKanjiAliveCorrelator correlator,
     IReadOnlyDictionary <CodePoint, string> textForms = null)
 {
     this.radicalLookup   = radicalLookup;
     this.radicalSearcher = radicalSearcher;
     this.kanjiProperties = kanjiProperties;
     this.kanjiAliveInfo  = CreateKanjiAliveMapping(
         radicalLookup.AllRadicals,
         kanjiAliveInfo,
         correlator);
     this.textForms = textForms;
 }