Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
test_data.py72 linesDownload Raw Back to tests
1import pytest
2
3import numpy as np
4from numpy.f2py.crackfortran import crackfortran
5
6from . import util
7
8
9class TestData(util.F2PyTest):
10    sources = [util.getpath("tests", "src", "crackfortran", "data_stmts.f90")]
11
12    # For gh-23276
13    @pytest.mark.slow
14    def test_data_stmts(self):
15        assert self.module.cmplxdat.i == 2
16        assert self.module.cmplxdat.j == 3
17        assert self.module.cmplxdat.x == 1.5
18        assert self.module.cmplxdat.y == 2.0
19        assert self.module.cmplxdat.pi == 3.1415926535897932384626433832795028841971693993751058209749445923078164062
20        assert self.module.cmplxdat.medium_ref_index == np.array(1. + 0.j)
21        assert np.all(self.module.cmplxdat.z == np.array([3.5, 7.0]))
22        assert np.all(self.module.cmplxdat.my_array == np.array([ 1. + 2.j, -3. + 4.j]))
23        assert np.all(self.module.cmplxdat.my_real_array == np.array([ 1., 2., 3.]))
24        assert np.all(self.module.cmplxdat.ref_index_one == np.array([13.0 + 21.0j]))
25        assert np.all(self.module.cmplxdat.ref_index_two == np.array([-30.0 + 43.0j]))
26
27    def test_crackedlines(self):
28        mod = crackfortran(self.sources)
29        assert mod[0]['vars']['x']['='] == '1.5'
30        assert mod[0]['vars']['y']['='] == '2.0'
31        assert mod[0]['vars']['pi']['='] == '3.1415926535897932384626433832795028841971693993751058209749445923078164062d0'
32        assert mod[0]['vars']['my_real_array']['='] == '(/1.0d0, 2.0d0, 3.0d0/)'
33        assert mod[0]['vars']['ref_index_one']['='] == '(13.0d0, 21.0d0)'
34        assert mod[0]['vars']['ref_index_two']['='] == '(-30.0d0, 43.0d0)'
35        assert mod[0]['vars']['my_array']['='] == '(/(1.0d0, 2.0d0), (-3.0d0, 4.0d0)/)'
36        assert mod[0]['vars']['z']['='] == '(/3.5,  7.0/)'
37
38class TestDataF77(util.F2PyTest):
39    sources = [util.getpath("tests", "src", "crackfortran", "data_common.f")]
40
41    # For gh-23276
42    def test_data_stmts(self):
43        assert self.module.mycom.mydata == 0
44
45    def test_crackedlines(self):
46        mod = crackfortran(str(self.sources[0]))
47        print(mod[0]['vars'])
48        assert mod[0]['vars']['mydata']['='] == '0'
49
50
51class TestDataMultiplierF77(util.F2PyTest):
52    sources = [util.getpath("tests", "src", "crackfortran", "data_multiplier.f")]
53
54    # For gh-23276
55    def test_data_stmts(self):
56        assert self.module.mycom.ivar1 == 3
57        assert self.module.mycom.ivar2 == 3
58        assert self.module.mycom.ivar3 == 2
59        assert self.module.mycom.ivar4 == 2
60        assert self.module.mycom.evar5 == 0
61
62
63class TestDataWithCommentsF77(util.F2PyTest):
64    sources = [util.getpath("tests", "src", "crackfortran", "data_with_comments.f")]
65
66    # For gh-23276
67    def test_data_stmts(self):
68        assert len(self.module.mycom.mytab) == 3
69        assert self.module.mycom.mytab[0] == 0
70        assert self.module.mycom.mytab[1] == 4
71        assert self.module.mycom.mytab[2] == 0
72 
codekingpro/portable-devtools · Team Ai