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))
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))
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))
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))
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))
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))
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))
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))