Пример #1
0
        public void SetUp()
        {
            kanjiDict = KanjiDict.Create(TestDataPaths.KanjiDic);
            lookup    = new KanjiRadicalLookup(Radkfile.Parse(TestDataPaths.Radkfile), kanjiDict);
            var entries  = KanjiAliveJapaneseRadicalInformation.Parse(TestDataPaths.KanjiAliveRadicals);
            var remapper = new RadkfileKanjiAliveCorrelator(TestDataPaths.RadkfileKanjiAliveRadicalInfoCorrelationData);

            searcher = new RadicalSearcher(lookup.AllRadicals, entries, remapper);
        }
 private static IReadOnlyDictionary <CodePoint, KanjiAliveJapaneseRadicalInformation.Entry> CreateKanjiAliveMapping(
     IEnumerable <CodePoint> radicals,
     KanjiAliveJapaneseRadicalInformation kanjiAliveInfo,
     RadkfileKanjiAliveCorrelator correlator)
 {
     return(radicals
            .Join(
                kanjiAliveInfo.Where(e => e.StrokeCount.HasValue),
                radical => correlator.GetValueOrNone(radical.Utf32).ValueOr(0),
                radicalInfo => char.ConvertToUtf32(radicalInfo.Literal, 0),
                KeyValuePair.Create)
            .ToDictionary((key, leftValue, rightValue) => leftValue));
 }
 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;
 }