void JoinEnumLoop::addInnerLoop(Loop* innerLoop) { if (tInnerLoop == NULL) { tInnerLoop = innerLoop; for (int i = 0; i < tInnerLoops.size(); ++i) { Loop* currentLoop = tInnerLoops[i]; if (currentLoop != NULL){ currentLoop->addInnerLoop(tInnerLoop); } } } else { tInnerLoop->addInnerLoop(innerLoop); } }
int main(int argc, char *argv[]) { Chronometer total; total.start(); try { Test test; test.parameters.putNumber(Dummy::WEIGHS_RANGE, 20); test.parameters.putNumber(Enumerations::enumTypeToString(ET_FUNCTION), FT_IDENTITY); RangeLoop* sizeLoop = new RangeLoop(Dummy::SIZE, 100, 101, 100); Loop* loop = sizeLoop; RangeLoop* outputSizeLoop = new RangeLoop(Dummy::OUTPUT_SIZE, 1, 4, 2); loop->addInnerLoop(outputSizeLoop); EnumLoop* bufferTypeLoop = new EnumLoop(Enumerations::enumTypeToString(ET_BUFFER), ET_BUFFER); loop->addInnerLoop(bufferTypeLoop); // loop->addInnerLoop(new EnumLoop(ET_IMPLEMENTATION, 2, IT_C, IT_SSE2)); sizeLoop->addInnerLoop(new EnumLoop(ET_IMPLEMENTATION)); loop->print(); // test.testMemoryLosses(testLoops, ¶metersMap, "test loops", &loop); test.testMemoryLosses(testBuffer, "Buffer", loop); // exclude BYTE bufferTypeLoop->exclude(ET_BUFFER, 1, BT_BYTE); test.testMemoryLosses(testConnection, "Connection", loop); RangeLoop* numInputsLoop = new RangeLoop(Dummy::NUM_INPUTS, 1, 3, 1); loop->addInnerLoop(numInputsLoop); test.testMemoryLosses(testLayer, "Layer", loop); RangeLoop* numLayersLoop = new RangeLoop(Dummy::NUM_LAYERS, 1, 3, 1); loop->addInnerLoop(numLayersLoop); test.testMemoryLosses(testNeuralNet, "NeuralNet", loop); test.testMemoryLosses(testIndividual, "Individual", loop); sizeLoop->resetRange(1, 3, 1); outputSizeLoop->resetRange(1, 1, 1); numInputsLoop->resetRange(1, 1, 1); numLayersLoop->resetRange(1, 1, 1); test.testMemoryLosses(testPopulation, "Population", loop); delete(loop); MemoryManagement::printListOfPointers(); printf("Exit success.\n"); } catch (string& error) { cout << "Error: " << error << endl; } catch (...) { printf("An error was thrown.\n"); } MemoryManagement::printTotalAllocated(); MemoryManagement::printTotalPointers(); total.stop(); printf("Total time spent: %f \n", total.getSeconds()); return EXIT_SUCCESS; }