void Tokenize_String_CorrectlyRecognizesTokenTypes(string str, TokenType expectedType) { var tokens = WktTokenizer.Tokenize(str).ToArray(); Assert.Equal(1, tokens.Count()); WktToken t = tokens.First(); Assert.Equal(expectedType, t.Type); Assert.Equal(str, t.Value); }
public void Peek_IgnoreWhitespace_ReturnsEndOfDataTokenIfOnlyWhitespaceTokensAreAvailalbleAndIgnoreWhitespaceIsTrue() { WktToken whitespaceToken = new WktToken() { Type = TokenType.WHITESPACE, Value = " " }; WktTokensBuffer target = new WktTokensBuffer(); target.Add(whitespaceToken); var result = target.Peek(true); Assert.Equal(WktToken.EndOfDataToken, result); }
public void GetToken_IgnoreWhitespace_ReturnsWhitespaceIfIgnoreWhitespaceIsFalseAndNextTokenIsWhitespace() { WktToken whitespaceToken = new WktToken() { Type = TokenType.WHITESPACE, Value = " " }; WktTokensBuffer target = new WktTokensBuffer(); target.Add(whitespaceToken); target.Add(_testData[0]); var result = target.GetToken(false); Assert.Equal(whitespaceToken, result); Assert.Equal(1, target.Count); }
void Tokenize_TextReader_ProcessesComplexText() { StringReader reader = new StringReader("point z (-10 -15 -100.1)"); var tokens = WktTokenizer.Tokenize(reader).ToArray(); Assert.Equal(11, tokens.Length); WktToken t = tokens[0]; Assert.Equal(TokenType.STRING, t.Type); Assert.Equal("point", t.Value); t = tokens[1]; Assert.Equal(TokenType.WHITESPACE, t.Type); t = tokens[2]; Assert.Equal(TokenType.STRING, t.Type); Assert.Equal("z", t.Value); t = tokens[3]; Assert.Equal(TokenType.WHITESPACE, t.Type); t = tokens[4]; Assert.Equal(TokenType.LEFT_PARENTHESIS, t.Type); t = tokens[5]; Assert.Equal(TokenType.NUMBER, t.Type); Assert.Equal("-10", t.Value); t = tokens[6]; Assert.Equal(TokenType.WHITESPACE, t.Type); t = tokens[7]; Assert.Equal(TokenType.NUMBER, t.Type); Assert.Equal("-15", t.Value); t = tokens[8]; Assert.Equal(TokenType.WHITESPACE, t.Type); t = tokens[9]; Assert.Equal(TokenType.NUMBER, t.Type); Assert.Equal("-100.1", t.Value); t = tokens[10]; Assert.Equal(TokenType.RIGHT_PARENTHESIS, t.Type); }