/*
* This file is part of JGAP.
*
* JGAP offers a dual license model containing the LGPL as well as the MPL.
*
* For licensing information please see the file license.txt included with JGAP
* or have a look at the top of class org.jgap.Chromosome which representatively
* includes the JGAP license policy applicable for any file delivered with JGAP.
*/
package examples.supergene;
import java.io.*;
import junit.framework.*;
import org.jgap.supergenes.*;
/**
* Total test of the supported Supergene classes. Due to slow run it is not
* included into AllTests.
*
* @author Audrius Meskauskas
* @since 2.0
*/
public class TotalSupergeneTest
extends TestCase {
/** String containing the CVS revision. Read out via reflection!*/
private final static String CVS_REVISION = "$Revision: 1.3 $";
/**
* Test supported Supegene features, including performance tests.
*
* @throws Exception
*/
public void testSupergeneTotal() throws Exception {
AbstractSupergeneTest.EXISTING_SOLUTIONS_ONLY = true;
AbstractSupergeneTest.REPORT_ENABLED = false;
Force.REPORT_ENABLED = false;
// assertTrue("Persistent representation",
// SupergenePersistentRepresentationTest.testRepresentation());
AbstractSupergeneTest.MAX_ALLOWED_EVOLUTIONS = 512;
AbstractSupergeneTest.POPULATION_SIZE = 256;
long abe = 0;
int N = 12;
for (int i = 1; i <= N; i++) {
System.out.println("Iteration " + i + " of " + N);
AbstractSupergene.reset();
long s_started;
// Test with Supergene
s_started = System.currentTimeMillis();
int E_s = new SupergeneSample().test();
long d_supergene = System.currentTimeMillis() - s_started;
// Test without Supergene
s_started = System.currentTimeMillis();
int E_w = new WithoutSupergeneSample().test();
long d_without = System.currentTimeMillis() - s_started;
assertTrue("Correctness of solution: supergene " + E_s
+ " control " + E_w, E_s == 0 && E_w == 0);
long benefit = (100 * d_without) / d_supergene;
assertTrue("Computation speed: supergene " + d_supergene
+ " control " + d_without + ", benefit " + benefit, true);
abe += benefit;
}
abe = abe / N;
assertTrue("Averaged benefit " + abe, abe >= 150);
}
}