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