26 #ifndef MOAB_FORCE_32_BIT_HANDLES
59 bool del_data =
false );
65 printf(
"BASIC USE TEST FAILED\nCANNOT TEST FURTHER\n" );
82 #ifndef MOAB_FORCE_32_BIT_HANDLES
91 printf(
"ALL TESTS PASSED\n" );
105 :
EntitySequence( start, count, data2 ), valsPerEnt( vals_per_ent )
109 :
EntitySequence( data2->start_handle(), data2->
size(), data2 ), valsPerEnt( vals_per_ent )
114 :
EntitySequence( split_from, here ), valsPerEnt( split_from.valsPerEnt )
122 return new DumSeq( *
this, here );
127 return data()->
subset( a, b, 0 );
162 if( del_data )
delete data;
180 SequenceData* data =
new SequenceData( 0, 1, 22000 );
CHECK_ERR(
insert_seq( seqman, 3, 5, data ) );
CHECK_ERR(
insert_seq( seqman, 100, 12, data ) );
CHECK_ERR(
insert_seq( seqman, 1001, 1, data ) );
306 seq = seqman.
find( 2 );
308 seq = seqman.
find( 3 );
310 seq = seqman.
find( 4 );
312 seq = seqman.
find( 7 );
314 seq = seqman.
find( 8 );
317 seq = seqman.
find( 99 );
319 seq = seqman.
find( 100 );
321 seq = seqman.
find( 110 );
323 seq = seqman.
find( 111 );
325 seq = seqman.
find( 112 );
328 seq = seqman.
find( 1000 );
330 seq = seqman.
find( 1001 );
332 seq = seqman.
find( 1002 );
341 for( i = 0; i < num_pairs; ++i, ++j )
343 if( j == seqman.
end() )
break;
345 if( seq && seq->
end_handle() >= ( *j )->start_handle() )
347 printf(
"Sequence [%lu,%lu] overlaps sequence [%lu,%lu]\n",
355 if( seq && seq->
data() != ( *j )->data() && seq->
data()->
end_handle() >= ( *j )->data()->start_handle() )
357 printf(
"SequenceData [%lu,%lu] overlaps SequenceData [%lu,%lu]\n",
385 if( i == num_pairs && j == seqman.
end() )
return true;
388 printf(
"Sequence Mismatch: Expected: [%lu,%lu], got ", (
unsigned long)
ID_FROM_HANDLE( pair_array[i][0] ),
391 printf(
"Sequence Mismatch: Expected END, got " );
393 if( j == seqman.
end() )
396 printf(
"[%lu,%lu]\n", (
unsigned long)
ID_FROM_HANDLE( ( *j )->start_handle() ),
414 EntityHandle pairs[][2] = { { 3, 7 }, { 100, 111 }, { 1001, 1001 } };
426 EntityHandle exp1[][2] = { { 3, 7 }, { 100, 111 }, { 1001, 1001 }, { 1003, 1003 } };
431 EntityHandle exp2[][2] = { { 1, 1 }, { 3, 7 }, { 100, 111 }, { 1001, 1001 }, { 1003, 1003 } };
436 EntityHandle exp3[][2] = { { 1, 1 }, { 3, 7 }, { 100, 111 }, { 150, 160 }, { 1001, 1001 }, { 1003, 1003 } };
441 EntityHandle exp4[][2] = { { 1, 1 }, { 3, 20 }, { 100, 111 }, { 150, 160 }, { 1001, 1001 }, { 1003, 1003 } };
446 EntityHandle exp5[][2] = { { 1, 1 }, { 3, 20 }, { 87, 111 }, { 150, 160 }, { 1001, 1001 }, { 1003, 1003 } };
451 EntityHandle exp6[][2] = { { 1, 20 }, { 87, 111 }, { 150, 160 }, { 1001, 1001 }, { 1003, 1003 } };
486 seq =
new DumSeq( 200, 100, data2 );
496 seq =
new DumSeq( 400, 100, data2 );
533 EntityHandle exp1[][2] = { { 3, 7 }, { 200, 299 }, { 400, 499 } };
538 EntityHandle exp2[][2] = { { 3, 7 }, { 200, 299 }, { 400, 499 }, { 600, 699 } };
543 EntityHandle exp3[][2] = { { 3, 7 }, { 200, 299 }, { 400, 499 }, { 600, 699 }, { 2000, 2001 } };
548 EntityHandle exp4[][2] = { { 3, 7 }, { 200, 299 }, { 400, 499 }, { 600, 699 }, { 1000, 1005 }, { 2000, 2001 } };
553 EntityHandle exp5[][2] = { { 3, 7 }, { 50, 99 }, { 200, 299 }, { 400, 499 },
554 { 600, 699 }, { 1000, 1005 }, { 2000, 2001 } };
568 DumSeq junk( 3, 5, NULL );
570 EntityHandle exp1[][2] = { { 3, 7 }, { 100, 111 }, { 1001, 1001 } };
642 seq =
new DumSeq( 190, 200, data );
649 EntityHandle exp1[][2] = { { 101, 200 }, { 301, 600 }, { 701, 800 } };
662 EntityHandle exp2[][2] = { { 101, 105 }, { 106, 200 }, { 301, 600 }, { 701, 800 } };
675 EntityHandle exp3[][2] = { { 101, 105 }, { 106, 200 }, { 301, 600 }, { 701, 749 }, { 750, 800 } };
688 EntityHandle exp4[][2] = { { 101, 105 }, { 106, 200 }, { 301, 399 }, { 400, 499 },
689 { 500, 600 }, { 701, 749 }, { 750, 800 } };
700 EntityHandle exp1[][2] = { { 3, 7 }, { 100, 111 }, { 1001, 1001 } };
712 EntityHandle exp2[][2] = { { 7, 7 }, { 100, 111 }, { 1001, 1001 } };
717 EntityHandle exp3[][2] = { { 7, 7 }, { 100, 109 }, { 1001, 1001 } };
722 EntityHandle exp4[][2] = { { 7, 7 }, { 100, 104 }, { 108, 109 }, { 1001, 1001 } };
727 EntityHandle exp5[][2] = { { 100, 104 }, { 108, 109 }, { 1001, 1001 } };
732 EntityHandle exp6[][2] = { { 100, 104 }, { 1001, 1001 } };
818 CHECK( start == 8 || start == 70 );
1056 int n_queries = 10000;
1057 for(
int i = 0; i < n_queries; i++ )
1059 long unsigned idx = ( (double)rand() / RAND_MAX * num_orig_entities ) + 1;
1062 if( removed.count( idx ) != 0 )
continue;
1064 rval = seqman->
find( idx, seq );
1068 if( idx < seq->start_handle() || idx > seq->
end_handle() )
1074 #ifndef MOAB_FORCE_32_BIT_HANDLES
1078 std::set< int > removed_indices;
1088 for(
int i = 0; i < 100; i++ )
1090 int idx = ( (double)rand() / RAND_MAX * i_end ) + 1;
1091 removed_indices.insert( idx );
1092 seqman.
erase( &e, idx );
1095 std::vector< std::thread > threads;
1096 std::vector< int > failures( n_threads, 0 );
1097 for(
int i = 0; i < n_threads; i++ )
1099 threads.push_back( std::thread(
call_find, &seqman, removed_indices, i_end, std::ref< int >( failures[i] ) ) );
1102 for(
size_t i = 0; i < threads.size(); i++ )
1108 for(
size_t i = 0; i < failures.size(); i++ )
1109 n_failures += failures[i];
1111 if( n_failures > 0 )
1113 std::cout << n_failures <<
" invalid sequences found." << std::endl;
1158 result_handle = seqman.
find_free_sequence( 1686, 4000, 2 * last_handle, result_data, result_size );
1159 CHECK( result_handle > last_handle || result_handle + result_size <= 41673 );
1160 CHECK( result_handle + result_size <= 2 * last_handle );
1176 const int data_size = 100;
1178 const EntityHandle data_end = data_start + data_size - 1;
1179 const int seq_offset = 2;
1187 result_handle = seqman.
find_free_sequence( data_start - 1, 1, 100000, result_data, result_size );
1188 CHECK( result_handle > data_end || result_handle + result_size <= data_start );
1200 const int data_size = 6000;
1202 const EntityHandle data_end = data_start + data_size - 1;
1203 const int seq_offset = 1000;
1211 result_handle = seqman.
find_free_sequence( data_start - 2, 1, 100000, result_data, result_size );
1212 CHECK( result_handle + result_size <= data_start );