Add copy constructors. Make example working.
[genetic.git] / src / main.cpp
index 8d30c3b94171b1584aa6653076714349e3e2e3bb..958c2410403fe2017250815208a807a0179e0875 100644 (file)
@@ -6,11 +6,14 @@
 #include "gene.h"
 #include "chromosome.h"
 
+#include "fitness/wsti.h"
+
 using namespace std;
 using namespace genetic;
 
 int main() {
     typedef Gene<int> _Gene;
+    typedef Chromosome<_Gene> _Chromosome;
 
     time_t t;
     srand((unsigned)time(&t));
@@ -18,11 +21,21 @@ int main() {
     vector<_Gene> genes;
 
     for (int i = 0; i < 20; i++) {
-        _Gene gene(rand() % 255);
-        cout << "Generated gene: " << gene.get() << "\n";
+        _Gene gene(rand() % 2);
+        cout << "Generated gene: " << (int)gene.get() << "\n";
         genes.push_back(gene);
     }
-    Chromosome<_Gene> chromosome(genes);
+
+    _Chromosome chromosome(genes);
+
+    cout << "Entire chromosome: ";
+    for (int i = 0; i < 20; i++) {
+        cout << chromosome.get()[i].get();
+    }
+    cout << endl;
+    WSTI<_Chromosome> fitness(chromosome, 0.5, 2.5);
+
+    cout << "Fitness is equal to: " << (double)fitness.calculate() << "\n";
 
     return 0;
 }