X-Git-Url: https://ruin.nu/git/?p=germs.git;a=blobdiff_plain;f=src%2Fmain.cpp;h=2e074957b459fbd72c3b5b2ada38fd7ca96753bb;hp=1ead839eee2502e3be6283e27e4c7701aa2466e3;hb=5202e2201f0d303478cefb4c365306d146189b45;hpb=6c059509f0e7230c2352963e559b623fadd27810 diff --git a/src/main.cpp b/src/main.cpp index 1ead839..2e07495 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -18,15 +18,22 @@ using namespace std; int main(int argc, char** argv){ string ann = "default.ann"; + Model model(0); + bool detectModel = true; int opt; - while ((opt = getopt(argc, argv, "n:h")) != -1) { + while ((opt = getopt(argc, argv, "m:n:h")) != -1) { switch (opt) { + case 'm': + model = Model::modelFactory(optarg); + detectModel = false; + break; case 'n': ann = optarg; break; case 'h': cout << "Usage: " << argv[0] << " [OPTION] [FILE]" << endl + << endl << " -m Specifies which model to use for sorting: Whirl, X, Zipper, FatX or Cloud " << endl << " -n Specifies which artificial neural network to use for identification. '" << ann << "' is used by default" << endl << " -h Prints this help message" << endl << endl @@ -61,11 +68,14 @@ int main(int argc, char** argv){ //TODO: Identify ModelIdentifier mi(ann); priority_queue > pq = mi.identify(go); - Model model = pq.top().second; - //while (pq.size() > 0){ - cout << "Model: " << model.name() << " score: " << pq.top().first << endl; - //pq.pop(); - //} + if (detectModel){ + model = pq.top().second; + } + while (pq.size() > 0){ + cout << "Model: " << pq.top().second.name() << " score: " << pq.top().first << endl; + pq.pop(); + } + cout << "Using model: " << model.name() << endl; cout << "Distance: " << inversionDistance(go) << endl; //copy(go.begin(), go.end(), ostream_iterator(cout, " "));