示例#1
0
 def test_read_parameters_rotation_matrix(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     rotation_matrix_exact = np.array(
         [[0.98162718, 0., 0.190809], [0.06619844, 0.93788893, -0.34056147],
          [-0.17895765, 0.34693565, 0.92065727]])
     np.testing.assert_array_almost_equal(params.rotation_matrix,
                                          rotation_matrix_exact)
示例#2
0
 def test_read_parameters_array_mu_z(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     array_mu_z_exact = np.array(
         [0., -0.2, 0., -0.45622985, 0., 0., 0., 0., -1.22, 0., -1.,
          0.]).reshape((3, 2, 2))
     np.testing.assert_array_almost_equal(params.array_mu_z,
                                          array_mu_z_exact)
示例#3
0
    def test_write_parameters_filename_default(self):
        params = FFDParameters(n_control_points=[3, 2, 2])
        params.write_parameters()
        outfilename = 'parameters.prm'
        outfilename_expected = 'tests/test_datasets/parameters_default.prm'

        self.assertTrue(filecmp.cmp(outfilename, outfilename_expected))
        os.remove(outfilename)
示例#4
0
    def test_build_bounding_box_1(self):
        origin = np.array([0., 0., 0.])
        tops = np.array([1., 1., 1.])
        cube = BRepPrimAPI_MakeBox(*tops).Shape()
        params = FFDParameters()
        params.build_bounding_box(cube)

        np.testing.assert_array_almost_equal(params.box_length, tops, decimal=5)
示例#5
0
 def test_set_position_of_vertices(self):
     expected_matrix = np.array([[0., 0., 0.], [1., 0., 0.], [0., 1., 0.],
                                 [0., 0., 1.]])
     tops = np.array([1., 1., 1.])
     params = FFDParameters()
     params.box_origin = expected_matrix[0]
     params.box_length = tops - expected_matrix[0]
     np.testing.assert_almost_equal(
         params.position_vertices, expected_matrix, decimal=5)
示例#6
0
 def test_save_points_deformed(self):
     params = FFDParameters()
     params.read_parameters(
         filename='tests/test_datasets/parameters_test_ffd_sphere.prm')
     outfilename = 'tests/test_datasets/box_test_sphere_deformed_out.vtk'
     outfilename_expected = 'tests/test_datasets/box_test_sphere_deformed.vtk'
     params.save_points(outfilename, True)
     self.assertTrue(filecmp.cmp(outfilename, outfilename_expected))
     os.remove(outfilename)
示例#7
0
 def test_set_modification_parameters_to_zero(self):
     params = FFDParameters([5, 5, 5])
     params.reset_deformation()
     np.testing.assert_almost_equal(
         params.array_mu_x, np.zeros(shape=(5, 5, 5)))
     np.testing.assert_almost_equal(
         params.array_mu_y, np.zeros(shape=(5, 5, 5)))
     np.testing.assert_almost_equal(
         params.array_mu_z, np.zeros(shape=(5, 5, 5)))
示例#8
0
    def test_write_parameters(self):
        params = FFDParameters(n_control_points=[3, 2, 2])
        params.read_parameters('tests/test_datasets/parameters_sphere.prm')

        outfilename = 'tests/test_datasets/parameters_sphere_out.prm'
        outfilename_expected = 'tests/test_datasets/parameters_sphere_out_true.prm'
        params.write_parameters(outfilename)

        self.assertTrue(filecmp.cmp(outfilename, outfilename_expected))
        os.remove(outfilename)
示例#9
0
    def test_read_parameters_position_vertex_0(self):
        params = FFDParameters(n_control_points=[3, 2, 2])
        params.read_parameters('tests/test_datasets/parameters_sphere.prm')
        position_vertices = np.array(
            [[-20.0, -55.0, -45.0], [24.17322326, -52.02107006, -53.05309404],
             [-20., 29.41000412,
              -13.77579136], [-2.82719042, -85.65053198, 37.85915459]])

        np.testing.assert_array_almost_equal(params.position_vertices,
                                             position_vertices)
示例#10
0
    def test_build_bounding_box_2(self):
        origin = np.array([0., 0., 0.])
        tops = np.array([1., 1., 1.])
        cube = BRepPrimAPI_MakeBox(*tops).Shape()
        params = FFDParameters()
        params.build_bounding_box(cube)

        expected_matrix = np.array([[0., 0., 0.], [1., 0., 0.], [0., 1., 0.],
                                    [0., 0., 1.]])
        np.testing.assert_almost_equal(
            params.position_vertices, expected_matrix, decimal=5)
示例#11
0
 def test_reflect_wrong_symmetry_plane_3(self):
     params = FFDParameters([3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     params.array_mu_z = np.array(
         [0.2, 0., 0., 0., 0.5, 0., 0., 0., 1., 0., 0.3, 0.1]).reshape((3, 2,
                                                                      2))
     with self.assertRaises(RuntimeError):
         params.reflect(axis=2)
示例#12
0
 def test_reflect_axis_2(self):
     params = FFDParameters([3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     params.array_mu_z = np.array(
         [0.2, 0., 0., 0., 0.5, 0., 0., 0., 0., 0., 0., 0.]).reshape((3, 2,
                                                                      2))
     params.reflect(axis=2)
     array_mu_z_exact = np.array([0.2, 0., -0.2, 0., 0., 0., 0.5, 0., -0.5,
         0., 0., -0., 0., 0., -0., 0., 0., -0.]).reshape((3, 2, 3))
     np.testing.assert_array_almost_equal(params.array_mu_z,
                                          array_mu_z_exact)
示例#13
0
 def test_read_parameters_conversion_unit(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert params.conversion_unit == 1.
示例#14
0
 def test_class_members_default_position_vertices(self):
     params = FFDParameters()
     expected_matrix = np.array([[0., 0., 0.], [1., 0., 0.], [0., 1., 0.],
                                 [0., 0., 1.]])
     np.testing.assert_array_almost_equal(params.position_vertices,
                                          expected_matrix)
示例#15
0
 def test_read_parameters_inv_psi_mapping(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     inv_psi_mapping_exact = np.diag([45., 90., 90.])
     np.testing.assert_array_almost_equal(params.inv_psi_mapping,
                                          inv_psi_mapping_exact)
示例#16
0
 def test_read_parameters_box_length_x(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert np.array_equal(params.box_length, [45.0, 90.0, 90.0])
示例#17
0
 def test_read_parameters_box_origin(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     box_origin_exact = np.array([-20.0, -55.0, -45.0])
     np.testing.assert_array_almost_equal(params.box_origin,
                                          box_origin_exact)
示例#18
0
 def test_read_parameters_n_control_points(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert np.array_equal(params.n_control_points, [3, 2, 2])
示例#19
0
 def test_read_parameters_psi_mapping(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     psi_mapping_exact = np.diag([0.02222222, 0.01111111, 0.01111111])
     np.testing.assert_array_almost_equal(params.psi_mapping,
                                          psi_mapping_exact)
示例#20
0
 def test_class_members_default_n_control_points(self):
     params = FFDParameters()
     assert np.array_equal(params.n_control_points, [2, 2, 2])
示例#21
0
 def test_read_parameters_rot_angle_x(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert np.array_equal(params.rot_angle, [20.3, 11.0, 0.])
示例#22
0
 def test_read_parameters_origin_box(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     origin_box_exact = np.array([-20.0, -55.0, -45.0])
     np.testing.assert_array_almost_equal(params.origin_box,
                                          origin_box_exact)
示例#23
0
 def test_reflect_n_control_points_3(self):
     params = FFDParameters([2, 3, 5])
     params.reflect(axis=2)
     assert np.array_equal(params.n_control_points, [2, 3, 9])
示例#24
0
 def test_class_members_generic_array_mu_z(self):
     params = FFDParameters([2, 3, 5])
     np.testing.assert_array_almost_equal(params.array_mu_z,
                                          np.zeros((2, 3, 5)))
示例#25
0
 def test_class_members_generic_n_control_points(self):
     params = FFDParameters([2, 3, 5])
     assert np.array_equal(params.n_control_points, [2, 3, 5])
示例#26
0
 def test_class_members_default_inv_psi_mapping(self):
     params = FFDParameters()
     np.testing.assert_array_almost_equal(params.inv_psi_mapping,
                                          np.diag([1, 1, 1]))
示例#27
0
 def test_read_parameters_inv_psi_mapping(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     inv_psi_mapping_exact = np.diag([45., 90., 90.])
     np.testing.assert_array_almost_equal(params.inv_psi_mapping,
                                          inv_psi_mapping_exact)
示例#28
0
 def test_read_parameters_position_vertex_0_origin(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     np.testing.assert_array_almost_equal(params.position_vertices[0],
                                          params.origin_box)
示例#29
0
 def test_read_parameters_conversion_unit(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert params.conversion_unit == 1.
示例#30
0
 def test_class_members_default_conversion_unit(self):
     params = FFDParameters()
     assert params.conversion_unit == 1.
示例#31
0
 def test_read_parameters_box_length_x(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert np.array_equal(params.box_length, [45.0, 90.0, 90.0])
示例#32
0
 def test_write_parameters_failing_filename_type(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     with self.assertRaises(TypeError):
         params.write_parameters(5)
示例#33
0
 def test_read_parameters_rot_angle_x(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert np.array_equal(params.rot_angle, [20.3, 11.0, 0.])
示例#34
0
 def test_read_parameters_position_vertex_0_origin(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     np.testing.assert_array_almost_equal(params.position_vertices[0],
                                          params.box_origin)
示例#35
0
 def test_read_parameters_psi_mapping(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     psi_mapping_exact = np.diag([0.02222222, 0.01111111, 0.01111111])
     np.testing.assert_array_almost_equal(params.psi_mapping,
                                          psi_mapping_exact)
示例#36
0
 def test_write_parameters_failing_filename_type(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     with self.assertRaises(TypeError):
         params.write_parameters(5)
示例#37
0
 def test_read_parameters_n_control_points(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.read_parameters('tests/test_datasets/parameters_sphere.prm')
     assert np.array_equal(params.n_control_points, [3, 2, 2])
示例#38
0
 def test_class_members_default_rotation_matrix(self):
     params = FFDParameters()
     np.testing.assert_array_almost_equal(params.rotation_matrix, np.eye(3))
示例#39
0
 def test_print(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     print(params)
示例#40
0
 def test_class_members_default_rot_angle(self):
     params = FFDParameters()
     assert np.array_equal(params.rot_angle, np.zeros(3))
示例#41
0
 def test_write_parameters_filename_default_existance(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.write_parameters()
     outfilename = 'parameters.prm'
     assert os.path.isfile(outfilename)
     os.remove(outfilename)
示例#42
0
 def test_reflect_wrong_axis(self):
     params = FFDParameters([2, 3, 5])
     with self.assertRaises(ValueError):
         params.reflect(axis=4)
示例#43
0
 def test_reflect_wrong_axis(self):
     params = FFDParameters([2, 3, 5])
     with self.assertRaises(ValueError):
         params.reflect(axis=4)
示例#44
0
 def test_class_members_default_array_mu_z(self):
     params = FFDParameters()
     np.testing.assert_array_almost_equal(params.array_mu_z,
                                          np.zeros((2, 2, 2)))
示例#45
0
 def test_write_parameters_filename_default_existance(self):
     params = FFDParameters(n_control_points=[3, 2, 2])
     params.write_parameters()
     outfilename = 'parameters.prm'
     assert os.path.isfile(outfilename)
     os.remove(outfilename)
示例#46
0
 def test_class_members_default_box_origin(self):
     params = FFDParameters()
     assert np.array_equal(params.box_origin, np.zeros(3))
示例#47
0
 def test_class_members_default_lenght_box(self):
     params = FFDParameters()
     assert np.array_equal(params.lenght_box, np.ones(3))
示例#48
0
 def test_reflect_box_length_3(self):
     params = FFDParameters([2, 3, 5])
     params.reflect(axis=2)
     assert params.box_length[2] == 2 
示例#49
0
 def test_reflect_n_control_points_3(self):
     params = FFDParameters([2, 3, 5])
     params.reflect(axis=2)
     assert np.array_equal(params.n_control_points, [2, 3, 9])
示例#50
0
 def test_reflect_box_length_3(self):
     params = FFDParameters([2, 3, 5])
     params.reflect(axis=2)
     assert params.box_length[2] == 2