Beispiel #1
0
        public void ParseWordClassTest()
        {
            var colorProv  = new ClassicSyllableColorProvider();
            var pinyinProv = new Pinyin4NetConverter();
            var tostrConv  = new ClassicSyllablesToStringConverter();
            var prov       = new PinyinChineseWordParseProvider(colorProv, pinyinProv, tostrConv);

            var word = new Word
            {
                OriginalWord  = "明?白!!",
                Pronunciation = "míng|bai",
                Translation   = "понимать"
            };

            var result = prov.GetOrderedSyllables(word);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.Length == 5);
            Assert.IsTrue(result[0].ChineseChar == '明');
            Assert.IsTrue(result[0].Color == Color.Orange);
            Assert.IsTrue(result[0].Pinyin == "míng");


            Assert.IsTrue(result[2].ChineseChar == '白');
            Assert.IsTrue(result[2].Color == Color.Black);
            Assert.IsTrue(result[2].Pinyin == "bai");
        }
Beispiel #2
0
        public static IChineseWordParseProvider GetChineseWordParseProvider()
        {
            var colorProv  = new ClassicSyllableColorProvider();
            var pinyinProv = new Pinyin4NetConverter();
            var tostrConv  = new ClassicSyllablesToStringConverter();

            return(new PinyinChineseWordParseProvider(colorProv, pinyinProv, tostrConv));
        }
Beispiel #3
0
        public void AddWordToDictionaryTest()
        {
            var colorProv  = new ClassicSyllableColorProvider();
            var pinyinProv = new Pinyin4NetConverter();
            var tostrConv  = new ClassicSyllablesToStringConverter();
            var prov       = new PinyinChineseWordParseProvider(colorProv, pinyinProv, tostrConv);

            var stringsToImport = new[] { "哪儿;rrr;where? (Beijing accent)" };
            var wordsResult     = prov.ImportWords(stringsToImport);

            Assert.IsNotNull(wordsResult);
            Assert.IsTrue(wordsResult.FailedWords.Length == 1);
            Assert.IsTrue(wordsResult.SuccessfulWords.Length == 1);
            Assert.IsTrue(wordsResult.SuccessfulWords[0].OriginalWord == "哪儿");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Pronunciation == "nǎ|er");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Translation == "where? (Beijing accent)");

            stringsToImport = new[] { "哪儿;nǎr;where? (Beijing accent)" };
            wordsResult     = prov.ImportWords(stringsToImport);
            Assert.IsNotNull(wordsResult);
            Assert.IsTrue(wordsResult.FailedWords.Length == 1);
            Assert.IsTrue(wordsResult.SuccessfulWords.Length == 1);
            Assert.IsTrue(wordsResult.SuccessfulWords[0].OriginalWord == "哪儿");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Pronunciation == "nǎ|er");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Translation == "where? (Beijing accent)");

            stringsToImport = new[] { "明!!白!;míngbai;понимать" };
            wordsResult     = prov.ImportWords(stringsToImport);
            Assert.IsNotNull(wordsResult);
            Assert.IsTrue(wordsResult.FailedWords.Length == 0);
            Assert.IsTrue(wordsResult.SuccessfulWords.Length == 1);
            Assert.IsTrue(wordsResult.SuccessfulWords[0].OriginalWord == "明!!白!");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Pronunciation == "míng|bai");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Translation == "понимать");

            stringsToImport = new[] { "你有病吗?你有药吗?;;- ты больной? (шутл.) - а есть лекарство?;好吧" };

            wordsResult = prov.ImportWords(stringsToImport);

            Assert.IsNotNull(wordsResult);
            Assert.IsTrue(wordsResult.FailedWords.Length == 0);
            Assert.IsTrue(wordsResult.SuccessfulWords.Length == 1);
            Assert.IsTrue(wordsResult.SuccessfulWords[0].OriginalWord == "你有病吗?你有药吗?");
            //Assert.IsTrue(wordsResult.SuccessfulWords[0].PinyinWord == "míng|bai");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Translation == "- ты больной? (шутл.) - а есть лекарство?");
            Assert.IsTrue(wordsResult.SuccessfulWords[0].Usage == "好吧");

            var result = prov.GetOrderedSyllables(wordsResult.SuccessfulWords[0]);

            Assert.AreEqual("yào", result[7].Pinyin);
        }
Beispiel #4
0
        public void BuildValidSyllableTest()
        {
            var colorProv    = new ClassicSyllableColorProvider();
            var pinyinProv   = new Pinyin4NetConverter();
            var tostrConv    = new ClassicSyllablesToStringConverter();
            var prov         = new PinyinChineseWordParseProvider(colorProv, pinyinProv, tostrConv);
            var chineseChar  = '体';
            var pinyinNumber = "ti3";
            var pinyinMark   = "tǐ";

            var syll = prov.BuildSyllable(chineseChar, pinyinNumber);

            Assert.AreEqual(pinyinMark, syll.Pinyin);
        }
Beispiel #5
0
        public void ParseWordTest()
        {
            var pinyinProv = new Pinyin4NetConverter();
            var tostrConv  = new ClassicSyllablesToStringConverter();
            var prov       = new PinyinChineseWordParseProvider(new ClassicSyllableColorProvider(), pinyinProv, tostrConv);
            var word       = "体育馆";
            //PinyinWord = "tǐyùguǎn",
            //TranslationNative = "Спортзал",
            //TranslationEng = "gym"

            var syllablesToCheck = new[] { "tǐ", "yù", "guǎn" };
            var syllables        = prov.GetOrderedSyllables(word);

            Assert.IsTrue(syllables.Length > 0);

            for (var i = 0; i < syllablesToCheck.Length; i++)
            {
                Assert.AreEqual(syllablesToCheck[i], syllables[i].Pinyin);
            }
        }
Beispiel #6
0
        public void BulkImportFromCsv()
        {
            var colorProv         = new ClassicSyllableColorProvider();
            var pinyinProv        = new Pinyin4NetConverter();
            var toStrConv         = new ClassicSyllablesToStringConverter();
            var wordParseProvider = new PinyinChineseWordParseProvider(colorProv, pinyinProv, toStrConv);

            var currentFolder = Directory.GetCurrentDirectory();
            var csvFolder     = Path.Combine(currentFolder, "csv");
            var files         = Directory.GetFiles(csvFolder).Where(a => a.EndsWith(".csv"));

            foreach (var file in files)
            {
                var lines       = File.ReadAllLines(file);
                var wordsResult = wordParseProvider.ImportWords(lines);
                Assert.IsNotNull(wordsResult);

                Console.WriteLine(wordsResult.SuccessfulWords.Length + " " + Path.GetFileName(file));

                var lastIndex = lines.Length - 1;
                Assert.AreEqual(string.IsNullOrEmpty(lines[lastIndex]) ? lastIndex : lines.Length,
                                wordsResult.SuccessfulWords.Length);
            }
        }