1*e1fe3e4aSElliott Hughesfrom fontTools.voltLib.error import VoltLibError 2*e1fe3e4aSElliott Hughesfrom fontTools.voltLib.lexer import Lexer 3*e1fe3e4aSElliott Hughesimport unittest 4*e1fe3e4aSElliott Hughes 5*e1fe3e4aSElliott Hughes 6*e1fe3e4aSElliott Hughesdef lex(s): 7*e1fe3e4aSElliott Hughes return [(typ, tok) for (typ, tok, _) in Lexer(s, "test.vtp")] 8*e1fe3e4aSElliott Hughes 9*e1fe3e4aSElliott Hughes 10*e1fe3e4aSElliott Hughesclass LexerTest(unittest.TestCase): 11*e1fe3e4aSElliott Hughes def __init__(self, methodName): 12*e1fe3e4aSElliott Hughes unittest.TestCase.__init__(self, methodName) 13*e1fe3e4aSElliott Hughes 14*e1fe3e4aSElliott Hughes def test_empty(self): 15*e1fe3e4aSElliott Hughes self.assertEqual(lex(""), []) 16*e1fe3e4aSElliott Hughes self.assertEqual(lex("\t"), []) 17*e1fe3e4aSElliott Hughes 18*e1fe3e4aSElliott Hughes def test_string(self): 19*e1fe3e4aSElliott Hughes self.assertEqual( 20*e1fe3e4aSElliott Hughes lex('"foo" "bar"'), [(Lexer.STRING, "foo"), (Lexer.STRING, "bar")] 21*e1fe3e4aSElliott Hughes ) 22*e1fe3e4aSElliott Hughes self.assertRaises(VoltLibError, lambda: lex('"foo\n bar"')) 23*e1fe3e4aSElliott Hughes 24*e1fe3e4aSElliott Hughes def test_name(self): 25*e1fe3e4aSElliott Hughes self.assertEqual( 26*e1fe3e4aSElliott Hughes lex("DEF_FOO bar.alt1"), [(Lexer.NAME, "DEF_FOO"), (Lexer.NAME, "bar.alt1")] 27*e1fe3e4aSElliott Hughes ) 28*e1fe3e4aSElliott Hughes 29*e1fe3e4aSElliott Hughes def test_number(self): 30*e1fe3e4aSElliott Hughes self.assertEqual(lex("123 -456"), [(Lexer.NUMBER, 123), (Lexer.NUMBER, -456)]) 31*e1fe3e4aSElliott Hughes 32*e1fe3e4aSElliott Hughes 33*e1fe3e4aSElliott Hughesif __name__ == "__main__": 34*e1fe3e4aSElliott Hughes import sys 35*e1fe3e4aSElliott Hughes 36*e1fe3e4aSElliott Hughes sys.exit(unittest.main()) 37