/**
 * Unit test framework entry point for this set of unit tests.
 *  
 */
void testSimpleNetwork_runTests() {
    unsigned char ipBytes[MAX_ADDR_LENGTH]; //can be set to INET6_ADDRSTRLEN;
    void *handle;
    int numBytes;
    char *data;
    char *hostname = "host.domain";
    char* request = "GET /midlets/midlet.jad HTTP/1.0\n\n";

    testGetHostByName(hostname, ipBytes);

    handle = testOpen(ipBytes, 80);
    printf("open handle = %d\n", (int)handle);

    testWrite(handle, request);

    numBytes = testAvailable(handle);
    printf("numBytes = %d\n", numBytes);

    if (numBytes > 0) {
        data = (char *) malloc((numBytes + 1)*sizeof(char));
        testRead(handle, data, numBytes);
        printf("\n Data from server :\n");
        printf("%s\n", data);
    }

    testClose(handle);
}
Exemplo n.º 2
0
    void testOutStream(void) {
////////////////////////////// Cluster/Point outStream - Cluster/Point outStream - Cluster/Point outStream /////////////
        std::string header = "C/P: outStream";
        testSectionHeader(header);
        int testNum = 1;   // Test starting number
        int numDims = 5;   // Dimensions in test arrays (don't go below 2)
////////////////////////////// Cluster/Point outStream - Cluster/Point outStream - Cluster/Point outStream /////////////
        {
            testTitle(testNum++, header, "Cluster/Point outStream");

            Cluster c1(numDims);
            std::cout << "Cluster c" << c1.getId() << ";";
            std::cout << std::endl;

            std::ifstream inFile;
            std::cout << "std::ifstream inFile;";
            std::cout << std::endl;

            // WARNING!! MAKE SURE THE CURRENT WORKING DIRECTORY IS SET TO WHEREVER YOU HAVE main.cpp
            inFile.open("infile_1.txt");
            std::cout << "inFile.open(\"infile_1.txt\");";
            std::cout << std::endl;

            inFile >> c1;
            std::cout << "inFile >> c" << c1.getId() << ";";
            std::cout << std::endl;

            std::ofstream outFile;
            std::cout << "std::ofstream outFile;";
            std::cout << std::endl;

            outFile.open("outfile.txt");
            std::cout << "outfile.open(\"outfile.txt\");";
            std::cout << std::endl;

            outFile << c1;
            std::cout << "outFile << c" << c1.getId() << ";";


            std::cout << std::endl;
            std::cout << std::endl;

            std::cout << "[Cluster Status Before Output]";
            std::cout << std::endl;
            std::cout << "c" << c1.getId();
            std::cout << std::endl;

            c1.loud(1);

            testCheck();
            std::cout << "(Check outfile.txt for output...)";
            std::cout << std::endl;

            testClose();
        }
        testSectionClose(header);
    }
Exemplo n.º 3
0
    void testKMean(void) {
////////////////////////////// Cluster/Point iStream - Cluster/Point iStream - Cluster/Point iStream ///////////////////
        std::string header = "KMean";
        testSectionHeader(header);
        int testNum = 1;   // Test starting number
        int numDims = 5;   // Dimensions in test arrays (don't go below 2)
////////////////////////////// Cluster/Point iStream - Cluster/Point iStream - Cluster/Point iStream ///////////////////
        {
            testTitle(testNum++, header, "KMean");

            KMeans K(3,3);   // Works with either KMeans K(int) or KMeans K(int,int)
            testClose();
        }
        testSectionClose(header);
    }
