MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Go to the source code of this file.
Defines | |
#define | handle_test_assert(C) |
#define | tag_test_assert(C) |
Functions | |
HandleUtils | handleUtils (0, 1) |
bool | internal_assert (bool c) |
bool | handle_test (EntityType type, EntityID id, int proc, bool should_fail) |
bool | tag_test (TagId id, TagType prop) |
int | main () |
Sample code on a 32-bit system. |
#define handle_test_assert | ( | C | ) |
if( internal_assert( C ) ) \ { \ cout << "Test: " #C " failed ." << endl; \ return false; \ }
Definition at line 14 of file internals_test.cpp.
Referenced by handle_test().
#define tag_test_assert | ( | C | ) |
if( internal_assert( C ) ) \ { \ cout << "Test: " #C " failed." << endl; \ return false; \ }
Definition at line 43 of file internals_test.cpp.
Referenced by tag_test().
bool handle_test | ( | EntityType | type, |
EntityID | id, | ||
int | proc, | ||
bool | should_fail | ||
) |
Definition at line 21 of file internals_test.cpp.
References moab::CREATE_HANDLE(), handle_test_assert, handleUtils(), and moab::TYPE_FROM_HANDLE().
Referenced by main().
{ int err = 0; EntityHandle handle = CREATE_HANDLE( type, handleUtils.create_id( id, proc ), err ); if( should_fail ) { handle_test_assert( err ) return true; } handle_test_assert( !err ) EntityType type_from_handle = TYPE_FROM_HANDLE( handle ); handle_test_assert( type_from_handle == type ) EntityID id_from_handle = handleUtils.id_from_handle( handle ); handle_test_assert( id_from_handle == id ) int proc_from_handle = handleUtils.rank_from_handle( handle ); handle_test_assert( proc_from_handle == proc ) return true; }
HandleUtils handleUtils | ( | 0 | , |
1 | |||
) |
Referenced by handle_test(), and main().
bool internal_assert | ( | bool | c | ) |
Definition at line 9 of file internals_test.cpp.
{
return !c;
}
int main | ( | ) |
Sample code on a 32-bit system.
Definition at line 64 of file internals_test.cpp.
References handle_test(), handleUtils(), MB_END_ID, MB_TYPE_WIDTH, MBMAXTYPE, MBVERTEX, tag_test(), and TagType.
{ const unsigned cpus[] = { 1, 4, 16, 5, 20 }; const int num_cpus = sizeof( cpus ) / sizeof( cpus[0] ); unsigned errors = 0, tests = 0; const int num_prop = MB_TAG_LAST + 1; ++tests; if( MB_TAG_LAST > num_prop ) { cout << "MB_TAG_PROP_WIDTH insufficient for size of TagType" << endl; ++errors; } ++tests; if( MBMAXTYPE > 1 << MB_TYPE_WIDTH ) { cout << "MB_TYPE_WIDTH insufficient for size of EntityType" << endl; ++errors; } // if any errors so far, abort because everything else will // probably fail. if( errors ) return errors; for( int num_cpu = 0; num_cpu < num_cpus; ++num_cpu ) { handleUtils = HandleUtils( 0, cpus[num_cpu] ); // init these after setting num_cpu, because max id depends on num cpu. const EntityID ids[] = { 0, 1, handleUtils.max_id() / 2, handleUtils.max_id() - 1, handleUtils.max_id() }; const TagId tids[] = { 0, 1, MB_TAG_PROP_MASK / 2, MB_TAG_PROP_MASK - 1, MB_TAG_PROP_MASK }; const int num_ids = sizeof( ids ) / sizeof( ids[0] ); const int num_tids = sizeof( tids ) / sizeof( tids[0] ); for( unsigned cpu = 0; cpu < cpus[num_cpu]; ++cpu ) { for( EntityType type = MBVERTEX; type < MBMAXTYPE; ++type ) for( int id = 0; id < num_ids; ++id ) { ++tests; if( !handle_test( type, ids[id], cpu, false ) ) { cout << "Test of handle with type=" << type << ", id=" << ids[id] << ", proc=" << cpu << ", and numproc=" << cpus[num_cpu] << endl; ++errors; } } for( int prop = 0; prop < num_prop; ++prop ) for( int id = 0; id < num_tids; ++id ) { ++tests; if( !tag_test( tids[id], (TagType)prop ) ) { cout << "Test of tag handle with prop=" << prop << ", id=" << tids[id] << ", proc=" << cpu << ", and numproc=" << cpus[num_cpu] << endl; ++errors; } } } } // test some stuff that should fail handleUtils = HandleUtils( 0, 16 ); ++tests; if( !handle_test( MBVERTEX, MB_END_ID + 1, 0, true ) ) { cout << "Failed to catch ID overflow" << endl; ++errors; } ++tests; if( !handle_test( (EntityType)( MBMAXTYPE + 1 ), 1, 0, true ) ) { cout << "Failed to catch type overflow" << endl; ++errors; } // ++tests; // if (!handle_test( MBHEX, 1, 17, true)) { // cout << "Failed to catch Proc# overflow" << endl; // ++errors; // } if( errors ) cout << endl << errors << " of " << tests << " tests failed." << endl << endl; else cout << endl << tests << " tests passed." << endl << endl; return errors; }
Definition at line 50 of file internals_test.cpp.
References tag_test_assert, and TagType.
Referenced by main().
{ Tag tag = TAG_HANDLE_FROM_ID( id, prop ); unsigned long id_from_handle = ID_FROM_TAG_HANDLE( tag ); tag_test_assert( id_from_handle == id ) TagType prop_from_handle = PROP_FROM_TAG_HANDLE( tag ); tag_test_assert( prop_from_handle == prop ) return true; }