Skip to content
Snippets Groups Projects
Commit 293dce45 authored by Pietro Incardona's avatar Pietro Incardona
Browse files

Adding vector unit tests

parent ed634ca8
No related branches found
No related tags found
No related merge requests found
/*
* Vector_unit_tests.hpp
*
* Created on: Apr 6, 2016
* Author: i-bird
*/
#ifndef OPENFPM_NUMERICS_SRC_VECTOR_VECTOR_UNIT_TESTS_HPP_
#define OPENFPM_NUMERICS_SRC_VECTOR_VECTOR_UNIT_TESTS_HPP_
#include "Vector/Vector.hpp"
BOOST_AUTO_TEST_SUITE( vector_test_suite )
BOOST_AUTO_TEST_CASE(vector_eigen_parallel)
{
Vcluster & vcl = *global_v_cluster;
if (vcl.getProcessingUnits() != 3)
return;
// 3 Processors 9x9 Matrix to invert
Vector<double> v(9);
if (vcl.getProcessUnitID() == 0)
{
// v row1
v.insert(0,0);
v.insert(1,1);
v.insert(2,2);
}
else if (vcl.getProcessUnitID() == 1)
{
v.insert(3,3);
v.insert(4,4);
v.insert(5,5);
}
else if (vcl.getProcessUnitID() == 2)
{
v.insert(6,6);
v.insert(7,7);
v.insert(8,8);
}
Vector<double> v3;
v3 = v;
// force to sync
v.getVec();
Vector<double> v2;
v2 = v;
// Master has the full vector
if (vcl.getProcessUnitID() == 0)
{
BOOST_REQUIRE_EQUAL(v(0),0);
BOOST_REQUIRE_EQUAL(v(1),1);
BOOST_REQUIRE_EQUAL(v(2),2);
BOOST_REQUIRE_EQUAL(v(3),3);
BOOST_REQUIRE_EQUAL(v(4),4);
BOOST_REQUIRE_EQUAL(v(5),5);
BOOST_REQUIRE_EQUAL(v(6),6);
BOOST_REQUIRE_EQUAL(v(7),7);
BOOST_REQUIRE_EQUAL(v(8),8);
// Change the vector on Master
v(0) = 8;
v(1) = 7;
v(2) = 6;
v(3) = 5;
v(4) = 4;
v(5) = 3;
v(6) = 2;
v(7) = 1;
v(8) = 0;
}
v.scatter();
v2.scatter();
v3.scatter();
if (vcl.getProcessUnitID() == 0)
{
BOOST_REQUIRE_EQUAL(v(0),8);
BOOST_REQUIRE_EQUAL(v(1),7);
BOOST_REQUIRE_EQUAL(v(2),6);
BOOST_REQUIRE_EQUAL(v2(0),0);
BOOST_REQUIRE_EQUAL(v2(1),1);
BOOST_REQUIRE_EQUAL(v2(2),2);
BOOST_REQUIRE_EQUAL(v3(0),0);
BOOST_REQUIRE_EQUAL(v3(1),1);
BOOST_REQUIRE_EQUAL(v3(2),2);
}
else if (vcl.getProcessUnitID() == 1)
{
BOOST_REQUIRE_EQUAL(v(3),5);
BOOST_REQUIRE_EQUAL(v(4),4);
BOOST_REQUIRE_EQUAL(v(5),3);
BOOST_REQUIRE_EQUAL(v2(3),3);
BOOST_REQUIRE_EQUAL(v2(4),4);
BOOST_REQUIRE_EQUAL(v2(5),5);
BOOST_REQUIRE_EQUAL(v3(0),3);
BOOST_REQUIRE_EQUAL(v3(1),4);
BOOST_REQUIRE_EQUAL(v3(2),5);
}
else if (vcl.getProcessUnitID() == 2)
{
BOOST_REQUIRE_EQUAL(v(6),2);
BOOST_REQUIRE_EQUAL(v(7),1);
BOOST_REQUIRE_EQUAL(v(8),0);
BOOST_REQUIRE_EQUAL(v2(6),6);
BOOST_REQUIRE_EQUAL(v2(7),7);
BOOST_REQUIRE_EQUAL(v2(8),8);
BOOST_REQUIRE_EQUAL(v3(0),6);
BOOST_REQUIRE_EQUAL(v3(1),7);
BOOST_REQUIRE_EQUAL(v3(2),8);
}
}
BOOST_AUTO_TEST_SUITE_END()
#endif /* OPENFPM_NUMERICS_SRC_VECTOR_VECTOR_UNIT_TESTS_HPP_ */
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment