diff --git a/pygem/__init__.py b/pygem/__init__.py index e6aed45..3be214c 100644 --- a/pygem/__init__.py +++ b/pygem/__init__.py @@ -1 +1,7 @@ -__all__ = ["affine_trans", "ffd_parameters", "file_handler", "free_form"] \ No newline at end of file + +__all__ = ['affine', 'params', 'filehandler', 'freeform'] + +from . import affine +from . import params +from . import filehandler +from . import freeform \ No newline at end of file diff --git a/pygem/affine_trans.py b/pygem/affine.py similarity index 98% rename from pygem/affine_trans.py rename to pygem/affine.py index 772f150..a7ee8b5 100644 --- a/pygem/affine_trans.py +++ b/pygem/affine.py @@ -21,7 +21,7 @@ def angles2matrix(rot_z=0, rot_y=0, rot_x=0): :Example: - >>> import pygem.affine_trans as at + >>> import pygem.affine as at >>> import numpy as np >>> # Example of a rotation around x, y, z axis @@ -118,7 +118,7 @@ def affine_points_fit(points_start, points_end): :Example: - >>> import pygem.affine_trans as at + >>> import pygem.affine as at >>> # Example of a rotation (affine transformation) >>> p_start = np.array([[1,0,0], [0,1,0], [0,0,1], [0,0,0]]) diff --git a/pygem/file_handler.py b/pygem/filehandler.py similarity index 96% rename from pygem/file_handler.py rename to pygem/filehandler.py index 79a9208..774d1a6 100644 --- a/pygem/file_handler.py +++ b/pygem/filehandler.py @@ -1,6 +1,7 @@ """ Utilities for reading and writing different CAD files. """ +import os import numpy as np from mpl_toolkits import mplot3d from matplotlib import pyplot @@ -52,7 +53,7 @@ class UnvHandler(FileHandler): """ def __init__(self): super(UnvHandler, self).__init__() - self.extension = 'unv' + self.extension = '.unv' def parse(self, filename): @@ -155,7 +156,7 @@ class VtkHandler(FileHandler): """ def __init__(self): super(VtkHandler, self).__init__() - self.extension = 'vtk' + self.extension = '.vtk' def parse(self, filename): @@ -215,22 +216,22 @@ def write(self, mesh_points, filename): reader.ReadAllScalarsOn() reader.Update() data = reader.GetOutput() - + points = vtk.vtkPoints() - + for i in range(data.GetNumberOfPoints()): - points.InsertNextPoint(mesh_points[i,:]) - + points.InsertNextPoint(mesh_points[i, :]) + data.SetPoints(points) - + writer = vtk.vtkDataSetWriter() writer.SetFileName(self.outfile) - + if vtk.VTK_MAJOR_VERSION <= 5: writer.SetInput(data) else: writer.SetInputData(data) - + writer.Write() @@ -242,7 +243,7 @@ class StlHandler(FileHandler): """ def __init__(self): super(StlHandler, self).__init__() - self.extension = 'stl' + self.extension = '.stl' def parse(self, filename): @@ -423,13 +424,10 @@ def _check_extension(filename, extension): :param string filename: file to check. :param string extension: file extension to check. """ - file_ext = filename.split('.')[-1].lower() - # to manage the case of open foam (no extension) the following check is needed - if file_ext == filename.lower(): - pass - elif not file_ext == extension: + __, file_ext = os.path.splitext(filename) + if not file_ext == extension: raise ValueError('The input file does not have the proper extension. \ - It should be %s.' % extension) + It is %s, instead of %s.' % (file_ext, extension)) def _check_filename_type(filename): diff --git a/pygem/free_form.py b/pygem/freeform.py similarity index 97% rename from pygem/free_form.py rename to pygem/freeform.py index e987428..48d0f0a 100644 --- a/pygem/free_form.py +++ b/pygem/freeform.py @@ -3,7 +3,7 @@ """ import numpy as np from scipy import special -import pygem.affine_trans as at +import pygem.affine as at class FFD(object): @@ -21,8 +21,8 @@ class FFD(object): :Example: - >>> import pygem.free_form as ffd - >>> import pygem.ffd_parameters as ffdp + >>> import pygem.freeform as ffd + >>> import pygem.params as ffdp >>> import numpy as np >>> ffd_parameters = ffdp.FFDParameters() diff --git a/pygem/ffd_parameters.py b/pygem/params.py similarity index 99% rename from pygem/ffd_parameters.py rename to pygem/params.py index c3b26d2..2654f75 100644 --- a/pygem/ffd_parameters.py +++ b/pygem/params.py @@ -3,7 +3,7 @@ """ import os import numpy as np -import pygem.affine_trans as at +import pygem.affine as at class FFDParameters(object): @@ -49,7 +49,7 @@ class FFDParameters(object): :Example: - >>> import pygem.ffd_parameters as ffdp + >>> import pygem.params as ffdp >>> # Reading an existing file >>> params1 = ffdp.FFDParameters() diff --git a/tests/test_affine_trans.py b/tests/test_affine.py similarity index 98% rename from tests/test_affine_trans.py rename to tests/test_affine.py index d706534..7f6e613 100644 --- a/tests/test_affine_trans.py +++ b/tests/test_affine.py @@ -1,11 +1,11 @@ from unittest import TestCase import unittest -import pygem.affine_trans as at +import pygem.affine as at import numpy as np -class TestAffineTrans(TestCase): +class TestAffine(TestCase): def test_angles2matrix_rot_default(self): diff --git a/tests/test_file_handler.py b/tests/test_filehandler.py similarity index 98% rename from tests/test_file_handler.py rename to tests/test_filehandler.py index 9c059a7..ab5b621 100644 --- a/tests/test_file_handler.py +++ b/tests/test_filehandler.py @@ -1,13 +1,13 @@ from unittest import TestCase import unittest -import pygem.file_handler as fh +import pygem.filehandler as fh import numpy as np import filecmp import os -class TestFileHandler(TestCase): +class TestFilehandler(TestCase): def test_base_class_infile(self): @@ -38,7 +38,10 @@ def test_base_class_write(self): file_handler.write(mesh_points, 'output') - # UNV tests + +class TestUnvHandler(TestCase): + + def test_unv_instantiation(self): unv_handler = fh.UnvHandler() @@ -55,7 +58,7 @@ def test_unv_default_outfile_member(self): def test_unv_default_extension_member(self): unv_handler = fh.UnvHandler() - assert unv_handler.extension == 'unv' + assert unv_handler.extension == '.unv' def test_unv_parse_failing_filename_type(self): @@ -159,8 +162,11 @@ def test_unv_write_comparison(self): self.assertTrue(filecmp.cmp(outfilename, outfilename_expected)) os.remove(outfilename) - - # VTK tests + + +class TestVtkHandler(TestCase): + + def test_vtk_instantiation(self): vtk_handler = fh.VtkHandler() @@ -177,7 +183,7 @@ def test_vtk_default_outfile_member(self): def test_vtk_default_extension_member(self): vtk_handler = fh.VtkHandler() - assert vtk_handler.extension == 'vtk' + assert vtk_handler.extension == '.vtk' def test_vtk_parse_failing_filename_type(self): @@ -286,7 +292,10 @@ def test_vtk_write_comparison(self): os.remove(outfilename) - # STL tests + +class TestStlHandler(TestCase): + + def test_stl_instantiation(self): stl_handler = fh.StlHandler() @@ -303,7 +312,7 @@ def test_stl_default_outfile_member(self): def test_stl_default_extension_member(self): stl_handler = fh.StlHandler() - assert stl_handler.extension == 'stl' + assert stl_handler.extension == '.stl' def test_stl_parse_failing_filename_type(self): @@ -427,7 +436,10 @@ def test_stl_plot_failing_outfile_type(self): stl_handler.plot(plot_file=3) - # openFOAM tests + +class TestOpenFoamHandler(TestCase): + + def test_open_foam_instantiation(self): open_foam_handler = fh.OpenFoamHandler() diff --git a/tests/test_free_form.py b/tests/test_freeform.py similarity index 96% rename from tests/test_free_form.py rename to tests/test_freeform.py index 777ba48..efafb60 100644 --- a/tests/test_free_form.py +++ b/tests/test_freeform.py @@ -1,13 +1,13 @@ from unittest import TestCase import unittest -import pygem.free_form as ffd -import pygem.ffd_parameters as ffdp +import pygem.freeform as ffd +import pygem.params as ffdp import numpy as np -class TestFFD(TestCase): +class TestFreeform(TestCase): def test_ffd_parameters_member(self): diff --git a/tests/test_package.py b/tests/test_package.py new file mode 100644 index 0000000..c2601d7 --- /dev/null +++ b/tests/test_package.py @@ -0,0 +1,39 @@ + +from unittest import TestCase +import unittest +import pkgutil +from os import walk +from os import path + + +class TestPackage(TestCase): + + + def test_modules_name(self): + import pygem + package = pygem + mod = ['__init__.py'] + for __, modname, __ in pkgutil.iter_modules(package.__path__): + mod.append(modname + '.py') + + f_aux = [] + for (__, __, filenames) in walk('pygem'): + f_aux.extend(filenames) + + f = [] + for i in f_aux: + __, file_ext = path.splitext(i) + if file_ext == '.py': + f.append(i) + + self.assertItemsEqual(mod, f) + + + def test_import_pg_1(self): + import pygem as pg + params = pg.params.FFDParameters() + + + def test_import_pg_2(self): + import pygem as pg + mat = pg.affine.angles2matrix(2) \ No newline at end of file diff --git a/tests/test_ffd_parameters.py b/tests/test_params.py similarity index 99% rename from tests/test_ffd_parameters.py rename to tests/test_params.py index 11000bb..b2f2f37 100644 --- a/tests/test_ffd_parameters.py +++ b/tests/test_params.py @@ -1,7 +1,7 @@ from unittest import TestCase import unittest -import pygem.ffd_parameters as ffdp +import pygem.params as ffdp import numpy as np import filecmp import os