public void TestReduceWithBaseForm() { var tokens = tokenizer.Tokenize("始めてみることにした"); var words = WordConjungateCombiner.Combine(tokens, dictionary); Assert.AreEqual(5, words.Count); int index = words.FindIndex(0, words.Count, (x) => { return(x.Surface.Contains("こと")); }); WordListReducer reducer = new WordListReducer(); var newWord = reducer.ReduceOnce(index, words, dictionary, true); Assert.AreEqual("ことにした", newWord.Surface); Assert.AreEqual("コトニシタ", newWord.Pronunciation); Assert.AreEqual("コトニシタ", newWord.Reading); Assert.AreEqual("ことにする", newWord.BaseForm); tokens = tokenizer.Tokenize("というものであった"); words = WordConjungateCombiner.Combine(tokens, dictionary); Assert.AreEqual(3, words.Count); index = words.FindIndex(0, words.Count, (x) => { return(x.Surface.Contains("もの")); }); reducer = new WordListReducer(); newWord = reducer.ReduceOnce(index, words, dictionary, true); Assert.AreEqual("ものであった", newWord.Surface); Assert.AreEqual("モノデアッタ", newWord.Pronunciation); Assert.AreEqual("モノデアッタ", newWord.Reading); Assert.AreEqual("ものである", newWord.BaseForm); }
public void TestIfRemoveWrongEndIndex() { var tokens = tokenizer.Tokenize("私だからな"); var words = WordConjungateCombiner.Combine(tokens, dictionary); WordListReducer reducer = new WordListReducer(); var newWord = reducer.ReduceOnce(1, words, dictionary, true); Assert.AreEqual("だから", newWord.Surface); Assert.AreEqual("ダカラ", newWord.Pronunciation); Assert.AreEqual("ダカラ", newWord.Reading); }
public void TestReduceOnce() { var tokens = tokenizer.Tokenize("そこで私たちを待っている幸福が、私たちが望むような幸福ではないかもしれない。"); var words = WordConjungateCombiner.Combine(tokens, dictionary); int index = words.FindIndex(0, words.Count, (x) => { return(x.Surface.Contains("かも")); }); WordListReducer reducer = new WordListReducer(); var newWord = reducer.ReduceOnce(index, words, dictionary, true); Assert.AreEqual("かもしれない", newWord.Surface); Assert.AreEqual("カモシレナイ", newWord.Pronunciation); Assert.AreEqual("カモシレナイ", newWord.Reading); }