public void Should_AddHigherFrequencyPhrase_When_DuplicatePhrases_With_DifferentFrequency()
        {
            // 這組測試資料是用來測試頻率不同的重複片語。
            string[] phrases =
            {
                "一動不如一靜 1 ㄧ ㄉㄨㄥˋ ㄅㄨˋ ㄖㄨˊ ㄧˊ ㄐㄧㄥˋ",
                "一動不如一靜 3 ㄧˊ ㄉㄨㄥˋ ㄅㄨˋ ㄖㄨˊ ㄧ ㄐㄧㄥˋ",
                "一動不如一靜 2 ㄧˊ ㄉㄨㄥˋ ㄅㄨˋ ㄖㄨˊ ㄧˊ ㄐㄧㄥˋ"
            };

            var dictManager = new PhraseDictionaryManager(Log.Logger);

            for (int i = 0; i < phrases.Length; i++)
            {
                dictManager.AddPhrase(phrases[i]);
            }

            var expected = new PhraseData(
                frequency: 3,
                bopomofoList: new List <string>()
            {
                "ㄧˊ", "ㄉㄨㄥˋ", "ㄅㄨˋ", "ㄖㄨˊ", "ㄧ", "ㄐㄧㄥˋ"
            });

            var actual = dictManager.PhraseDictionary["一動不如一靜"];

            Assert.IsTrue(actual.Equals(expected));
        }
        public async Task Should_LoadFileAndSerializeToJsonSucceeded()
        {
            string srcFileName = TestContext.CurrentContext.TestDirectory + "/../../../libchewing/data/tsi.src";
            var    dictManager = new PhraseDictionaryManager(Log.Logger);
            await dictManager.LoadFromTextFileAsync(srcFileName);

            string dstFileName = TestContext.CurrentContext.TestDirectory + "/ChewingDictionary.json";

            PhraseDictionarySerializer.SerializeToJsonFile(dstFileName, dictManager.PhraseDictionary);
            Assert.IsTrue(File.Exists(dstFileName));

            var deserialized = PhraseDictionarySerializer.DeserializeFromJsonFile(dstFileName);

            Assert.IsTrue(dictManager.PhraseDictionary.Equals(deserialized));
        }
        public void Should_SerializationSucceeded(string filename)
        {
            var phrases = CreateTestPhraseData();

            var dictManager = new PhraseDictionaryManager(Log.Logger);

            dictManager.LoadFromEnumerable(phrases);

            filename = TestContext.CurrentContext.TestDirectory + filename;
            PhraseDictionarySerializer.SerializeToBinaryFile(filename, dictManager.PhraseDictionary);
            Assert.IsTrue(File.Exists(filename));

            var deserialized = PhraseDictionarySerializer.DeserializeFromBinaryFile(filename);

            Assert.IsTrue(dictManager.PhraseDictionary.Equals(deserialized));
        }
 public async Task Should_LoadFromFileSucceeded(string filename)
 {
     var dictManager = new PhraseDictionaryManager(Log.Logger);
     await dictManager.LoadFromTextFileAsync(TestContext.CurrentContext.TestDirectory + filename);
 }