Exemple #1
0
 def test_ffd_default_modified_mesh_points_member(self):
     params = ffdp.FFDParameters()
     params.read_parameters(
         filename='tests/test_datasets/parameters_test_ffd_identity.prm')
     params.print_info()
     mesh_points = np.load('tests/test_datasets/meshpoints_sphere_orig.npy')
     free_form = ffd.FFD(params, mesh_points)
     assert free_form.modified_mesh_points == None
Exemple #2
0
 def test_ffd_original_mesh_points_member(self):
     params = ffdp.FFDParameters()
     params.read_parameters(
         filename='tests/test_datasets/parameters_test_ffd_identity.prm')
     mesh_points = np.load('tests/test_datasets/meshpoints_sphere_orig.npy')
     free_form = ffd.FFD(params, mesh_points)
     np.testing.assert_array_almost_equal(free_form.original_mesh_points,
                                          mesh_points)
Exemple #3
0
	def test_utils_write_modified_box(self):
		params = pars.FFDParameters()
		params.read_parameters(filename='tests/test_datasets/parameters_test_ffd_sphere.prm')
		
		outfilename = 'tests/test_datasets/box_test_sphere.vtk'
		
		ut.write_bounding_box(params, outfilename)
		os.remove(outfilename)
Exemple #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 = ffdp.FFDParameters()
        params.build_bounding_box(cube)

        np.testing.assert_array_almost_equal(params.lenght_box, tops, decimal=5)
Exemple #5
0
    def test_write_parameters_filename_default(self):
        params = ffdp.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)
Exemple #6
0
 def test_read_parameters_rotation_matrix(self):
     params = ffdp.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)
Exemple #7
0
 def test_calculate_bb_dimensions(self):
     min_vals = np.zeros(3)
     max_vals = np.ones(3)
     cube = BRepPrimAPI_MakeBox(1, 1, 1).Shape()
     params = ffdp.FFDParameters()
     xyz_min, xyz_max = params._calculate_bb_dimension(cube)
     np.testing.assert_almost_equal(xyz_min, min_vals, decimal=5)
     np.testing.assert_almost_equal(xyz_max, max_vals, decimal=5)
Exemple #8
0
 def test_read_parameters_array_mu_z(self):
     params = ffdp.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)
Exemple #9
0
 def test_set_box_dimension(self):
     origin = np.array([0., 0., 0.])
     tops = np.array([10., 10., 10.])
     params = ffdp.FFDParameters()
     params.origin_box = origin
     params._set_box_dimensions(origin, tops)
     self.assertEqual(params.lenght_box_x, tops[0])
     self.assertEqual(params.lenght_box_y, tops[1])
     self.assertEqual(params.lenght_box_z, tops[2])
Exemple #10
0
 def test_set_modification_parameters_to_zero(self):
     params = ffdp.FFDParameters([5, 5, 5])
     params._set_transformation_params_to_zero()
     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)))
Exemple #11
0
	def test_read_parameters_position_vertex_3(self):
		params = ffdp.FFDParameters(n_control_points=[3, 2, 2])
		params.read_parameters('tests/test_datasets/parameters_sphere.prm')
		position_vertex_3_exact = np.array(
			[-2.82719042, -85.65053198, 37.85915459]
		)
		np.testing.assert_array_almost_equal(
			params.position_vertex_3, position_vertex_3_exact
		)
Exemple #12
0
	def test_read_parameters_position_vertex_1(self):
		params = ffdp.FFDParameters(n_control_points=[3, 2, 2])
		params.read_parameters('tests/test_datasets/parameters_sphere.prm')
		position_vertex_1_exact = np.array(
			[24.17322326, -52.02107006, -53.05309404]
		)
		np.testing.assert_array_almost_equal(
			params.position_vertex_1, position_vertex_1_exact
		)
Exemple #13
0
 def test_ffd_identity(self):
     params = ffdp.FFDParameters()
     params.read_parameters(
         filename='tests/test_datasets/parameters_test_ffd_identity.prm')
     mesh_points = np.load('tests/test_datasets/meshpoints_sphere_orig.npy')
     free_form = ffd.FFD(params, mesh_points)
     free_form.perform()
     mesh_points_test = free_form.modified_mesh_points
     np.testing.assert_array_almost_equal(mesh_points_test, mesh_points)
Exemple #14
0
 def test_set_mapping(self):
     origin = np.array([0., 0., 0.])
     tops = np.array([10., 10., 10.])
     params = ffdp.FFDParameters()
     params.origin_box = origin
     params._set_box_dimensions(origin, tops)
     params._set_mapping()
     for i in range(3):
         self.assertEqual(params.psi_mapping[i][i], 1. / tops[i])
         self.assertEqual(params.inv_psi_mapping[i][i], tops[i])
Exemple #15
0
    def test_write_parameters(self):
        params = ffdp.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)
