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