// Prepares the input data for given unique percent void execute_percent(test_sandbox &the_test, int p) { int input_size = MAX_TABLE_SIZE*100/p; Data = new int[input_size]; int uniques = p==100?std::numeric_limits<int>::max() : MAX_TABLE_SIZE; ASSERT(p==100 || p <= 30, "Function is broken for %% > 30 except for 100%%"); for(int i = 0; i < input_size; i++) Data[i] = rand()%uniques; for(int t = MinThread; t <= MaxThread; t++) the_test.factory(input_size, t); // executes the tests specified in BOX-es for given 'value' and threads the_test.report.SetRoundTitle(rounds++, "%d%%", p); }
// run tests for each of inner work value void RunLoops(test_sandbox &the_test, int thread) { for( unsigned i=0; i<sizeof(inner_work)/sizeof(int); ++i ) the_test.factory(inner_work[i], thread); }