39 const int num_vtx = 40;
40 std::vector< double > coords( 3 * num_vtx, 0.0 );
48 std::vector< EntityHandle > dead_verts;
49 for(
int i = num_vtx / 4; i < num_vtx; i += num_vtx / 4 )
53 dead_verts.push_back( *j );
68 CHECK_EQUAL( (
int)( num_vtx - dead_verts.size() ), num_vtx2 );
78 const int num_vtx = 40;
79 std::vector< double > coords( 3 * num_vtx, 0.0 );
87 std::vector< EntityHandle > dead_verts;
88 for(
int i = num_vtx / 4; i < num_vtx; i += num_vtx / 4 )
92 dead_verts.push_back( *j );
105 std::vector< EntityHandle > list;
114 double vtxcoords[] = { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0 };
116 rval =
moab.create_vertices( vtxcoords, 3, verts );
CHECK_ERR( rval );
121 std::copy( verts.
begin(), verts.
end(), conn );
125 rval =
moab.create_meshset( MESHSET_ORDERED, set );
CHECK_ERR( rval );
152 double vtxcoords[] = { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0 };
154 rval =
moab.create_vertices( vtxcoords, 3, verts );
CHECK_ERR( rval );
159 std::copy( verts.
begin(), verts.
end(), conn );
163 rval =
moab.create_meshset( MESHSET_ORDERED, set );
CHECK_ERR( rval );
174 rval =
moab.tag_get_handle(
"__FILE_ID_FOR_SETS", setFileIdTag );
CHECK_ERR( rval );
175 CHECK( setFileIdTag );
180 std::vector< long > vals( sets.
size() );
181 rval =
moab.tag_get_data( setFileIdTag, sets, &vals[0] );
CHECK_ERR( rval );
200 coords[3][0] = 3.14 * idx;
204 coords[4][1] = 3.14 * idx;
208 coords[5][2] = 3.14 * idx;
246 double coords2[6][3];
248 std::vector< bool > match( 6,
true );
249 for(
int i = 0; i < num_vtx; ++i )
252 for(
int j = 0; j < num_vtx; ++j )
256 double d[3] = { coords[i][0] - coords2[j][0], coords[i][1] - coords2[j][1],
257 coords[i][2] - coords2[j][2] };
258 double ds = d[0] * d[0] + d[1] * d[1] + d[2] * d[2];
276 std::vector< EntityHandle >
children, parents;
318 const int last_idx = idx;
319 std::cerr <<
"Created binary tree containing " << last_idx <<
" nodes." << std::endl;
321 std::ostringstream str;
334 const void* vals[] = { &idx };
337 root = roots.
front();
348 const char* str = getenv(
"MAX_DEPTH" );
366 int main(
int argc,
char* argv[] )
369 int fail = MPI_Init( &argc, &argv );
373 bool do_big_tree_test =
false;
374 for(
int i = 1; i < argc; ++i )
376 if( std::string( argv[i] ) ==
"-k" )
378 else if( std::string( argv[i] ) ==
"-b" )
379 do_big_tree_test =
true;
382 std::cerr <<
"Usage: " << argv[0] <<
" [-k] [-b]" << std::endl;
395 if( do_big_tree_test )
401 fail = MPI_Finalize();
417 const size_t num_vtx = 171;
418 const size_t num_pri = 12;
419 const size_t num_pyr = 8;
420 const size_t num_hex = 100;
421 const size_t num_set = 25;
423 mb.
load_file( std::string( TestDir +
"unittest/h5file/rocket_ents_in_assm.h5m" ).c_str() );
442 Range range, expected;
445 expected.
insert( VTX1, VTX1 + num_vtx - 1 );
453 expected.
insert( PRI1, PRI1 + num_pri - 1 );
461 expected.
insert( PYR1, PYR1 + num_pyr - 1 );
469 expected.
insert( HEX1, HEX1 + num_hex - 1 );
477 expected.
insert( SET1, SET1 + num_set - 1 );
486 expected.
insert( PYR1 + 0, PYR1 + 3 );
497 expected.
insert( PYR1 + 0, PYR1 + 7 );
498 expected.
insert( PRI1 + 0, PRI1 + 11 );
499 expected.
insert( HEX1 + 0, HEX1 + 99 );
500 expected.
insert( SET1 + 9 );
501 expected.
insert( SET1 + 17 );
508 expected.
insert( PYR1 + 4, PYR1 + 7 );
509 expected.
insert( PRI1 + 8, PRI1 + 11 );
510 expected.
insert( HEX1 + 0, HEX1 + 95 );
511 expected.
insert( SET1 + 10 );
512 expected.
insert( SET1 + 16 );
519 expected.
insert( PYR1 + 4, PYR1 + 7 );
520 expected.
insert( PRI1 + 8, PRI1 + 11 );
521 expected.
insert( HEX1 + 0, HEX1 + 47 );
522 expected.
insert( SET1 + 11 );
529 expected.
insert( PYR1 + 4, PYR1 + 7 );
530 expected.
insert( PRI1 + 8, PRI1 + 11 );
531 expected.
insert( SET1 + 12, SET1 + 15 );
538 expected.
insert( PYR1 + 5 );
539 expected.
insert( PRI1 + 9 );
546 expected.
insert( PYR1 + 6 );
547 expected.
insert( PRI1 + 10 );
554 expected.
insert( PYR1 + 7 );
555 expected.
insert( PRI1 + 11 );
568 expected.
insert( HEX1 + 48, HEX1 + 95 );
575 expected.
insert( PYR1 + 0, PYR1 + 3 );
576 expected.
insert( PRI1 + 0, PRI1 + 7 );
577 expected.
insert( HEX1 + 96, HEX1 + 99 );
578 expected.
insert( SET1 + 18 );
579 expected.
insert( SET1 + 20 );
586 expected.
insert( PRI1 + 0, PRI1 + 7 );
587 expected.
insert( HEX1 + 96, HEX1 + 99 );
588 expected.
insert( SET1 + 19 );
595 expected.
insert( PRI1 + 0, PRI1 + 7 );
602 expected.
insert( PYR1 + 0, PYR1 + 3 );
603 expected.
insert( SET1 + 21, SET1 + 24 );
610 expected.
insert( PYR1 + 1 );
617 expected.
insert( PYR1 + 2 );
624 expected.
insert( PYR1 + 3 );
631 expected.
insert( PYR1 + 4 );
632 expected.
insert( PRI1 + 8 );
641 const char filename2[] =
"test_set_flags.h5m";
647 const int nverts = 20;
648 double coords[3 * nverts] = { 0.0 };
657 for(
int i = 0; i < nverts; ++i )
663 const int set_verts1[] = { 1, 2, 3, 4, 8, 13, 14, 15 };
664 const int set_verts2[] = { 3, 9, 10, 11, 12, 13, 14, 15, 16, 17 };
665 const int num_verts1 =
sizeof( set_verts1 ) /
sizeof( set_verts1[0] );
666 const int num_verts2 =
sizeof( set_verts1 ) /
sizeof( set_verts1[0] );
669 EntityHandle set_handles1[num_verts1], set_handles2[num_verts2];
670 for(
int i = 0; i < num_verts1; ++i )
671 set_handles1[i] = *( verts.
begin() + set_verts1[i] - 1 );
672 for(
int i = 0; i < num_verts2; ++i )
673 set_handles2[i] = *( verts.
begin() + set_verts2[i] - 1 );
703 for(
int i = 0; i < 6; ++i )
707 const void* vals[] = { &
id };
710 sets[i] = tmp.
front();
729 int set_ids1[num_verts1], set_ids2[num_verts2];
735 std::sort( set_ids1, set_ids1 + num_verts1 );
742 std::sort( set_ids2, set_ids2 + num_verts2 );
749 std::sort( set_ids1, set_ids1 + num_verts1 );
756 std::sort( set_ids2, set_ids2 + num_verts2 );
763 std::sort( set_ids1, set_ids1 + num_verts1 );
770 std::sort( set_ids2, set_ids2 + num_verts2 );