def test_15(self):
     # Test behaviour of BN, BZ
     inpt = '12 1'
     fmt = '(I3, BZ, I1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [12, 1]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
Exemplo n.º 2
0
 def multi_test_14(self):
     # Test behaviour of BN, BZ
     inpt = '12 1'
     fmt = '(BZ, I4)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [1201]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_17(self):
     # Test behaviour of Slash edit descriptor
     inpt = '1234  AB4567  CD'
     fmt = '(I4, /, I4)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [1234]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
Exemplo n.º 4
0
 def test_tr_6(self):
     inpt = '1234567890'
     fmt = '(TR11, A1)'
     eds, rev_eds = _parser(_lexer(fmt))
     # Make the call that width will be respected always
     result = [' ']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
Exemplo n.º 5
0
 def test_7(self):
     # Should pad string with blanks at end
     inpt = '1234567890'
     fmt = '(A15)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['1234567890     ']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
Exemplo n.º 6
0
 def test_2(self):
     # Should not escape doubled quotes like Fortran
     inpt = "''"
     fmt = '(A)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ["''"]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_13(self):
     # Test behaviour of BN, BZ
     inpt = '12  '
     fmt = '(BZ, BN, I4)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [12]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
Exemplo n.º 8
0
 def multi_test_9(self):
     # An actual typical record
     inpt = '    T    F   12  3.4 1.1E+02'
     fmt = '(L5, L5, I5.2, F5.5, E8.8E2)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [True, False, 12, 3.4, 1.1e2]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_7(self):
     # Logical does not have a sensible default, raises error when
     # reading beyond end of record
     inpt = 'T23456789T'
     fmt = '(L1, A, L1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [True, '23456789T', None]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_6(self):
     # Widthless A edit descriptor takes up entire rest of string
     # Can use T to reread though
     inpt = '1234567890'
     fmt = '(I1.1, A, T1, I1.1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [1, '234567890', 1]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_2(self):
     # By default G_INPUT_TRIAL_EDS is set to ['F', 'L', 'A'] see if
     # float is tried first
     inpt = '3.13.1'
     fmt = '(G3.1, G3.1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [3.1, 3.1]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_3(self):
     # By default G_INPUT_TRIAL_EDS is set to ['F', 'L', 'A'] see if
     # Logical tried next
     inpt = '  F'
     fmt = '(G3.1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [False]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_4(self):
     # By default G_INPUT_TRIAL_EDS is set to ['F', 'L', 'A'] see if
     # text finally tried
     inpt = '  R'
     fmt = '(G3.1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['  R']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_7(self):
     # Try custom list of edit descriptors
     config.G_INPUT_TRIAL_EDS = ['Z', 'A']
     inpt = ' L0'
     fmt = '(G3.1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [' L0']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_5(self):
     # By default G_INPUT_TRIAL_EDS is set to ['F', 'L', 'A'] see if
     # combination of different values gives correct results
     inpt = '  R3.1'
     fmt = '(2G3.1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['  R', 3.1]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_11(self):
     # More edit descriptors than the input string specifies
     # Should give None by default for variables that aren't 'read'
     # into
     inpt = '1'
     fmt = '(I1, I1, I1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [1, None, None]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_1(self):
     # Widthless A edit descriptor takes up entire rest of string
     # Extra numerical edit descriptors cannot be read, so default
     # return None so number of values commensurate with number of
     # edit descriptors
     inpt = '1234567890'
     fmt = '(I1, A, I1, F3.1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [1, '234567890', None, None]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_2(self):
     # Can change behaviour using configuration. Setting
     # RET_UNWRITTEN_VARS_NONE to False returns default content for
     # Fortran variables (i.e. zero for numbers and ERROR for
     # logicals)
     inpt = '1234567890'
     fmt = '(I1, A, I1, F3.1)'
     config.RET_UNWRITTEN_VARS_NONE = False
     eds, rev_eds = _parser(_lexer(fmt))
     result = [1, '234567890', 0, 0.0]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_5(self):
     # Can change behaviour using configuration. Setting
     # RET_WRITTEN_VARS_ONLY should remove unwritten varibles from
     # returned output (i.e. if run out of record, return only the
     # FORTRAN variables that have been read into)
     inpt = '1'
     fmt = '(3I1)'
     config.RET_UNWRITTEN_VARS_NONE = False
     config.RET_WRITTEN_VARS_ONLY = True
     eds, rev_eds = _parser(_lexer(fmt))
     result = [1]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def a_tl_x_test_1(self):
     inpt = '1234567890'
     fmt = '(TL5, 5X, A1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['6']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
Exemplo n.º 21
0
 def test_b_ed_input_98(self):
     inp = '''1000'''
     fmt = '''(1B5.3)'''
     result = [8]
     eds, rev_eds = _parser(_lexer(fmt))
     self.assertEqual(result, _input(eds, rev_eds, inp))
 def a_test_6(self):
     inpt = ''
     fmt = '(A)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def a_tr_test_5(self):
     inpt = '1234567890'
     fmt = '(TR1, A1)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['2']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def a_test_4(self):
     inpt = '"I didn\'t do that!" said Alice'
     fmt = '(A)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['"I didn\'t do that!" said Alice']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def a_test_3(self):
     inpt = "'This is what I mean' - said Alice."
     fmt = '(A)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ["'This is what I mean' - said Alice."]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
Exemplo n.º 26
0
 def test_b_ed_input_74(self):
     inp = '''1'''
     fmt = '''(1B3.3)'''
     result = [1]
     eds, rev_eds = _parser(_lexer(fmt))
     self.assertEqual(result, _input(eds, rev_eds, inp))
 def test_8(self):
     inpt = '1234567890'
     fmt = '(A, A)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['1234567890', '']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def a_x_test_4(self):
     inpt = '1234567890'
     fmt = '(4X, A)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['567890']
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def test_8(self):
     inpt = "    0.E+00"
     fmt = '(G10.0)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = [0.0]
     self.assertEqual(result, _input(eds, rev_eds, inpt))
 def a_t_tl_test_2(self):
     inpt = '1234567890'
     fmt = '(T15, TL1, A)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = ['0']
     self.assertEqual(result, _input(eds, rev_eds, inpt))