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; }