using System.Linq; using Xunit; using ZeroLevel.Services.Semantic; namespace ZeroLevel.Semantic { public class SemanticTests { [Fact] public void WordTokenizerTest() { // Arrange var line = "Хорошее понимание проекций, отражений и векторных операций (как в истинном значении скалярного (dot) и векторного (cross) произведений векторов) обычно приходит с растущим чувством беспокойства при использованием тригонометрии. "; var test = new string[] { "хорошее", "понимание", "проекций", "отражений", "и" , "векторных", "операций", "как", "в", "истинном" , "значении", "скалярного","dot","и","векторного","cross","произведений" ,"векторов","обычно","приходит","с","растущим","чувством","беспокойства" ,"при","использованием", "тригонометрии"}; // Act var terms = WordTokenizer.Tokenize(line).ToArray(); // Assert Assert.True(test.Length == terms.Length); for (int i = 0; i < terms.Length; i++) { Assert.True(string.CompareOrdinal(test[i], terms[i]) == 0); } Assert.False(WordTokenizer.Tokenize(string.Empty).Any()); Assert.False(WordTokenizer.Tokenize(null).Any()); Assert.False(WordTokenizer.Tokenize(" ").Any()); Assert.False(WordTokenizer.Tokenize(" ").Any()); Assert.False(WordTokenizer.Tokenize(" 1 ").Any()); Assert.False(WordTokenizer.Tokenize("1 1").Any()); Assert.False(WordTokenizer.Tokenize(" 1 1 ").Any()); // Assert.False(WordTokenizer.Tokenize(" 12aa 1a3 ").Any()); // Assert.False(WordTokenizer.Tokenize(" __a1 _a1 ").Any()); } } }