]> ruin.nu Git - germs.git/commitdiff
possible to chose a model
authorMichael Andreen <harv@ruin.nu>
Tue, 14 Aug 2007 10:45:25 +0000 (10:45 +0000)
committerMichael Andreen <harv@ruin.nu>
Tue, 14 Aug 2007 10:45:25 +0000 (10:45 +0000)
src/main.cpp

index 1ead839eee2502e3be6283e27e4c7701aa2466e3..2e074957b459fbd72c3b5b2ada38fd7ca96753bb 100644 (file)
@@ -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 <model> Specifies which model to use for sorting: Whirl, X, Zipper, FatX or Cloud "
                                        << endl << "  -n <ann>   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<pair<double,Model> > 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<int>(cout, " "));