Exemplo n.º 1
0
 def test_string(self):
     self.assertEqual(dtb.Parser('\'abc\'').expect_string(), 'abc')
     self.assertEqual(dtb.Parser('\'abc\'#comment').expect_string(), 'abc')
     self.assertEqual(dtb.Parser('\'\'').expect_string(), '')
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('"abc\'').expect_string()
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('').expect_string()
Exemplo n.º 2
0
 def test_line_col(self):
     parser = dtb.Parser('xyz')
     self.assertEqual(parser.line, 1)
     self.assertEqual(parser.col, 1)
     parser = dtb.Parser('xyz')
     parser.expect_ident()
     self.assertEqual(parser.line, 1)
     self.assertEqual(parser.col, 4)
     parser = dtb.Parser('xyz\nabcdef')
     parser.expect_ident()
     parser.expect_ident()
     self.assertEqual(parser.line, 2)
     self.assertEqual(parser.col, 7)
     parser = dtb.Parser('\n\n\n#comment\nabc')
     parser.expect_ident()
     self.assertEqual(parser.line, 5)
     self.assertEqual(parser.col, 4)
Exemplo n.º 3
0
 def test_vector(self):
     self.assertEqual(dtb.Parser('1').expect_vector(1), (1.0, ))
     self.assertEqual(dtb.Parser('1#comment').expect_vector(1), (1.0, ))
     self.assertEqual(dtb.Parser('0 1').expect_vector(2), (0.0, 1.0))
     self.assertEqual(dtb.Parser('0 0 1').expect_vector(3), (0.0, 0.0, 1.0))
     self.assertEqual(
         dtb.Parser('(0 0 1)').expect_vector(3), (0.0, 0.0, 1.0))
     self.assertEqual(
         dtb.Parser('(0 0 1)#comment').expect_vector(3), (0.0, 0.0, 1.0))
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('(0 0 1').expect_vector(3)
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('0 x y').expect_vector(3)
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('0 1').expect_vector(3)
Exemplo n.º 4
0
 def test_ident(self):
     self.assertEqual(dtb.Parser('abc').expect_ident(), 'abc')
     self.assertEqual(dtb.Parser('abc#comment').expect_ident(), 'abc')
     self.assertEqual(dtb.Parser('xyz_abc').expect_ident(), 'xyz_abc')
     self.assertEqual(dtb.Parser('a 2').expect_ident(), 'a')
     self.assertEqual(dtb.Parser('a2').expect_ident(), 'a2')
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('$ident').expect_ident()
Exemplo n.º 5
0
 def test_enum(self):
     self.assertEqual(dtb.Parser('foo').expect_enum(['foo']), 'foo')
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('bar').expect_enum(['foo'])
Exemplo n.º 6
0
 def test_float(self):
     self.assertEqual(dtb.Parser('1').expect_float(), 1.0)
     self.assertEqual(dtb.Parser('1#comment').expect_float(), 1.0)
     self.assertEqual(dtb.Parser('-1').expect_float(), -1.0)
     self.assertEqual(dtb.Parser('+1').expect_float(), 1.0)
     self.assertEqual(dtb.Parser('123.456').expect_float(), 123.456)
     self.assertEqual(dtb.Parser('.001').expect_float(), 0.001)
     self.assertEqual(dtb.Parser('-.001').expect_float(), -0.001)
     self.assertEqual(dtb.Parser('+.001').expect_float(), 0.001)
     self.assertEqual(dtb.Parser('1.0e6').expect_float(), 1000000)
     self.assertEqual(dtb.Parser('1.0e-6').expect_float(), 0.000001)
     self.assertEqual(dtb.Parser('1.0E+6').expect_float(), 1000000)
     self.assertEqual(dtb.Parser('1234 5678').expect_float(), 1234)
     self.assertEqual(dtb.Parser('123..456').expect_float(), 123)
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('++1234').expect_float()
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('-').expect_float()
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('a1').expect_float()
     with self.assertRaises(dtb.ParserError):
         dtb.Parser('').expect_float()