25 #define CHECK( STR ) \
26 if( err != iBase_SUCCESS ) return print_error( STR, err, geom, __FILE__, __LINE__ )
28 #define STRINGIFY( S ) XSTRINGIFY( S )
29 #define XSTRINGIFY( S ) #S
37 std::cerr <<
"ERROR: " << desc << std::endl
38 <<
" Error code: " << err << std::endl
39 <<
" Error desc: " <<
buffer << std::endl
40 <<
" At : " << file <<
':' << line << std::endl;
50 template <
typename T >
62 arr = (
T*)malloc( s *
sizeof(
T ) );
63 for(
unsigned i = 0; i < s; ++i )
69 for(
int i = 0; i <
size(); ++i )
124 #define ARRAY_INOUT( A ) A.ptr(), &( A ).capacity(), &( A ).size()
125 #define ARRAY_IN( A ) &( A )[0], ( A ).size()
150 std::cout <<
"Success";
155 std::cout <<
"Failure";
160 int main(
int argc,
char* argv[] )
163 std::string engine_opt;
167 std::cout <<
"Using default input file: " <<
filename << std::endl;
175 std::cerr <<
"Usage: " << argv[0] <<
" [geom_filename]" << std::endl;
182 int number_tests_not_implemented = 0;
189 CHECK(
"Interface initialization didn't work properly." );
192 std::cout <<
"\n\nITAPS GEOMETRY INTERFACE TEST PROGRAM:\n\n";
195 std::cout <<
" Smooth faceting load and initialization: \n";
203 std::cout <<
" tags: ";
219 std::cout <<
" topology adjacencies: ";
226 std::cout <<
" geometry evaluation: \n";
233 std::cout <<
" normals geometry evaluation: \n";
240 std::cout <<
" ray intersection test: \n";
302 std::cout <<
" shutdown: ";
310 std::cout <<
"\nTSTT TEST SUMMARY: \n"
313 <<
" Number Not Implemented: " << number_tests_not_implemented <<
"\n"
329 char opts[] =
"SMOOTH;";
332 CHECK(
"ERROR : can not load a geometry" );
336 CHECK(
"ERROR : getRootSet failed!" );
339 std::cout <<
"Model contents: " << std::endl;
340 const char* gtype[] = {
"vertices: ",
"edges: ",
"faces: ",
"regions: " };
341 for(
int i = 0; i <= 3; ++i )
345 CHECK(
"Error: problem getting entities after gLoad." );
346 std::cout << gtype[i] << count << std::endl;
359 if( !success )
return success;
362 if( !success )
return success;
373 CHECK(
"ERROR : getRootSet failed!" );
377 std::string tag_name(
"tag_info tag" ), tmp_name;
379 CHECK(
"ERROR : can not create a tag." );
383 char name_buffer[256];
385 CHECK(
"ERROR : Couldn't get tag name." );
386 if( tag_name != name_buffer )
388 std::cerr <<
"ERROR: getTagName returned '" << name_buffer <<
"' for tag created as '" << tag_name <<
"'"
394 CHECK(
"ERROR : Couldn't get tag handle." );
395 if( tmp_handle != this_tag )
397 std::cerr <<
"ERROR: getTagHandle didn't return consistent result." << std::endl;
403 CHECK(
"ERROR : Couldn't get tag size." );
406 std::cerr <<
"ERROR: getTagSizeBytes: expected 4, got " << tag_size << std::endl;
411 CHECK(
"ERROR : Couldn't get tag size." );
414 std::cerr <<
"ERROR: getTagSizeValues: expected 4, got " << tag_size << std::endl;
420 CHECK(
"ERROR : Couldn't get tag type." );
423 std::cerr <<
"ERROR: getTagType: expected " <<
iBase_BYTES <<
", got " << tag_type << std::endl;
428 CHECK(
"ERROR : Couldn't delete a tag." );
432 std::set< iBase_TagHandle > tags;
435 CHECK(
"getEntities( ..., iBase_ALL_TYPES, ... ) failed." );
436 for(
int i = 0; i <
entities.size(); ++i )
440 CHECK(
"getAllTags failed." );
441 std::copy( tag_arr.
begin(), tag_arr.
end(), std::inserter( tags, tags.begin() ) );
444 std::cout <<
"Tags defined on model: ";
446 for( std::set< iBase_TagHandle >::iterator sit = tags.begin(); sit != tags.end(); ++sit )
449 name_buffer[
sizeof( name_buffer ) - 1] =
'\0';
450 CHECK(
"getTagName failed." );
452 if( !
first ) std::cout <<
", ";
453 std::cout << name_buffer;
456 if(
first ) std::cout <<
"<none>";
457 std::cout << std::endl;
468 std::string tag_name(
"tag_get_set tag" );
470 CHECK(
"ERROR : can not create a tag for get_set test." );
474 CHECK(
"ERROR : getRootSet failed!" );
477 int sum = 0, num = 0,
dim;
482 int num_ents = gentity_handles.
size();
483 std::vector< int > tag_vals( num_ents );
484 for(
int i = 0; i < num_ents; ++i )
492 tag_vals.size() *
sizeof(
int ), &err );
493 CHECK(
"ERROR : can't set tag on entities" );
502 int num_ents = gentity_handles.
size();
506 &tag_vals.
size(), &err );
507 CHECK(
"ERROR : can't get tag on entities" );
509 int* tag_ptr = (
int*)( &tag_vals[0] );
510 for(
int i = 0; i < num_ents; ++i )
511 get_sum += tag_ptr[i];
516 std::cerr <<
"ERROR: getData didn't return consistent results." << std::endl;
521 CHECK(
"ERROR : couldn't delete tag." );
542 CHECK(
"ERROR : getRootSet failed!" );
547 CHECK(
"Problem getting the number of all gentity sets in whole model." );
550 for( ; ent_type < num_type; ent_type++ )
554 CHECK(
"Problem creating entityset." );
559 CHECK(
"Failed to get gentities by type in gentityset_test." );
563 CHECK(
"Failed to add gentities in entityset_test." );
567 CHECK(
"Failed to get number of gentities by type in entityset_test." );
570 int num_type_gentity = gentities.
size();
572 if( number_array[ent_type] != num_type_gentity )
574 std::cerr <<
"Number of gentities by type is not correct" << std::endl;
585 CHECK(
"Failed to create a super set in gentityset_test." );
587 for(
int i = 0; i < num_type; i++ )
590 CHECK(
"Failed to create a super set in gentityset_test." );
597 CHECK(
"Failed to create a super set in gentityset_test." );
604 CHECK(
"Failed to get gedge gentities in gentityset_test." );
608 CHECK(
"Failed to add gedge gentities in gentityset_test." );
612 CHECK(
"Failed to get gface gentities in gentityset_test." );
616 CHECK(
"Failed to add gface gentities in gentityset_test." );
620 CHECK(
"Failed to subtract gentitysets in gentityset_test." );
623 CHECK(
"Failed to get gface gentities in gentityset_test." );
625 if( gfaces.
size() != temp_gentities1.
size() )
627 std::cerr <<
"Number of entitysets after subtraction not correct \
636 CHECK(
"Failed to get dimensions of gentities in gentityset_test." );
639 std::cerr <<
"Subtraction failed to remove all edges" << std::endl;
648 CHECK(
"Failed to remove gface gentities in gentityset_test." );
652 CHECK(
"Failed to get number of gentities by type in gentityset_test." );
656 std::cerr <<
"failed to remove correctly." << std::endl;
662 CHECK(
"Failed to add gedge gentities in gentityset_test." );
666 CHECK(
"Failed to add gface gentities in gentityset_test." );
671 CHECK(
"Failed to intersect in gentityset_test." );
675 CHECK(
"Failed to get gface gentities in gentityset_test." );
679 std::cerr <<
"wrong number of gfaces." << std::endl;
690 CHECK(
"Failed to create a temp gentityset in gentityset_test." );
693 CHECK(
"Failed to get gregion gentities in gentityset_test." );
697 CHECK(
"Failed to add gregion gentities in gentityset_test." );
702 CHECK(
"Failed to unite in gentityset_test." );
706 CHECK(
"Failed to get number of gregion gentities by type in gentityset_test." );
710 std::cerr <<
"different number of gregions in gentityset_test." << std::endl;
719 CHECK(
"Problem creating gentityset in gentityset_test." );
722 CHECK(
"Problem add parent in gentityset_test." );
727 CHECK(
"Problem getting parents in gentityset_test." );
729 if( parents.
size() != 1 )
731 std::cerr <<
"number of parents is not correct in gentityset_test." << std::endl;
743 CHECK(
"Problem adding parent and child in gentityset_test." );
749 CHECK(
"Problem adding parent and child in gentityset_test." );
753 CHECK(
"Problem adding child in gentityset_test." );
758 CHECK(
"Problem getting number of parents in gentityset_test." );
762 std::cerr <<
"number of parents is not correct in gentityset_test." << std::endl;
769 CHECK(
"Problem getting number of children in gentityset_test." );
773 std::cerr <<
"number of children is not correct in gentityset_test." << std::endl;
779 CHECK(
"Problem getting children in gentityset_test." );
783 std::cerr <<
"number of children is not correct in gentityset_test." << std::endl;
789 CHECK(
"Problem removing parent child in gentityset_test." );
793 CHECK(
"Problem getting number of children in gentityset_test." );
797 std::cerr <<
"number of children is not correct in gentityset_test." << std::endl;
804 CHECK(
"Problem checking relation in gentityset_test." );
807 std::cerr <<
"parent_child and ges_array[TSTTG::EntityType_EDGE] should be related" << std::endl;
816 std::cerr <<
"ges_array[TSTTG::REGION] and ges_array[TSTTG::EntityType_FACE] should not be "
827 CHECK(
"Problem to get all gentity sets in mesh." );
829 if( gentity_sets.
size() != all_sets + 8 )
831 std::cerr <<
"the number of gentity sets in whole mesh should be 8 times of num_iter." << std::endl;
838 CHECK(
"Problem to get gentity sets in super set." );
843 CHECK(
"Problem to get the number of all gentity sets in super set." );
846 if( num_super != ges_array1.
size() )
848 std::cerr <<
"the number of gentity sets in super set should be same." << std::endl;
855 CHECK(
"Problem to get all gentities in super set." );
867 for(
int k = 0; k < num_super; k++ )
873 for(
int a = 0; a < ges_array1.
size(); a++ )
876 CHECK(
"Problem to add entity set." );
886 CHECK(
"Problem to add super set to gentitysets." );
897 CHECK(
"Problem to add temp set to gentitysets." );
917 CHECK(
"ERROR : getRootSet failed!" );
921 std::vector< std::vector< iBase_EntityHandle > > gentity_vectors( num_test_top );
927 for( i = top; i < num_test_top; i++ )
931 CHECK(
"Failed to get gentities in adjacencies_test." );
933 gentity_vectors[i].resize( gentities.
size() );
934 std::copy( gentities.
begin(), gentities.
end(), gentity_vectors[i].begin() );
938 for( i = top; i < num_test_top; i++ )
942 CHECK(
"Failed to get number of gentities in adjacencies_test." );
944 if(
static_cast< int >( gentity_vectors[i].
size() ) != num_tops )
946 std::cerr <<
"Number of gentities doesn't agree with number returned for dimension " << i << std::endl;
952 std::vector< iBase_EntityHandle >::iterator vit;
955 for( vit = gentity_vectors[i].begin(); vit != gentity_vectors[i].end(); ++vit )
965 CHECK(
"Bi-directional adjacencies test failed." );
968 int num_lower = lower_ents.
size();
969 for(
int k = 0; k < num_lower; k++ )
973 CHECK(
"Bi-directional adjacencies test failed." );
974 if( std::find( upper_ents.
begin(), upper_ents.
end(), this_gent ) == upper_ents.
end() )
976 std::cerr <<
"Didn't find lower-upper adjacency which was supposed to be "
978 << i <<
", " << j << std::endl;
1002 CHECK(
"ERROR : getRootSet failed!" );
1006 std::vector< std::vector< iBase_EntityHandle > > gentity_vectors( num_test_top );
1012 for( i = top; i < num_test_top; i++ )
1016 CHECK(
"Failed to get gentities in adjacencies_test." );
1018 gentity_vectors[i].resize( gentities.
size() );
1019 std::copy( gentities.
begin(), gentities.
end(), gentity_vectors[i].begin() );
1023 double min[3], max[3], on[3];
1024 double near[3] = { .0, .0, .0 };
1025 std::vector< iBase_EntityHandle >::iterator vit;
1030 for( vit = gentity_vectors[i].begin(); vit != gentity_vectors[i].end(); ++vit )
1034 CHECK(
"Failed to get bounding box of entity." );
1036 for(
int j = 0; j < 3; j++ )
1037 near[j] = ( min[j] + max[j] ) / 2;
1039 CHECK(
"Failed to get closest point on entity." );
1040 std::cout <<
" entity of type " << i <<
" closest point to \n " << near[0] <<
" " << near[1] <<
" "
1041 << near[2] <<
"\n is " << on[0] <<
" " << on[1] <<
" " << on[2] <<
"\n";
1055 CHECK(
"ERROR : getRootSet failed!" );
1059 std::vector< std::vector< iBase_EntityHandle > > gentity_vectors( num_test_top );
1065 for( i = top; i < num_test_top; i++ )
1069 CHECK(
"Failed to get gentities in adjacencies_test." );
1071 gentity_vectors[i].resize( gentities.
size() );
1072 std::copy( gentities.
begin(), gentities.
end(), gentity_vectors[i].begin() );
1076 double min[3], max[3];
1077 double normal[3] = { .0, .0, .0 };
1078 std::vector< iBase_EntityHandle >::iterator vit;
1081 for( vit = gentity_vectors[i].begin(); vit != gentity_vectors[i].end(); ++vit )
1085 CHECK(
"Failed to get bounding box of entity." );
1088 ( max[2] + min[2] ) / 2, &normal[0], &normal[1], &normal[2], &err );
1090 CHECK(
"Failed to get normal to the closest point." );
1091 std::cout <<
" entity of type " << i <<
" closest normal to center:\n " << normal[0] <<
" " << normal[1]
1092 <<
" " << normal[2] <<
"\n";
1105 CHECK(
"ERROR : getRootSet failed!" );
1111 CHECK(
"Failed to get gentities in adjacencies_test." );
1116 double min[3], max[3];
1121 CHECK(
"Failed to get bounding box of entity." );
1125 double x = ( min[0] + max[0] ) / 2, y = ( min[1] + max[1] ) / 2, z = min[2];
1134 CHECK(
"Failed to find ray intersections points " );
1135 for(
int i = 0; i < intersect_entity_handles.
size(); i++ )
1139 CHECK(
"Failed to get type of entity." );
1141 std::cout <<
" entity of type " << j <<
" n: " << intersect_entity_handles[i] <<
"\n"
1142 << intersect_coords[3 * i] <<
" " << intersect_coords[3 * i + 1] <<
" " << intersect_coords[3 * i + 2]
1144 <<
" distance: " << param_coords[i] <<
"\n";
1164 CHECK(
"Creating cylinder failed." );
1168 CHECK(
"Problems moving surface." );
1174 CHECK(
"Problems getting max surf for rotation." );
1179 CHECK(
"Problems getting max surf for rotation." );
1180 double dtol = 1.0e-6;
1181 for(
int i = 0; i < surfs.
size(); ++i )
1183 if( ( max_corn[3 * i + 2] ) <= dtol && ( max_corn[3 * i + 2] ) >= -dtol && ( min_corn[3 * i + 2] ) <= dtol &&
1184 ( min_corn[3 * i + 2] ) >= -dtol )
1186 max_surf = surfs[i];
1193 std::cerr <<
"Couldn't find max surf for rotation." << std::endl;
1199 CHECK(
"Problems moving surface." );
1202 CHECK(
"Problems sweeping surface about axis." );
1206 CHECK(
"Problems deleting cylinder or swept surface body." );
1213 const double* expected_max,
1214 const double* actual_min,
1215 const double* actual_max )
1218 double dtol = 1.0e-6;
1220 for(
int i = 0; i < 3; ++i )
1222 if( expected_min[i] < actual_min[i] - dtol || expected_min[i] * 10 > actual_min[i] ||
1223 expected_max[i] > actual_max[i] + dtol || expected_max[i] * 10 < actual_max[i] )
1236 CHECK(
"createBrick failed." );
1240 CHECK(
"createCylinder failed." );
1244 CHECK(
"createTorus failed." );
1252 double preset_min_corn[] =
1260 double preset_max_corn[] =
1268 if( !
compare_box( preset_min_corn, preset_max_corn, &min_corn[0], &max_corn[0] ) )
1270 std::cerr <<
"Box check failed for brick" << std::endl;
1274 if( !
compare_box( preset_min_corn + 3, preset_max_corn + 3, &min_corn[3], &max_corn[3] ) )
1276 std::cerr <<
"Box check failed for cylinder" << std::endl;
1280 if( !
compare_box( preset_min_corn + 6, preset_max_corn + 6, &min_corn[6], &max_corn[6] ) )
1282 std::cerr <<
"Box check failed for torus" << std::endl;
1286 for(
int i = 0; i < 3; ++i )
1289 CHECK(
"Problems deleting primitive after boolean check." );
1302 CHECK(
"Problems creating brick for transforms test." );
1306 CHECK(
"Problems moving brick for transforms test." );
1308 double bb_min[3], bb_max[3];
1310 CHECK(
"Problems getting bounding box after move." );
1312 double dtol = 1.0e-6;
1313 if( ( bb_min[0] ) >= dtol || ( bb_min[0] ) <= -dtol || ( bb_min[1] ) >= dtol || ( bb_min[1] ) <= -dtol ||
1314 ( bb_min[2] ) >= dtol || ( bb_min[2] ) <= -dtol || ( bb_max[0] - 1 ) >= dtol || 1 - bb_max[0] >= dtol ||
1315 ( bb_max[1] - 2 ) >= dtol || 2 - bb_max[1] >= dtol || ( bb_max[2] - 3 ) >= dtol || 3 - bb_max[2] >= dtol )
1317 std::cerr <<
"Wrong bounding box after move." << std::endl;
1323 CHECK(
"Problems rotating brick for transforms test." );
1326 CHECK(
"Problems getting bounding box after rotate." );
1328 if( ( bb_min[0] ) >= dtol || -bb_min[0] >= dtol || ( bb_min[1] + 3 ) >= dtol || -( bb_min[1] + 3 ) >= dtol ||
1329 ( bb_min[2] ) >= dtol || -( bb_min[2] ) >= dtol || ( bb_max[0] - 1 ) >= dtol || 1 - bb_max[0] >= dtol ||
1330 ( bb_max[1] ) >= dtol || -( bb_max[1] ) >= dtol || ( bb_max[2] - 2 ) >= dtol || 2 - bb_max[2] >= dtol )
1332 std::cerr <<
"Wrong bounding box after rotate." << std::endl;
1338 CHECK(
"Problems reflecting brick for transforms test." );
1341 CHECK(
"Problems getting bounding box after reflect." );
1343 if( ( bb_min[0] ) >= dtol || -( bb_min[0] ) >= dtol || ( bb_min[1] ) >= dtol || ( bb_min[2] ) >= dtol ||
1344 -( bb_min[1] ) >= dtol || -( bb_min[2] ) >= dtol || ( bb_max[0] - 1 ) >= dtol || 1 - bb_max[0] >= dtol ||
1345 ( bb_max[1] - 3 ) >= dtol || 3 - bb_max[1] >= dtol || ( bb_max[2] - 2 ) >= dtol || 2 - bb_max[2] >= dtol )
1347 std::cerr <<
"Wrong bounding box after reflect." << std::endl;
1353 CHECK(
"Problems deleting brick after transforms check." );
1364 CHECK(
"Problems creating brick for booleans test." );
1366 CHECK(
"Problems creating cylinder for booleans test." );
1371 CHECK(
"Problems subtracting for booleans subtract test." );
1376 CHECK(
"Problems sectioning for booleans section test." );
1380 CHECK(
"Problems creating cylinder for unite test." );
1384 CHECK(
"Problems uniting for booleans unite test." );
1387 CHECK(
"Problems deleting for booleans unite test." );
1393 std::vector< iBase_EntityHandle >& entities_out,
1395 std::vector< int >* ids_out = 0 )
1404 entities_out.resize( num );
1405 int junk1 = entities_out.size(), junk2;
1410 assert( num == junk1 && num == junk2 );
1414 ids_out->resize( num );
1415 int* int_ptr = &( *ids_out )[0];
1418 assert( num == junk1 && num == junk2 );
1424 const std::vector< iBase_EntityHandle >&
entities,
1425 const std::vector< int >& ids,
1427 const char* expected_value,
1428 const char* ent_type_str )
1430 const int firmness_size = 4;
1431 std::vector< char > firmness( firmness_size *
entities.size() );
1433 char* byte_ptr = &firmness[0];
1434 int err, junk1 = firmness.size(), junk2 =
entities.size() * firmness_size;
1438 bool all_correct =
true;
1439 for(
unsigned i = 0; i <
entities.size(); ++i )
1440 if( std::string( &firmness[firmness_size * i], firmness_size ) != expected_value ) all_correct =
false;
1443 std::cout <<
"ERROR: Expected \"" << expected_value <<
"\" firmness "
1444 <<
"for all " << ent_type_str <<
"." << std::endl;
1445 std::cout <<
"ID Actual " << std::endl;
1446 for(
unsigned i = 0; i <
entities.size(); ++i )
1447 std::cout << std::setw( 2 ) << ids[i] <<
" " << std::string( &firmness[firmness_size * i], firmness_size )
1456 const std::vector< iBase_EntityHandle >& ents,
1462 std::vector< char > data( bytes );
1464 int success_count = 0;
1465 for(
size_t i = 0; i < ents.size(); ++i )
1467 char* ptr = &data[0];
1468 int junk1 = bytes, junk2;
1475 return success_count;
1481 int err, junk1, junk2;
1487 CHECK(
"Failed to load input file: 'size.sat'" );
1492 CHECK(
"FBiGeom_getTagHandle(\"MESH_INTERVAL\")" );
1494 CHECK(
"FBiGeom_getTagHandle(\"MESH_SIZE\")" );
1496 CHECK(
"FBiGeom_getTagHandle(\"SIZE_FIRMNESS\")" );
1498 CHECK(
"FBiGeom_getTagHandle(\"GLOBAL_ID\")" );
1501 std::vector< iBase_EntityHandle > verts, curves, surfs, vols;
1502 std::vector< int > vert_ids, curve_ids, surf_ids, vol_ids;
1513 std::vector< int > intervals( curves.size() );
1514 int* int_ptr = &intervals[0];
1515 junk1 = junk2 = curves.size();
1517 CHECK(
"Failed to get intervals for curves" );
1518 if( intervals != curve_ids )
1520 std::cout <<
"ERROR: Incorrect curve intervals for one or more curves." << std::endl;
1521 std::cout <<
"ID Expected Actual" << std::endl;
1522 for(
unsigned i = 0; i < curves.size(); ++i )
1523 std::cout << std::setw( 2 ) << curve_ids[i] <<
" " << std::setw( 8 ) << curve_ids[i] <<
" "
1524 << std::setw( 6 ) << intervals[i] << std::endl;
1529 std::vector< double >
sizes( surfs.size() );
1530 double* dbl_ptr = &
sizes[0];
1531 junk1 = junk2 = surfs.size();
1533 CHECK(
"Failed to get sizes for surfaces" );
1534 bool all_correct =
true;
1535 for(
unsigned i = 0; i < surfs.size(); ++i )
1536 if( fabs(
sizes[i] - (
double)surf_ids[i] ) > 1e-8 ) all_correct =
false;
1539 std::cout <<
"ERROR: Incorrect mesh size for one or more surfaces." << std::endl;
1540 std::cout <<
"ID Expected Actual " << std::endl;
1541 for(
unsigned i = 0; i < surfs.size(); ++i )
1542 std::cout << std::setw( 2 ) << surf_ids[i] <<
" " << std::setw( 8 ) << (double)surf_ids[i] <<
" "
1543 << std::setw( 8 ) <<
sizes[i] << std::endl;
1548 CHECK(
"Invalid size or interval data" );
1552 CHECK(
"Invalid curve firmness" );
1555 CHECK(
"Invalid surface firmness" );
1559 CHECK(
"Got firmness for vertex." );
1561 CHECK(
"Got firmness for volume." );
1565 CHECK(
"Got interval count for vertex." );
1567 CHECK(
"Got interval count for volume." );
1572 CHECK(
"Got mesh size for vertex." );
1574 CHECK(
"Got mesh size for volume." );
1585 CHECK(
"Interface destruction didn't work properly." );
1588 CHECK(
"Interface re-construction didn't work properly." );
1591 CHECK(
"2nd Interface destruction didn't work properly." );
1601 std::string
filename =
"testout.brep";
1602 #elif defined( HAVE_ACIS )
1603 std::string
filename =
"testout.sat";
1604 #elif defined( HAVE_OCC )
1605 std::string
filename =
"testout.brep";
1607 std::string
filename =
"testout.sat";
1611 int num_ents_bef, num_sets_bef;
1614 CHECK(
"Failed to get root set." );
1616 CHECK(
"Failed to get number of ent sets." );
1618 CHECK(
"Failed to get number of entities." );
1623 CHECK(
"Problems creating cylinder for save entset test." );
1626 CHECK(
"Problems creating entity set for save entset test." );
1630 CHECK(
"Problems adding entity to set for save entset test." );
1634 CHECK(
"Problems saving file for save entset test." );
1637 CHECK(
"Failed to destroy entity set." );
1639 CHECK(
"Failed to destroy entity." );
1643 CHECK(
"Problems reading file for save entset test." );
1646 int num_ents_aft, num_sets_aft;
1648 CHECK(
"Failed to get number of ent sets." );
1650 CHECK(
"Failed to get number of entities." );
1651 bool success =
true;
1652 if( num_ents_aft != 2 * num_ents_bef + 1 )
1657 else if( num_sets_aft != 2 * num_sets_bef + 1 )