https://github.com/fenderglass/Ragout
Tip revision: bd35cb59f602ed33794dc1697a1503375eabef80 authored by Mikhail Kolmogorov on 05 March 2015, 20:35:08 UTC
added extra condition in split_by_instance
added extra condition in split_by_instance
Tip revision: bd35cb5
lexertest.py
import unittest
import tokens
from lexer import *
class LexerTest(unittest.TestCase):
''' Test of the Lexer class. '''
def test_tokens(self):
''' Test recognition of tokens. '''
lexer = Lexer("()'foo' bar :0.00,;")
lexer.read_token(tokens.LParen)
lexer.read_token(tokens.RParen)
identifier = lexer.read_token(tokens.ID)
identifier = lexer.read_token(tokens.ID)
lexer.read_token(tokens.Colon)
n = lexer.read_token(tokens.Number)
lexer.read_token(tokens.Comma)
lexer.read_token(tokens.SemiColon)
def test_identifiers(self):
''' Test that identifiers are correctly identified. '''
lexer = Lexer("'foo' bar \"baz\"")
identifier = lexer.read_token(tokens.ID)
self.assertEqual(identifier.get_name(), 'foo')
identifier = lexer.read_token(tokens.ID)
self.assertEqual(identifier.get_name(), 'bar')
identifier = lexer.read_token(tokens.ID)
self.assertEqual(identifier.get_name(), 'baz')
def test_numbers(self):
''' Test that numbers are recognized correctly. '''
lexer = Lexer("0 0.0 0.00 1 1.0 1.11")
n = lexer.read_token(tokens.Number)
self.assertEqual(n.get_number(), 0.00)
test_suite = unittest.makeSuite(LexerTest)
if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(test_suite)