MOAB: Mesh Oriented datABase  (version 5.5.0)
test_both.cpp File Reference
#include "iGeom.h"
#include "iMesh.h"
#include "iRel.h"
#include "TestUtil.hpp"
#include <cstdlib>
+ Include dependency graph for test_both.cpp:

Go to the source code of this file.

Functions

void test_both ()
 
void test_change_to_both ()
 
void test_change_to_set ()
 
int main ()
 

Variables

iGeom_Instance geom
 
iMesh_Instance mesh
 
iRel_Instance rel
 
iBase_EntityHandle geom_ent
 
iBase_EntityHandle mesh_ents [4]
 
iBase_EntitySetHandle mesh_set
 

Function Documentation

◆ main()

int main ( )

Definition at line 82 of file test_both.cpp.

83 {
84  int err;
85  int num_fail = 0;
86 
87  iGeom_newGeom( 0, &geom, &err, 0 );
88  iMesh_newMesh( 0, &mesh, &err, 0 );
89  iRel_create( 0, &rel, &err, 0 );
90 
91  iGeom_createBrick( geom, 2, 2, 2, &geom_ent, &err );
92 
93  double coords[] = {
94  0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 0, 0,
95  };
96 
97  iBase_EntityHandle* mesh_ents_ptr = mesh_ents;
98  int mesh_ents_alloc = 4, mesh_ents_size;
99  iMesh_createVtxArr( mesh, 4, iBase_INTERLEAVED, coords, 12, &mesh_ents_ptr, &mesh_ents_alloc, &mesh_ents_size,
100  &err );
101 
102  iMesh_createEntSet( mesh, false, &mesh_set, &err );
103  iMesh_addEntArrToSet( mesh, mesh_ents, mesh_ents_size, mesh_set, &err );
104 
105  num_fail += RUN_TEST( test_both );
106  num_fail += RUN_TEST( test_change_to_both );
107  num_fail += RUN_TEST( test_change_to_set );
108 
109  iRel_destroy( rel, &err );
110  iMesh_dtor( mesh, &err );
111  iGeom_dtor( geom, &err );
112 
113  return num_fail;
114 }

References geom, geom_ent, iBase_INTERLEAVED, iMesh_addEntArrToSet, iMesh_createEntSet, iMesh_createVtxArr, iMesh_dtor, iMesh_newMesh, iRel_create, iRel_destroy, mesh, mesh_ents, mesh_set, rel, RUN_TEST, test_both(), test_change_to_both(), and test_change_to_set().

◆ test_both()

void test_both ( )

Definition at line 18 of file test_both.cpp.

19 {
20  int err;
21  iRel_PairHandle pair;
22 
24  iRel_ACTIVE, &pair, &err );CHECK_ERR( err );
25 
26  iRel_setEntSetRelation( rel, pair, geom_ent, mesh_set, &err );CHECK_ERR( err );
27 
28  iBase_EntityHandle* related_ents = NULL;
29  int related_ents_alloc = 0, related_ents_size;
30  iRel_getEntArrEntArrRelation( rel, pair, mesh_ents, 4, 1, &related_ents, &related_ents_alloc, &related_ents_size,
31  &err );CHECK_ERR( err );
32 
33  for( int i = 0; i < related_ents_size; i++ )
34  CHECK_EQUAL( related_ents[i], geom_ent );
35 
36  free( related_ents );
37 }

References CHECK_EQUAL, CHECK_ERR, geom, geom_ent, iRel_ACTIVE, iRel_BOTH, iRel_createPair, iRel_ENTITY, iRel_getEntArrEntArrRelation, iRel_IGEOM_IFACE, iRel_IMESH_IFACE, iRel_setEntSetRelation, mesh, mesh_ents, mesh_set, and rel.

Referenced by main().

◆ test_change_to_both()

void test_change_to_both ( )

Definition at line 39 of file test_both.cpp.

40 {
41  int err;
42  iRel_PairHandle pair;
43 
45  iRel_ACTIVE, &pair, &err );CHECK_ERR( err );
46 
47  iRel_setEntSetRelation( rel, pair, geom_ent, mesh_set, &err );CHECK_ERR( err );
48 
49  iRel_changePairType( rel, pair, iRel_ENTITY, iRel_BOTH, &err );CHECK_ERR( err );
50 
51  iBase_EntityHandle* related_ents = NULL;
52  int related_ents_alloc = 0, related_ents_size;
53  iRel_getEntArrEntArrRelation( rel, pair, mesh_ents, 4, 1, &related_ents, &related_ents_alloc, &related_ents_size,
54  &err );CHECK_ERR( err );
55 
56  for( int i = 0; i < related_ents_size; i++ )
57  CHECK_EQUAL( related_ents[i], geom_ent );
58 
59  free( related_ents );
60 }

