00001
00006 #include "mpi.h"
00007 #include "TreeNode.h"
00008 #include "testUtils.h"
00009 #include "externVars.h"
00010 #include <cstdio>
00011 #include <iostream>
00012
00013 int main(int argc, char ** argv ) {
00014 unsigned int d;
00015 unsigned int mD;
00016 unsigned int numNodes;
00017
00018 if(argc < 2) {
00019 std::cerr<<"Usage: exe inpFile incCorn[1] maxLevDiff[1]"<<std::endl;
00020 exit(1);
00021 }
00022
00023 FILE* infile = fopen(argv[1],"r");
00024 bool incCorn = 1;
00025 unsigned int maxLevDiff = 1;
00026 if(argc > 2) {
00027 incCorn = (bool) atoi(argv[2]);
00028 }
00029 if(argc > 3) {
00030 maxLevDiff = atoi(argv[3]);
00031 }
00032 fscanf(infile,"%u",&d);
00033 fscanf(infile,"%u",&mD);
00034 fscanf(infile,"%u",&numNodes);
00035 std::vector<ot::TreeNode > nodes (numNodes);
00036 std::cout << " Starting to Read file: "<<argv[1]<<std::endl;
00037 for(unsigned int i =0; i< numNodes; i++) {
00038 unsigned int myX, myY, myZ, myLev;
00039 fscanf(infile,"%u",&myX);
00040 fscanf(infile,"%u",&myY);
00041 fscanf(infile,"%u",&myZ);
00042 fscanf(infile,"%u",&myLev);
00043 ot::TreeNode tmpNode(myX,myY,myZ,myLev, d, mD);
00044 nodes[i] = tmpNode;
00045 }
00046 fclose(infile);
00047 std::cout << " Finished Reading "<<nodes.size()<<" octants." <<std::endl;
00048
00049 std::cout << " Is octree Sorted? : "<<(seq::test::isSorted<ot::TreeNode>(nodes))<<std::endl;
00050 std::cout << " Is octree Unique & Sorted? : "<<
00051 (seq::test::isUniqueAndSorted<ot::TreeNode>(nodes))<<std::endl;
00052 std::cout << " Is octree Linear? : "<<(ot::test::isLinear(nodes))<<std::endl;
00053 std::cout << " Is octree Complete? : "<<(ot::test::isComplete(nodes))<<std::endl;
00054 std::cout << " Is octree Balanced? : "<<
00055 (ot::test::isBalanced(d,mD,"failedCheck",nodes, incCorn,maxLevDiff))<<std::endl;
00056
00057 }
00058