Exemplo n.º 4
0
static void do_test_api1(const char *zPattern, int *pRc){
  if( testCaseBegin(pRc, zPattern, "api1.lsm") ){
    const DatasourceDefn defn = { TEST_DATASOURCE_RANDOM, 10, 15, 200, 250 };
    Datasource *pData;
    TestDb *pDb;
    int rc = 0;

    pDb = testOpen("lsm_lomem", 1, &rc);
    pData = testDatasourceNew(&defn);
    testWriteDatasourceRange(pDb, pData, 0, 1000, pRc);

    do_test_api1_lsm(tdb_lsm(pDb), pRc);

    testDatasourceFree(pData);
    testClose(&pDb);

    testCaseFinish(*pRc);
  }
}
static void testAPI(RTTEST hTest)
{
    testMappingsQuery(hTest);
    testMappingsQueryName(hTest);
    testMapFolder(hTest);
    testUnmapFolder(hTest);
    testCreate(hTest);
    testClose(hTest);
    testRead(hTest);
    testWrite(hTest);
    testLock(hTest);
    testFlush(hTest);
    testDirList(hTest);
    testReadLink(hTest);
    testFSInfo(hTest);
    testRemove(hTest);
    testRename(hTest);
    testSymlink(hTest);
    testMappingsAdd(hTest);
    testMappingsRemove(hTest);
    /* testSetStatusLed(hTest); */
}
Exemplo n.º 6
0
static void doDataTest4(
  const char *zSystem,            /* Database system to test */
  Datatest4 *p,                   /* Structure containing test parameters */
  int *pRc                        /* OUT: Error code */
){
  lsm_db *db = 0;
  TestDb *pDb;
  TestDb *pControl;
  Datasource *pData;
  int i;
  int rc = 0;
  int iDot = 0;
  int bMultiThreaded = 0;         /* True for MT LSM database */

  int nRecOn3 = (p->nRec / 3);
  int iData = 0;

  /* Start the test case, open a database and allocate the datasource. */
  rc = testControlDb(&pControl);
  pDb = testOpen(zSystem, 1, &rc);
  pData = testDatasourceNew(&p->defn);
  if( rc==0 ){
    db = tdb_lsm(pDb);
    bMultiThreaded = tdb_lsm_multithread(pDb);
  }

  testWriteDatasourceRange(pControl, pData, iData, nRecOn3*3, &rc);
  testWriteDatasourceRange(pDb,      pData, iData, nRecOn3*3, &rc);

  for(i=0; rc==0 && i<p->nRepeat; i++){

    testDeleteDatasourceRange(pControl, pData, iData, nRecOn3*2, &rc);
    testDeleteDatasourceRange(pDb,      pData, iData, nRecOn3*2, &rc);

    if( db ){
      int nDone;
#if 0
      fprintf(stderr, "lsm_work() start...\n"); fflush(stderr);
#endif
      do {
        nDone = 0;
        rc = lsm_work(db, 1, (1<<30), &nDone);
      }while( rc==0 && nDone>0 );
      if( bMultiThreaded && rc==LSM_BUSY ) rc = LSM_OK;
#if 0 
      fprintf(stderr, "lsm_work() done...\n"); fflush(stderr);
#endif
    }

if( i+1<p->nRepeat ){
    iData += (nRecOn3*2);
    testWriteDatasourceRange(pControl, pData, iData+nRecOn3, nRecOn3*2, &rc);
    testWriteDatasourceRange(pDb,      pData, iData+nRecOn3, nRecOn3*2, &rc);

    testCompareDb(pData, nRecOn3*3, iData, pControl, pDb, &rc);

    /* If Datatest4.bReopen is true, close and reopen the database */
    if( p->bReopen ){
      testReopen(&pDb, &rc);
      if( rc==0 ) db = tdb_lsm(pDb);
    }
}

    /* Update the progress dots... */
    testCaseProgress(i, p->nRepeat, testCaseNDot(), &iDot);
  }

  testClose(&pDb);
  testClose(&pControl);
  testDatasourceFree(pData);
  testCaseFinish(rc);
  *pRc = rc;
}
Exemplo n.º 7
0
    void testCentroid(void) {
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        std::string header = "Centroid Operations";
        testSectionHeader(header);
        int testNum = 1;   // Test starting number
        int numDims = 5;   // Dimensions in test arrays (don't go below 2)
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            testTitle(testNum++, header, "Centroid Operations - setCentroid(default)");

            Cluster c1(numDims);
            std::cout << "Cluster c" << c1.getId() << ";";
            std::cout << std::endl;

            std::ifstream inFile;
            std::cout << "std::ifstream inFile;";
            std::cout << std::endl;

            // WARNING!! MAKE SURE THE CURRENT WORKING DIRECTORY IS SET TO WHEREVER YOU HAVE main.cpp
            inFile.open("infile_1.txt");
            std::cout << "inFile.open(\"infile_1.txt\");";
            std::cout << std::endl;

            inFile >> c1;
            std::cout << "inFile >> c" << c1.getId() << ";";
            std::cout << std::endl;

            c1.setCentroid();
            std::cout << "c" << c1.getId() << ".setCentroid();";
            std::cout << std::endl;

            testResult();
            std::cout << "c" << c1.getId() << ".getCentroid(): (" << c1.getCentroid() << ")";
            std::cout << std::endl;

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            testTitle(testNum++, header, "Centroid Operations - setCentroid(point)");

            Cluster c1(numDims);
            std::cout << "Cluster c" << c1.getId() << ";";
            std::cout << std::endl;

            std::ifstream inFile;
            std::cout << "std::ifstream inFile;";
            std::cout << std::endl;

            // WARNING!! MAKE SURE THE CURRENT WORKING DIRECTORY IS SET TO WHEREVER YOU HAVE main.cpp
            inFile.open("infile_1.txt");
            std::cout << "inFile.open(\"infile_1.txt\");";
            std::cout << std::endl;

            inFile >> c1;
            std::cout << "inFile >> c" << c1.getId() << ";";
            std::cout << std::endl;

            double *p1arr = new double[numDims];

            randPt(numDims, 2, 4, p1arr);

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            std::cout << std::endl;
            c1.add(p1);
            std::cout << "c1.add(p1);";

            delete[] p1arr;

            std::cout << std::endl;
            c1.setCentroid(p1);
            std::cout << "c1.setCentroid(p1);";
            std::cout << std::endl;

            testResult();
            std::cout << "c" << c1.getId() << ".getCentroid(): (" << c1.getCentroid() << ")";
            std::cout << std::endl;
            c1.loud();
            std::cout << std::endl;

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            testTitle(testNum++, header, "Centroid Operations - setCentroid(point) [Not in cluster]");

            Cluster c1(numDims);
            std::cout << "Cluster c" << c1.getId() << ";";
            std::cout << std::endl;

            std::ifstream inFile;
            std::cout << "std::ifstream inFile;";
            std::cout << std::endl;

            // WARNING!! MAKE SURE THE CURRENT WORKING DIRECTORY IS SET TO WHEREVER YOU HAVE main.cpp
            inFile.open("infile_1.txt");
            std::cout << "inFile.open(\"infile_1.txt\");";
            std::cout << std::endl;

            inFile >> c1;
            std::cout << "inFile >> c" << c1.getId() << ";";
            std::cout << std::endl;

            double *p1arr = new double[numDims];

            randPt(numDims, 0, 9, p1arr);

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            delete[] p1arr;

            std::cout << std::endl;
            c1.setCentroid(p1);
            std::cout << "c1.setCentroid(p1);";
            std::cout << std::endl;

            testResult();
            std::cout << "c" << c1.getId() << ".getCentroid(): (" << c1.getCentroid() << ")";
            std::cout << std::endl;
            c1.loud();
            std::cout << std::endl;

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            testTitle(testNum++, header, "Centroid Operations - computeCentroid() [1]");

            Cluster c1(numDims);
            std::cout << "Cluster c" << c1.getId() << ";";
            std::cout << std::endl;

            std::ifstream inFile;
            std::cout << "std::ifstream inFile;";
            std::cout << std::endl;

            // WARNING!! MAKE SURE THE CURRENT WORKING DIRECTORY IS SET TO WHEREVER YOU HAVE main.cpp
            inFile.open("infile_1.txt");
            std::cout << "inFile.open(\"infile_1.txt\");";
            std::cout << std::endl;

            inFile >> c1;
            std::cout << "inFile >> c" << c1.getId() << ";";
            std::cout << std::endl;

            c1.setCentroid();
            std::cout << "c" << c1.getId() << ".setCentroid();";
            std::cout << std::endl;

            c1.computeCentroid();
            std::cout << "c" << c1.getId() << ".computeCentroid();";
            std::cout << std::endl;

            testResult();
            std::cout << "c" << c1.getId() << ".getCentroid(): (" << c1.getCentroid() << ")";
            std::cout << std::endl;

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            testTitle(testNum++, header, "Centroid Operations - computeCentroid() [2]");

            Cluster c1(numDims);
            std::cout << "Cluster c" << c1.getId() << ";";
            std::cout << std::endl;

            double p1arr[] = {21,12,0,0,0};
            double p2arr[] = {0,0,15,0,0};
            double p3arr[] = {0,0,0,9,3};

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p2arr[" << numDims << "] = ";
            testPtArr(numDims, p2arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p3arr[" << numDims << "] = ";
            testPtArr(numDims, p3arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            std::cout << std::endl;
            Point p2(numDims, p2arr);
            std::cout << "Point p2(" << numDims << ", p2arr);";

            std::cout << std::endl;
            Point p3(numDims, p3arr);
            std::cout << "Point p3(" << numDims << ", p3arr);";

            std::cout << std::endl;
            c1.add(p1);
            std::cout << "c1.add(p1);";

            std::cout << std::endl;
            c1.add(p2);
            std::cout << "c1.add(p2);";

            std::cout << std::endl;
            c1.add(p3);
            std::cout << "c1.add(p3);";

            std::cout << std::endl;
            c1.setCentroid();
            std::cout << "c" << c1.getId() << ".setCentroid();";
            std::cout << std::endl;

            c1.computeCentroid();
            std::cout << "c" << c1.getId() << ".computeCentroid();";
            std::cout << std::endl;
            testResult();
            std::cout << "c" << c1.getId() << ".getCentroid(): (" << c1.getCentroid() << ")";
            std::cout << std::endl;

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            testTitle(testNum++, header, "Centroid Operations - Move(&)");

            Cluster c1(numDims);
            std::cout << "Cluster c1(numDims);";
            std::cout << std::endl;

            Cluster c2(numDims);
            std::cout << "Cluster c2(numDims);";
            std::cout << std::endl;

            double p1arr[] = {6,12,0,0,0};
            double p2arr[] = {0,0,18,0,0};
            double p3arr[] = {0,0,0,24,30};

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p2arr[" << numDims << "] = ";
            testPtArr(numDims, p2arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p3arr[" << numDims << "] = ";
            testPtArr(numDims, p3arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            std::cout << std::endl;
            Point p2(numDims, p2arr);
            std::cout << "Point p2(" << numDims << ", p2arr);";

            std::cout << std::endl;
            Point p3(numDims, p3arr);
            std::cout << "Point p3(" << numDims << ", p3arr);";

            std::cout << std::endl;
            c1.add(p1);
            std::cout << "c1.add(p1);";

            std::cout << std::endl;
            c1.add(p2);
            std::cout << "c1.add(p2);";

            std::cout << std::endl;
            c1.add(p3);
            std::cout << "c1.add(p3);";

            std::cout << std::endl;
            std::cout << std::endl << std::endl << "[Current Data Formulation]";

            std::cout << std::endl;
            c1.loud("c1");

            std::cout << std::endl;
            c2.loud("c2");
            std::cout << std::endl;

            c1.computeCentroid();
            std::cout << std::endl;
            std::cout << "c1.computeCentroid(): (" << c1.getCentroid() << ")";

            c2.computeCentroid();
            std::cout << std::endl;
            std::cout << "c2.computeCentroid(): (" << c2.getCentroid() << ")";

            std::cout << std::endl;
            std::cout << std::endl;
            Cluster::Move(&p1,&c1,&c2).perform();
            std::cout << "Cluster::Move(&p1,&c1,&c2).perform();";

            std::cout << std::endl << std::endl << "[Current Data Formulation]";

            std::cout << std::endl;
            std::cout << std::endl;
            c1.loud("c1");

            std::cout << std::endl;
            c2.loud("c2");
            std::cout << std::endl;

            std::cout << std::endl;
            std::cout << "c1.computeCentroid(): (" << c1.getCentroid() << ")";

            c2.computeCentroid();
            std::cout << std::endl;
            std::cout << "c2.computeCentroid(): (" << c2.getCentroid() << ")";

            Cluster::Move(&p2,&c1,&c2).perform();
            std::cout << std::endl;
            std::cout << "Cluster::Move(&p2,&c1,&c2).perform();";

            std::cout << std::endl << std::endl << "[Current Data Formulation]";

            std::cout << std::endl;
            std::cout << std::endl;
            c1.loud("c1");

            std::cout << std::endl;
            c2.loud("c2");
            std::cout << std::endl;

            c1.computeCentroid();
            std::cout << std::endl;
            std::cout << "c1.computeCentroid(): (" << c1.getCentroid() << ")";

            c2.computeCentroid();
            std::cout << std::endl;
            std::cout << "c2.computeCentroid(): (" << c2.getCentroid() << ")";

            std::cout << std::endl;
            Cluster::Move(&p3,&c1,&c2).perform();
            std::cout << "Cluster::Move(&p3,&c1,&c2).perform();";

            std::cout << std::endl << std::endl << "[Current Data Formulation]";

            std::cout << std::endl;
            c1.loud("c1");

            std::cout << std::endl;
            c2.loud("c2");
            std::cout << std::endl;

            testResult();
            c1.computeCentroid();
            std::cout << std::endl;
            std::cout << "c1.computeCentroid(): (" << c1.getCentroid() << ")";


            c2.computeCentroid();
            std::cout << std::endl;
            std::cout << "c2.computeCentroid(): (" << c2.getCentroid() << ")";

            std::cout << std::endl;
            c1.loud("c1");

            std::cout << std::endl;
            c2.loud("c2");
            std::cout << std::endl;

            testCheck();
            std::cout << std::endl << "c1.computeCentroid(): [Garbage]";
            std::cout << std::endl << "c2.computeCentroid(): (2, 4, 6, 8, 10)";
            std::cout << std::endl;
            std::cout << std::endl << "c1: Size(0)   Centroid: (2.07409e-236)";
            std::cout << std::endl << "{}";
            std::cout << std::endl;
            std::cout << std::endl << "c2: Size(3)   Centroid: (2, 4, 6, 8, 10)";
            std::cout << std::endl << "{(0,0,0,24,30),(0,0,18,0,0),(6,12,0,0,0)}";

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            numDims = 6;   // Dimensions in test arrays (don't go below 2)
            testTitle(testNum++, header, "Centroid Operations - pickPoints()");

            Cluster c1(numDims);
            std::cout << "Cluster c1(numDims);";
            std::cout << std::endl;

            double p1arr[] = {6,0,0,0,0,0};
            double p2arr[] = {0,12,0,0,0,0};
            double p3arr[] = {0,0,18,0,0,0};
            double p4arr[] = {0,0,0,24,0,0};
            double p5arr[] = {0,0,0,0,30,0};
            double p6arr[] = {0,0,0,0,0,36};

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p2arr[" << numDims << "] = ";
            testPtArr(numDims, p2arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p3arr[" << numDims << "] = ";
            testPtArr(numDims, p3arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p4arr[" << numDims << "] = ";
            testPtArr(numDims, p4arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p5arr[" << numDims << "] = ";
            testPtArr(numDims, p5arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p6arr[" << numDims << "] = ";
            testPtArr(numDims, p6arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            std::cout << std::endl;
            Point p2(numDims, p2arr);
            std::cout << "Point p2(" << numDims << ", p2arr);";

            std::cout << std::endl;
            Point p3(numDims, p3arr);
            std::cout << "Point p3(" << numDims << ", p3arr);";

            std::cout << std::endl;
            Point p4(numDims, p4arr);
            std::cout << "Point p4(" << numDims << ", p4arr);";

            std::cout << std::endl;
            Point p5(numDims, p5arr);
            std::cout << "Point p5(" << numDims << ", p5arr);";

            std::cout << std::endl;
            Point p6(numDims, p6arr);
            std::cout << "Point p6(" << numDims << ", p5arr);";

            std::cout << std::endl;
            c1.add(p1);
            std::cout << "c1.add(p1);";

            std::cout << std::endl;
            c1.add(p2);
            std::cout << "c1.add(p2);";

            std::cout << std::endl;
            c1.add(p3);
            std::cout << "c1.add(p3);";

            std::cout << std::endl;
            c1.add(p4);
            std::cout << "c1.add(p4);";

            std::cout << std::endl;
            c1.add(p5);
            std::cout << "c1.add(p5);";

            std::cout << std::endl;
            c1.add(p6);
            std::cout << "c1.add(p6);";

            PointPtr pickArray1[1];
            PointPtr pickArray2[2];
            PointPtr pickArray3[3];
            PointPtr pickArray4[4];
            PointPtr pickArray5[5];
            PointPtr pickArray6[6];
            PointPtr pickArray7[7];

            std::cout << std::endl;
            c1.pickPoints(1,pickArray1);
            std::cout << "c1.pickPoints(1,pickArray1);";

            std::cout << std::endl;
            c1.pickPoints(2,pickArray2);
            std::cout << "c2.pickPoints(2,pickArray2);";

            std::cout << std::endl;
            c1.pickPoints(3,pickArray3);
            std::cout << "c3.pickPoints(3,pickArray3);";

            std::cout << std::endl;
            c1.pickPoints(4,pickArray4);
            std::cout << "c4.pickPoints(4,pickArray4);";

            std::cout << std::endl;
            c1.pickPoints(5,pickArray5);
            std::cout << "c5.pickPoints(5,pickArray5);";

            std::cout << std::endl;
            c1.pickPoints(6,pickArray6);
            std::cout << "c1.pickPoints(6,pickArray6);";

            std::cout << std::endl;
            c1.pickPoints(7,pickArray7);
            std::cout << "c1.pickPoints(7,pickArray7);";

            testResult();
            std::cout << std::endl << "pickArray1:\n(" << *pickArray1[0] << ")";
            std::cout << std::endl << "pickArray2:\n(" << *pickArray2[0] << ")"
            << "\n(" << *pickArray2[1] << ")";
            std::cout << std::endl << "pickArray3:\n(" << *pickArray3[0] << ")"
            << "\n(" << *pickArray3[1] << ")"
            << "\n(" << *pickArray3[2] << ")";
            std::cout << std::endl << "pickArray4:\n(" << *pickArray4[0] << ")"
            << "\n(" << *pickArray4[1] << ")"
            << "\n(" << *pickArray4[2] << ")"
            << "\n(" << *pickArray4[3] << ")";
            std::cout << std::endl << "pickArray5:\n(" << *pickArray5[0] << ")"
            << "\n(" << *pickArray5[1] << ")"
            << "\n(" << *pickArray5[2] << ")"
            << "\n(" << *pickArray5[3] << ")"
            << "\n(" << *pickArray5[4] << ")";
            std::cout << std::endl << "pickArray6:\n(" << *pickArray6[0] << ")"
            << "\n(" << *pickArray6[1] << ")"
            << "\n(" << *pickArray6[2] << ")"
            << "\n(" << *pickArray6[3] << ")"
            << "\n(" << *pickArray6[4] << ")"
            << "\n(" << *pickArray6[5] << ")";
            std::cout << std::endl << "pickArray6:\n(" << *pickArray7[0] << ")"
            << "\n(" << *pickArray7[1] << ")"
            << "\n(" << *pickArray7[2] << ")"
            << "\n(" << *pickArray7[3] << ")"
            << "\n(" << *pickArray7[4] << ")"
            << "\n(" << *pickArray7[5] << ")";
            std::cout << std::endl;

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            numDims = 4;   // Dimensions in test arrays (don't go below 2)
            testTitle(testNum++, header, "Centroid Operations - intraClusterDistance()");

            Cluster c1(numDims);
            std::cout << "Cluster c1(numDims);";
            std::cout << std::endl;

            double p1arr[] = {1,2,3,4};
            double p2arr[] = {2,3,4,5};
            double p3arr[] = {3,4,5,6};
            double p4arr[] = {4,5,6,7};

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p2arr[" << numDims << "] = ";
            testPtArr(numDims, p2arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p3arr[" << numDims << "] = ";
            testPtArr(numDims, p3arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p4arr[" << numDims << "] = ";
            testPtArr(numDims, p4arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            std::cout << std::endl;
            Point p2(numDims, p2arr);
            std::cout << "Point p2(" << numDims << ", p2arr);";

            std::cout << std::endl;
            Point p3(numDims, p3arr);
            std::cout << "Point p3(" << numDims << ", p3arr);";

            std::cout << std::endl;
            Point p4(numDims, p4arr);
            std::cout << "Point p4(" << numDims << ", p4arr);";

            std::cout << std::endl;
            c1.add(p1);
            std::cout << "c1.add(p1);";

            std::cout << std::endl;
            c1.add(p2);
            std::cout << "c1.add(p2);";

            std::cout << std::endl;
            c1.add(p3);
            std::cout << "c1.add(p3);";

            std::cout << std::endl;
            c1.add(p4);
            std::cout << "c1.add(p4);";

            testResult();
            std::cout << std::endl << "c1.intraClusterDistance(): " << c1.intraClusterDistance();

            testCheck();
            std::cout << std::endl << "c1.intraClusterDistance(): 20";

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            numDims = 4;   // Dimensions in test arrays (don't go below 2)
            testTitle(testNum++, header, "Centroid Operations - interClusterDistance()");

            Cluster c1(numDims);
            std::cout << "Cluster c1(numDims);";
            std::cout << std::endl;

            Cluster c2(numDims);
            std::cout << "Cluster c1(numDims);";
            std::cout << std::endl;

            double p1arr[] = {1,2,3,4};
            double p2arr[] = {2,3,4,5};
            double p3arr[] = {3,4,5,6};
            double p4arr[] = {4,5,6,7};

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p2arr[" << numDims << "] = ";
            testPtArr(numDims, p2arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p3arr[" << numDims << "] = ";
            testPtArr(numDims, p3arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p4arr[" << numDims << "] = ";
            testPtArr(numDims, p4arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            std::cout << std::endl;
            Point p2(numDims, p2arr);
            std::cout << "Point p2(" << numDims << ", p2arr);";

            std::cout << std::endl;
            Point p3(numDims, p3arr);
            std::cout << "Point p3(" << numDims << ", p3arr);";

            std::cout << std::endl;
            Point p4(numDims, p4arr);
            std::cout << "Point p4(" << numDims << ", p4arr);";

            std::cout << std::endl;
            c1.add(p1);
            std::cout << "c1.add(p1);";

            std::cout << std::endl;
            c1.add(p2);
            std::cout << "c1.add(p2);";

            std::cout << std::endl;
            c2.add(p3);
            std::cout << "c2.add(p3);";

            std::cout << std::endl;
            c2.add(p4);
            std::cout << "c2.add(p4);";

            testResult();
            std::cout << std::endl << "c1.interClusterDistance(): " << interClusterDistance(c1,c2);

            testCheck();
            std::cout << std::endl << "c1.interClusterDistance(): 8";

            testClose();
        }
////////////////////////////// Centroid Operations - Centroid Operations - Centroid Operations /////////////////////////
        {
            numDims = 4;   // Dimensions in test arrays (don't go below 2)
            testTitle(testNum++, header, "Centroid Operations - getClusterEdges()");

            Cluster c1(numDims);
            std::cout << "Cluster c1(numDims);";
            std::cout << std::endl;

            double p1arr[] = {1,2,3,4};
            double p2arr[] = {2,3,4,5};
            double p3arr[] = {3,4,5,6};
            double p4arr[] = {4,5,6,7};

            std::cout << "double p1arr[" << numDims << "] = ";
            testPtArr(numDims, p1arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p2arr[" << numDims << "] = ";
            testPtArr(numDims, p2arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p3arr[" << numDims << "] = ";
            testPtArr(numDims, p3arr, "{", "};");

            std::cout << std::endl;
            std::cout << "double p4arr[" << numDims << "] = ";
            testPtArr(numDims, p4arr, "{", "};");

            std::cout << std::endl;
            Point p1(numDims, p1arr);
            std::cout << "Point p1(" << numDims << ", p1arr);";

            std::cout << std::endl;
            Point p2(numDims, p2arr);
            std::cout << "Point p2(" << numDims << ", p2arr);";

            std::cout << std::endl;
            Point p3(numDims, p3arr);
            std::cout << "Point p3(" << numDims << ", p3arr);";

            std::cout << std::endl;
            Point p4(numDims, p4arr);
            std::cout << "Point p4(" << numDims << ", p4arr);";

            std::cout << std::endl;
            c1.add(p1);
            std::cout << "c1.add(p1);";

            std::cout << std::endl;
            c1.add(p2);
            std::cout << "c1.add(p2);";

            std::cout << std::endl;
            c1.add(p3);
            std::cout << "c1.add(p3);";

            std::cout << std::endl;
            c1.add(p4);
            std::cout << "c1.add(p4);";

            testResult();
            std::cout << std::endl << "c1.getClusterEdges(): " << c1.getClusterEdges();

            testCheck();
            std::cout << std::endl << "c1.getClusterEdges(): 6";

            testClose();
        }
        testSectionClose(header);
    }