References CHECK_EQUAL, CHECK_ERR, geom, geom_ent, iRel_ACTIVE, iRel_BOTH, iRel_changePairType, iRel_createPair, iRel_ENTITY, iRel_getEntArrEntArrRelation, iRel_IGEOM_IFACE, iRel_IMESH_IFACE, iRel_SET, iRel_setEntSetRelation, mesh, mesh_ents, mesh_set, and rel.

Referenced by main().

◆ test_change_to_set()

void test_change_to_set ( )

Definition at line 62 of file test_both.cpp.

63 {
64  int err;
65  iRel_PairHandle pair;
66 
68  iRel_ACTIVE, &pair, &err );CHECK_ERR( err );
69 
70  iRel_setEntSetRelation( rel, pair, geom_ent, mesh_set, &err );CHECK_ERR( err );
71 
72  iRel_changePairType( rel, pair, iRel_ENTITY, iRel_SET, &err );CHECK_ERR( err );
73 
74  for( int i = 0; i < 4; i++ )
75  {
76  iBase_EntityHandle related_ent;
77  iRel_getEntEntRelation( rel, pair, mesh_ents[i], 1, &related_ent, &err );
78  CHECK( err != iBase_SUCCESS );
79  }
80 }

References CHECK, CHECK_ERR, geom, geom_ent, iBase_SUCCESS, iRel_ACTIVE, iRel_BOTH, iRel_changePairType, iRel_createPair, iRel_ENTITY, iRel_getEntEntRelation, iRel_IGEOM_IFACE, iRel_IMESH_IFACE, iRel_SET, iRel_setEntSetRelation, mesh, mesh_ents, mesh_set, and rel.

Referenced by main().

Variable Documentation

◆ geom

◆ geom_ent

Definition at line 14 of file test_both.cpp.

Referenced by main(), test_both(), test_change_to_both(), and test_change_to_set().

◆ mesh

Definition at line 11 of file test_both.cpp.

Referenced by all_adjacency_regression(), array_allocation(), build_tree(), check_esets(), closedsurface_uref_hirec_convergence_study(), compare_array_iter(), compare_single_iter(), compute_normals(), moab::TempestRemapper::convert_mesh_to_tempest_private(), moab::TempestRemapper::convert_tempest_mesh_private(), create_relation(), create_relation_test(), entity_connectivity_test(), entity_sets_subtest(), entity_sets_test(), entityset_double_tag_test(), entityset_int_tag_test(), entityset_struct_tag_test(), entityset_tag_delete_test(), entityset_tag_test(), FBiGeom_newGeomFromMesh(), get_imesh_mesh(), get_native_mesh(), get_root(), load_geom_mesh(), load_geom_mesh_test(), load_mesh_test(), moab::TempestRemapper::load_tempest_mesh_private(), moab::WriteGMV::local_write_mesh(), main(), mesh_double_tag_test(), mesh_int_tag_test(), mesh_struct_tag_test(), mesh_tag_delete_test(), mesh_tag_test(), ordered_set_regression(), print_iMesh_error(), print_mesh_info(), query_elem_to_vert(), query_relations_test(), query_vert_to_elem(), relate_geom_mesh(), relate_geom_mesh_test(), run_global_smoother(), run_local_smoother(), run_local_smoother2(), run_quality_optimizer(), run_solution_mesh_optimizer(), set_remove_contained_regression(), moab::TempestRemapper::SetMesh(), tag_info_test(), test_both(), test_change_to_both(), test_change_to_set(), test_delete_type_tag(), test_existinterface(), test_get_set_variable_length_mesh(), test_getEntArrAdj_conn(), test_getEntArrAdj_down(), test_getEntArrAdj_invalid_size(), test_getEntArrAdj_none(), test_getEntArrAdj_up(), test_getEntArrAdj_vertex(), test_invalid_parallel_option(), test_iterator(), test_iterator_common(), test_mesh_value(), test_step_iter(), test_tag_iterate(), test_tags_retrieval(), testB(), testC(), topology_adjacency_test(), topology_dimension_test(), moab::WriteCCMIO::transform_coords(), vertex_coordinates_test(), vertex_double_tag_test(), vertex_int_tag_test(), vertex_struct_tag_test(), vertex_tag_delete_test(), vertex_tag_test(), moab::WriteGMV::write_file(), moab::WriteSLAC::write_nodes(), moab::WriteTemplate::write_nodes(), moab::WriteNCDF::write_nodes(), moab::WriteCCMIO::write_problem_description(), and write_vtk_mesh().

◆ mesh_ents

iBase_EntityHandle mesh_ents[4]

Definition at line 15 of file test_both.cpp.

Referenced by main(), test_both(), test_change_to_both(), and test_change_to_set().

◆ mesh_set

◆ rel