paradiseo/eo/test/t-eoPartiallyMappedXover.cpp
2014-06-23 08:11:47 +02:00

71 lines
1.3 KiB
C++

/*
<t-eoPartiallyMappedXover.cpp>
*/
#include <eo>
#include <eoInt.h>
#include <eoPartiallyMappedXover.h>
#include <cstdlib>
#include <cassert>
//-----------------------------------------------------------------------------
typedef eoInt<int> Solution;
int main() {
std::cout << "[t-eoPartiallyMappedXover] => START" << std::endl;
Solution sol1, sol2;
sol1.resize(9);
sol2.resize(9);
for(int i = 0; i < sol1.size(); i++)
sol1[i] = i;
sol2[0] = 3;
sol2[1] = 4;
sol2[2] = 1;
sol2[3] = 0;
sol2[4] = 7;
sol2[5] = 6;
sol2[6] = 5;
sol2[7] = 8;
sol2[8] = 2;
std::cout << sol1 << std::endl;
std::cout << sol2 << std::endl;
eoPartiallyMappedXover<Solution> xover;
xover(sol1, sol2);
std::cout << "apres" << std::endl;
std::cout << sol1 << std::endl;
std::cout << sol2 << std::endl;
int verif[9];
for(int i = 0; i < sol1.size(); i++)
verif[i] = -1;
for(int i = 0; i < sol1.size(); i++)
verif[ sol1[i] ] = 1;
for(int i = 0; i < sol1.size(); i++)
assert(verif[i] != -1);
for(int i = 0; i < sol2.size(); i++)
verif[i] = -1;
for(int i = 0; i < sol2.size(); i++)
verif[ sol2[i] ] = 1;
for(int i = 0; i < sol2.size(); i++)
assert(verif[i] != -1);
std::cout << "[t-eoPartiallyMappedXover] => OK" << std::endl;
return EXIT_SUCCESS;
}