test_assumed_shape.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import os
  2. import pytest
  3. import tempfile
  4. from numpy.testing import assert_
  5. from . import util
  6. def _path(*a):
  7. return os.path.join(*((os.path.dirname(__file__),) + a))
  8. class TestAssumedShapeSumExample(util.F2PyTest):
  9. sources = [_path('src', 'assumed_shape', 'foo_free.f90'),
  10. _path('src', 'assumed_shape', 'foo_use.f90'),
  11. _path('src', 'assumed_shape', 'precision.f90'),
  12. _path('src', 'assumed_shape', 'foo_mod.f90'),
  13. _path('src', 'assumed_shape', '.f2py_f2cmap'),
  14. ]
  15. @pytest.mark.slow
  16. def test_all(self):
  17. r = self.module.fsum([1, 2])
  18. assert_(r == 3, repr(r))
  19. r = self.module.sum([1, 2])
  20. assert_(r == 3, repr(r))
  21. r = self.module.sum_with_use([1, 2])
  22. assert_(r == 3, repr(r))
  23. r = self.module.mod.sum([1, 2])
  24. assert_(r == 3, repr(r))
  25. r = self.module.mod.fsum([1, 2])
  26. assert_(r == 3, repr(r))
  27. class TestF2cmapOption(TestAssumedShapeSumExample):
  28. def setup(self):
  29. # Use a custom file name for .f2py_f2cmap
  30. self.sources = list(self.sources)
  31. f2cmap_src = self.sources.pop(-1)
  32. self.f2cmap_file = tempfile.NamedTemporaryFile(delete=False)
  33. with open(f2cmap_src, 'rb') as f:
  34. self.f2cmap_file.write(f.read())
  35. self.f2cmap_file.close()
  36. self.sources.append(self.f2cmap_file.name)
  37. self.options = ["--f2cmap", self.f2cmap_file.name]
  38. super(TestF2cmapOption, self).setup()
  39. def teardown(self):
  40. os.unlink(self.f2cmap_file.name)