Commit a3704989 authored by Davis King's avatar Davis King

Added more parallel_for() unit tests and changed code to suppress compiler warnings.

parent a96a3886
...@@ -25,13 +25,13 @@ namespace ...@@ -25,13 +25,13 @@ namespace
void go (long i ) void go (long i )
{ {
DLIB_TEST( 0 <= i && i < vect.size()); DLIB_TEST( 0 <= i && i < (long)vect.size());
vect[i] = i; vect[i] = i;
} }
void operator() (long i ) const void operator() (long i ) const
{ {
DLIB_TEST( 0 <= i && i < vect.size()); DLIB_TEST( 0 <= i && i < (long)vect.size());
vect[i] = i; vect[i] = i;
} }
...@@ -43,11 +43,11 @@ namespace ...@@ -43,11 +43,11 @@ namespace
parallel_for(4, start, vect.size(), assign_element(vect)); parallel_for(4, start, vect.size(), assign_element(vect));
for (unsigned long i = 0; i < start; ++i) for (long i = 0; i < start; ++i)
{ {
DLIB_TEST(vect[i] == 0); DLIB_TEST(vect[i] == 0);
} }
for (unsigned long i = start; i < vect.size(); ++i) for (long i = start; i < (long)vect.size(); ++i)
{ {
DLIB_TEST(vect[i] == i); DLIB_TEST(vect[i] == i);
} }
...@@ -60,16 +60,243 @@ namespace ...@@ -60,16 +60,243 @@ namespace
assign_element temp(vect); assign_element temp(vect);
parallel_for(4, start, vect.size(), temp, &assign_element::go); parallel_for(4, start, vect.size(), temp, &assign_element::go);
for (unsigned long i = 0; i < start; ++i) for (long i = 0; i < start; ++i)
{ {
DLIB_TEST(vect[i] == 0); DLIB_TEST(vect[i] == 0);
} }
for (unsigned long i = start; i < vect.size(); ++i) for (long i = start; i < (long)vect.size(); ++i)
{ {
DLIB_TEST(vect[i] == i); DLIB_TEST(vect[i] == i);
} }
} }
struct parfor_test_helper
{
mutable std::vector<int> test;
parfor_test_helper() : test(400,100000)
{
}
void go(long begin, long end)
{
for (long i = begin; i < end; ++i)
test[i] = i;
}
void operator()(long begin, long end) const
{
for (long i = begin; i < end; ++i)
test[i] = i;
}
void go2(long i)
{
test[i] = i;
}
};
struct parfor_test_helper2
{
mutable std::vector<int> test;
parfor_test_helper2() : test(400,100000)
{
}
void operator()(long i) const
{
test[i] = i;
}
};
void test_parallel_for_additional()
{
{
parfor_test_helper helper;
parallel_for(4, 0, helper.test.size(), helper, &parfor_test_helper::go2);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for(4, 10, helper.test.size(), helper, &parfor_test_helper::go2);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked(4, 0, helper.test.size(), helper, &parfor_test_helper::go);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked(4, 10, helper.test.size(), helper, &parfor_test_helper::go);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked(4, 0, helper.test.size(), helper);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked(4, 10, helper.test.size(), helper);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper2 helper;
parallel_for(4, 0, helper.test.size(), helper);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper2 helper;
parallel_for(4, 10, helper.test.size(), helper);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_verbose(4, 0, helper.test.size(), helper, &parfor_test_helper::go2);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_verbose(4, 10, helper.test.size(), helper, &parfor_test_helper::go2);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked_verbose(4, 0, helper.test.size(), helper, &parfor_test_helper::go);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked_verbose(4, 10, helper.test.size(), helper, &parfor_test_helper::go);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked_verbose(4, 0, helper.test.size(), helper);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper helper;
parallel_for_blocked_verbose(4, 10, helper.test.size(), helper);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper2 helper;
parallel_for_verbose(4, 0, helper.test.size(), helper);
for (unsigned long i = 0; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
{
parfor_test_helper2 helper;
parallel_for_verbose(4, 10, helper.test.size(), helper);
for (unsigned long i = 0; i < 10; ++i)
{
DLIB_CASSERT(helper.test[i] == 100000, helper.test[i]);
}
for (unsigned long i = 10; i < helper.test.size(); ++i)
{
DLIB_CASSERT(helper.test[i] == (long)i, helper.test[i]);
}
}
}
class test_parallel_for_routines : public tester class test_parallel_for_routines : public tester
{ {
...@@ -93,6 +320,8 @@ namespace ...@@ -93,6 +320,8 @@ namespace
test_parallel_for2(0); test_parallel_for2(0);
test_parallel_for2(30); test_parallel_for2(30);
test_parallel_for2(50); test_parallel_for2(50);
test_parallel_for_additional();
} }
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment