00001
00002 #include "mpi.h"
00003 #include "nodeAndValues.h"
00004 #include "TreeNode.h"
00005 #include "parUtils.h"
00006 #include "externVars.h"
00007
00008 int main(int argc, char** argv) {
00009
00010 MPI_Init(&argc, &argv);
00011
00012 ot::NodeAndValues<double, 3> obj;
00013 ot::NodeAndValues<double, 3> trueObj;
00014
00015
00016 obj.node = ot::TreeNode(3, 30);
00017 obj.values[0] = 0.0;
00018 obj.values[1] = 0.0;
00019 obj.values[2] = 0.0;
00020
00021 int rank, npes;
00022
00023 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
00024
00025 ot::TreeNode myNode(3, 30);
00026
00027 for(int i = 0; i < 5; i++) {
00028 std::vector<ot::TreeNode> octs;
00029 myNode.addChildren(octs);
00030 myNode = octs[1];
00031 }
00032
00033 trueObj.node = myNode;
00034 trueObj.values[0] = 10.5;
00035 trueObj.values[1] = 220.2;
00036 trueObj.values[2] = 1324.111;
00037
00038 assert(obj != trueObj);
00039 assert(!obj.Equals(trueObj));
00040 assert(obj < trueObj);
00041 assert(trueObj > obj);
00042
00043 if(!rank) {
00044 obj = trueObj;
00045 }
00046
00047 par::Mpi_Bcast<ot::NodeAndValues<double, 3> >(&obj, 1, 0, MPI_COMM_WORLD);
00048
00049 assert(obj == trueObj);
00050 assert(obj.Equals(trueObj));
00051
00052 MPI_Barrier(MPI_COMM_WORLD);
00053
00054 std::cout<<"Success!"<<std::endl;
00055
00056 MPI_Finalize();
00057 }
00058
00059