예제 #1
0
    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))
예제 #3
0
 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))
예제 #4
0
 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))
예제 #5
0
 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))
예제 #13
0
 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))
예제 #15
0
 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, []))
예제 #20
0
 def test_4(self):
     inpt = []
     fmt = '(1H/)'
     eds, rev_eds = _parser(_lexer(fmt))
     result = '/'
     self.assertEqual(result, _output(eds, rev_eds, inpt))
예제 #21
0
 def test_5(self):
     config.PROC_MAXINT = None
     eds, rev_eds = _parser(_lexer('(1Z10)'))
     result = _output(eds, rev_eds, [-12])
     self.assertEqual(result, '        -C')
예제 #22
0
 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))
예제 #23
0
 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))
예제 #24
0
 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))
예제 #25
0
 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))
예제 #27
0
 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))
예제 #30
0
 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')