Exemple #16
0
	def test_calculate_bb_dimensions_triangulate(self):
		a = gp_Pnt(-1, -1, -1)
		b = gp_Pnt(3, 3, 3)

		box = BRepPrimAPI_MakeBox(a, b).Shape()
		sphere = BRepPrimAPI_MakeSphere(3).Shape()
		section = BRepAlgoAPI_Cut(box, sphere).Shape()
		params = ffdp.FFDParameters()
		xyz_min, xyz_max = params._calculate_bb_dimension(section, triangulate=True)
		correct_min = -1 * np.ones(3)
		correct_max = 3 * np.ones(3)
		np.testing.assert_almost_equal(xyz_min, correct_min, decimal=1)
		np.testing.assert_almost_equal(xyz_max, correct_max, decimal=1)
Exemple #17
0
	def test_build_bounding_box(self):
		origin = np.array([0., 0., 0.])
		tops = np.array([1., 1., 1.])
		cube = BRepPrimAPI_MakeBox(*tops).Shape()
		params = ffdp.FFDParameters()
		params.build_bounding_box(cube)

		self.assertAlmostEqual(params.lenght_box_x, tops[0], places=5)
		self.assertAlmostEqual(params.lenght_box_y, tops[1], places=5)
		self.assertAlmostEqual(params.lenght_box_z, tops[2], places=5)
		np.testing.assert_almost_equal(params.position_vertex_0, origin, decimal=5)
		np.testing.assert_almost_equal(params.position_vertex_1, [1., 0., 0.], decimal=5)
		np.testing.assert_almost_equal(params.position_vertex_2, [0., 1., 0.], decimal=5)
		np.testing.assert_almost_equal(params.position_vertex_3, [0., 0., 1.], decimal=5)
Exemple #18
0
 def test_set_position_of_vertices(self):
     vertex_0 = [0., 0., 0.]
     vertex_1 = [1., 0., 0.]
     vertex_2 = [0., 1., 0.]
     vertex_3 = [0., 0., 1.]
     tops = np.array([1., 1., 1.])
     params = ffdp.FFDParameters()
     params.origin_box = vertex_0
     params._set_box_dimensions(vertex_0, tops)
     params._set_position_of_vertices()
     np.testing.assert_equal(params.position_vertex_0, vertex_0)
     np.testing.assert_equal(params.position_vertex_1, vertex_1)
     np.testing.assert_equal(params.position_vertex_2, vertex_2)
     np.testing.assert_equal(params.position_vertex_3, vertex_3)
Exemple #19
0
	def test_utils_check_vtk_modified_box(self):
		params = pars.FFDParameters()
		params.read_parameters(filename='tests/test_datasets/parameters_test_ffd_sphere.prm')
		
		outfilename = 'tests/test_datasets/box_test_sphere.vtk'
		if vtk.VTK_MAJOR_VERSION <= 5:
			outfilename_expected = 'tests/test_datasets/box_modified_test_sphere_true_version5.vtk'
		else:
			outfilename_expected = 'tests/test_datasets/box_modified_test_sphere_true_version6.vtk'
		
		ut.write_bounding_box(params, outfilename)
		
		self.assertTrue(filecmp.cmp(outfilename, outfilename_expected))
		os.remove(outfilename)
Exemple #20
0
 def test_class_members_default_position_vertex_3(self):
     params = ffdp.FFDParameters()
     np.testing.assert_array_almost_equal(params.position_vertex_3,
                                          np.array([0., 0., 1.]))
Exemple #21
0
 def test_class_members_generic_n_control_points(self):
     params = ffdp.FFDParameters([2, 3, 5])
     assert np.array_equal(params.n_control_points, [2, 3, 5])
Exemple #22
0
 def test_class_members_default_rotation_matrix(self):
     params = ffdp.FFDParameters()
     np.testing.assert_array_almost_equal(params.rotation_matrix, np.eye(3))
Exemple #23
0
 def test_class_members_default_position_vertex_0(self):
     params = ffdp.FFDParameters()
     np.testing.assert_array_almost_equal(params.position_vertex_0,
                                          np.zeros(3))
Exemple #24
0
 def test_class_members_default_inv_psi_mapping(self):
     params = ffdp.FFDParameters()
     np.testing.assert_array_almost_equal(params.inv_psi_mapping,
                                          np.diag([1, 1, 1]))
Exemple #25
0
 def test_class_members_default_array_mu_z(self):
     params = ffdp.FFDParameters()
     np.testing.assert_array_almost_equal(params.array_mu_z,
                                          np.zeros((2, 2, 2)))
Exemple #26
0
 def test_write_parameters_filename_default_existance(self):
     params = ffdp.FFDParameters(n_control_points=[3, 2, 2])
     params.write_parameters()
     outfilename = 'parameters.prm'
     assert os.path.isfile(outfilename)
     os.remove(outfilename)
Exemple #27
0
 def test_class_members_default_origin_box(self):
     params = ffdp.FFDParameters()
     assert np.array_equal(params.origin_box, np.zeros(3))
Exemple #28
0
 def test_class_members_generic_array_mu_z(self):
     params = ffdp.FFDParameters([2, 3, 5])
     np.testing.assert_array_almost_equal(params.array_mu_z,
                                          np.zeros((2, 3, 5)))
Exemple #29
0
 def test_print_info(self):
     params = ffdp.FFDParameters(n_control_points=[3, 2, 2])
     print(params)
Exemple #30
0
 def test_class_members_default_rot_angle(self):
     params = ffdp.FFDParameters()
     assert np.array_equal(params.rot_angle, np.zeros(3))