def reversion_output_test_3(self): inpt = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0] fmt = "('[', (3F4.1), ']')" eds, rev_eds = _parser(_lexer(fmt)) result = """[ 1.0 1.0 1.0] 1.0 1.0 1.0]""" self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_2(self): inpt = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0] fmt = "('[', 3F4.1, ']')" eds, rev_eds = _parser(_lexer(fmt)) result = """[ 1.0 1.0 1.0] [ 1.0 1.0 1.0]""" self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_2b(self): '''Test where exponent is zero - note that GFortran actually crashes in this case''' inpt = [0.01] fmt = '(E14.0)' eds, rev_eds = _parser(_lexer(fmt)) result = "**************" self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_1(self): # Test case raised in issue 11 inpt = [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] fmt = '(3F5.1)' eds, rev_eds = _parser(_lexer(fmt)) result = ' 1.0 2.0 3.0' + config.RECORD_SEPARATOR + ' 4.0 5.0 6.0' \ + config.RECORD_SEPARATOR + ' 7.0' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_2(self): # Test reversion which is not entire inpt = [1, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0] fmt = '(\'Header Lines=\',I4,/,(3F5.1))' eds, rev_eds = _parser(_lexer(fmt)) result = 'Header Lines= 1' + config.RECORD_SEPARATOR + ' 1.0 2.0 3.0' \ + config.RECORD_SEPARATOR + ' 4.0 5.0 6.0' + config.RECORD_SEPARATOR + ' 7.0' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_7(self): """ Octal default value is 0 """ inpt = [1, None, 1] fmt = '(3O10)' eds, rev_eds = _parser(_lexer(fmt)) result = ' 1 0 1' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_5(self): """ String default value is empty """ inpt = ['[', None, ']'] fmt = '(3A10)' eds, rev_eds = _parser(_lexer(fmt)) result = ' [ ]' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_4(self): """ Logical default value is .TRUE. """ inpt = [True, None, False] fmt = '(3L10)' eds, rev_eds = _parser(_lexer(fmt)) result = ' T T F' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_3(self): """ Float default value is 0 """ inpt = [0.0, None, 1.0] fmt = '(3F10.1)' eds, rev_eds = _parser(_lexer(fmt)) result = ' 0.0 0.0 1.0' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_2(self): """ Integer default value is 0 """ inpt = [0.0, None, 1.0] fmt = '(3I10)' eds, rev_eds = _parser(_lexer(fmt)) result = ' 0 0 1' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_8(self): """ Exponential default value is 0.0 """ inpt = [1, None, 1] fmt = '(3E10.1)' eds, rev_eds = _parser(_lexer(fmt)) result = ' 0.1E+01 0.0E+00 0.1E+01' self.assertEqual(result, _output(eds, rev_eds, inpt))
def g_output_test_3d(self): '''This is an invalid format for output since if value is between 0.1 and 1 it will make the exponent negative However it is fine on input. Making the lexer/parser aware of the context is complex and the Intel compiler actually handles this by accepting the format on compilation but outputting asterisks on output.''' inpt = [1.11] fmt = '(G14.0)' eds, rev_eds = _parser(_lexer(fmt)) result = "**************" self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_2(self): inpt = [99999.01] fmt = '(F6.0)' eds, rev_eds = _parser(_lexer(fmt)) result = '99999.' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_a_ed_input_9(self): vals = ['''\'\''''] fmt = '''(A2)''' result = '''\'\'''' eds, rev_eds = _parser(_lexer(fmt)) self.assertEqual(result, _output(eds, rev_eds, vals))
def test_2(self): inpt = [1.0] fmt = '(E10.1)' eds, rev_eds = _parser(_lexer(fmt)) result = " 0.1E+01" self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_a_ed_input_7(self): vals = ['''The quick brown fox jumps the lazy dog.'''] fmt = '''(A2)''' result = '''Th''' eds, rev_eds = _parser(_lexer(fmt)) self.assertEqual(result, _output(eds, rev_eds, vals))
def test_a_ed_input_8(self): vals = ['''"It doesn\'t matter anyway" - said Alice'''] fmt = '''(A2)''' result = '''"I''' eds, rev_eds = _parser(_lexer(fmt)) self.assertEqual(result, _output(eds, rev_eds, vals))
def apostrophe_output_test_1(self): fmt = "'Some Text'" eds, rev_eds = _parser(_lexer(fmt)) result = "Some Text" self.assertEqual(result, _output(eds, rev_eds, []))
def apostrophe_output_test_2(self): '''With commented apostrophe''' fmt = "'Don''t you, forget about me'" eds, rev_eds = _parser(_lexer(fmt)) result = "Don't you, forget about me" self.assertEqual(result, _output(eds, rev_eds, []))
def test_4(self): inpt = [] fmt = '(1H/)' eds, rev_eds = _parser(_lexer(fmt)) result = '/' self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_5(self): config.PROC_MAXINT = None eds, rev_eds = _parser(_lexer('(1Z10)')) result = _output(eds, rev_eds, [-12]) self.assertEqual(result, ' -C')
def test_1(self): inpt = [3.1] fmt = '(F5.0)' eds, rev_eds = _parser(_lexer(fmt)) result = ' 3.' self.assertEqual(result, _output(eds, rev_eds, inpt))
def h_output_test_3(self): inpt = [3] fmt = '(1Hs,F3.1)' eds, rev_eds = _parser(_lexer(fmt)) result = 's3.0' self.assertEqual(result, _output(eds, rev_eds, inpt))
def h_output_test_1(self): inpt = [] fmt = '(3Hsdf)' eds, rev_eds = _parser(_lexer(fmt)) result = 'sdf' self.assertEqual(result, _output(eds, rev_eds, inpt))
def h_output_test_2(self): inpt = [12] fmt = '(1Hs)' eds, rev_eds = _parser(_lexer(fmt)) result = 's' self.assertEqual(result, _output(eds, rev_eds, inpt))
def g_output_test_4(self): inpt = [1.1] fmt = '(G12.4)' eds, rev_eds = _parser(_lexer(fmt)) result = " 1.100 " self.assertEqual(result, _output(eds, rev_eds, inpt))
def h_output_test_4(self): inpt = [] fmt = '(6Hs,F3.1)' eds, rev_eds = _parser(_lexer(fmt)) result = 's,F3.1' self.assertEqual(result, _output(eds, rev_eds, inpt))
def g_output_test_5(self): inpt = [0.0] fmt = '(G10.2)' eds, rev_eds = _parser(_lexer(fmt)) result = " 0.00E+00" self.assertEqual(result, _output(eds, rev_eds, inpt))
def g_output_test_6(self): inpt = [30] fmt = '(8g10.3)' eds, rev_eds = _parser(_lexer(fmt)) result = " 30.0 " self.assertEqual(result, _output(eds, rev_eds, inpt))
def test_2(self): config.PROC_MAXINT = 2**31 eds, rev_eds = _parser(_lexer('(1Z10)')) result = _output(eds, rev_eds, [-3]) self.assertEqual(result, ' FFFFFFFD')