[Avida-SVN] r1504 - in development: Avida.xcodeproj source/main source/tools support/config tests tests/demes_classic_clique tests/demes_classic_clique/config tests/demes_classic_clique/expected tests/demes_classic_clique/expected/data tests/demes_classic_clique/expected/data/archive tests/demes_classic_grid tests/demes_classic_grid/config tests/demes_classic_grid/expected tests/demes_classic_grid/expected/data tests/demes_classic_grid/expected/data/archive tests/demes_classic_torus tests/demes_classic_torus/config tests/demes_classic_torus/expected tests/demes_classic_torus/expected/data tests/demes_classic_torus/expected/data/archive
dknoester at myxo.css.msu.edu
dknoester at myxo.css.msu.edu
Thu Apr 26 19:49:56 PDT 2007
Author: dknoester
Date: 2007-04-26 22:49:56 -0400 (Thu, 26 Apr 2007)
New Revision: 1504
Added:
development/source/tools/cTopology.h
development/tests/demes_classic_clique/
development/tests/demes_classic_clique/config/
development/tests/demes_classic_clique/config/avida.cfg
development/tests/demes_classic_clique/config/default-classic.org
development/tests/demes_classic_clique/config/environment.cfg
development/tests/demes_classic_clique/config/events.cfg
development/tests/demes_classic_clique/config/instset-classic.cfg
development/tests/demes_classic_clique/expected/
development/tests/demes_classic_clique/expected/data/
development/tests/demes_classic_clique/expected/data/archive/
development/tests/demes_classic_clique/expected/data/archive/100-aaaaa.org
development/tests/demes_classic_clique/expected/data/average.dat
development/tests/demes_classic_clique/expected/data/count.dat
development/tests/demes_classic_clique/expected/data/detail-100.pop
development/tests/demes_classic_clique/expected/data/dominant.dat
development/tests/demes_classic_clique/expected/data/historic-100.pop
development/tests/demes_classic_clique/expected/data/resource.dat
development/tests/demes_classic_clique/expected/data/stats.dat
development/tests/demes_classic_clique/expected/data/tasks.dat
development/tests/demes_classic_clique/expected/data/tasks_exe.dat
development/tests/demes_classic_clique/expected/data/tasks_quality.dat
development/tests/demes_classic_clique/expected/data/time.dat
development/tests/demes_classic_clique/test_list
development/tests/demes_classic_grid/
development/tests/demes_classic_grid/config/
development/tests/demes_classic_grid/config/avida.cfg
development/tests/demes_classic_grid/config/default-classic.org
development/tests/demes_classic_grid/config/environment.cfg
development/tests/demes_classic_grid/config/events.cfg
development/tests/demes_classic_grid/config/instset-classic.cfg
development/tests/demes_classic_grid/expected/
development/tests/demes_classic_grid/expected/data/
development/tests/demes_classic_grid/expected/data/archive/
development/tests/demes_classic_grid/expected/data/archive/100-aaaaa.org
development/tests/demes_classic_grid/expected/data/average.dat
development/tests/demes_classic_grid/expected/data/count.dat
development/tests/demes_classic_grid/expected/data/detail-100.pop
development/tests/demes_classic_grid/expected/data/dominant.dat
development/tests/demes_classic_grid/expected/data/historic-100.pop
development/tests/demes_classic_grid/expected/data/resource.dat
development/tests/demes_classic_grid/expected/data/stats.dat
development/tests/demes_classic_grid/expected/data/tasks.dat
development/tests/demes_classic_grid/expected/data/tasks_exe.dat
development/tests/demes_classic_grid/expected/data/tasks_quality.dat
development/tests/demes_classic_grid/expected/data/time.dat
development/tests/demes_classic_grid/test_list
development/tests/demes_classic_torus/
development/tests/demes_classic_torus/config/
development/tests/demes_classic_torus/config/avida.cfg
development/tests/demes_classic_torus/config/default-classic.org
development/tests/demes_classic_torus/config/environment.cfg
development/tests/demes_classic_torus/config/events.cfg
development/tests/demes_classic_torus/config/instset-classic.cfg
development/tests/demes_classic_torus/expected/
development/tests/demes_classic_torus/expected/data/
development/tests/demes_classic_torus/expected/data/archive/
development/tests/demes_classic_torus/expected/data/archive/100-aaaaa.org
development/tests/demes_classic_torus/expected/data/average.dat
development/tests/demes_classic_torus/expected/data/count.dat
development/tests/demes_classic_torus/expected/data/detail-100.pop
development/tests/demes_classic_torus/expected/data/dominant.dat
development/tests/demes_classic_torus/expected/data/historic-100.pop
development/tests/demes_classic_torus/expected/data/resource.dat
development/tests/demes_classic_torus/expected/data/stats.dat
development/tests/demes_classic_torus/expected/data/tasks.dat
development/tests/demes_classic_torus/expected/data/tasks_exe.dat
development/tests/demes_classic_torus/expected/data/tasks_quality.dat
development/tests/demes_classic_torus/expected/data/time.dat
development/tests/demes_classic_torus/test_list
Modified:
development/Avida.xcodeproj/project.pbxproj
development/source/main/cAvidaConfig.h
development/source/main/cPopulation.cc
development/source/main/cPopulation.h
development/source/main/nGeometry.h
development/source/tools/tArray.h
development/support/config/avida.cfg
Log:
This commit:
- Adds a new WORLD_GEOMETRY type, CLIQUE (completely connected).
- Refactors deme setup so that the WORLD_GEOMETRY is applied to each deme.
- Abstracts topology construction out of cPopulation and into tools/cTopology.
Finally, simple consistency tests are added for demes and these different topologies.
Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj 2007-04-26 20:53:19 UTC (rev 1503)
+++ development/Avida.xcodeproj/project.pbxproj 2007-04-27 02:49:56 UTC (rev 1504)
@@ -10,6 +10,7 @@
1097463F0AE9606E00929ED6 /* cDeme.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1097463D0AE9606E00929ED6 /* cDeme.cc */; };
109746410AE9606E00929ED6 /* cDeme.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1097463D0AE9606E00929ED6 /* cDeme.cc */; };
109746430AE9606E00929ED6 /* cDeme.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1097463D0AE9606E00929ED6 /* cDeme.cc */; };
+ 4201F39B0BE187F6006279B9 /* cTopology.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4201F39A0BE187F6006279B9 /* cTopology.h */; };
4233358A0BC067E3000DF681 /* cHardwareGX.cc in Sources */ = {isa = PBXBuildFile; fileRef = 423335880BC067E3000DF681 /* cHardwareGX.cc */; };
4233358B0BC067E3000DF681 /* cHardwareGX.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 423335890BC067E3000DF681 /* cHardwareGX.h */; };
7005A70409BA0FA90007E16E /* cTestCPUInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */; };
@@ -426,6 +427,7 @@
70B1A7430B7E3FFD00067486 /* instset-experimental.cfg in CopyFiles */,
70B1A75A0B7E431F00067486 /* experimental.org in CopyFiles */,
4233358B0BC067E3000DF681 /* cHardwareGX.h in CopyFiles */,
+ 4201F39B0BE187F6006279B9 /* cTopology.h in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -444,6 +446,7 @@
/* Begin PBXFileReference section */
1097463D0AE9606E00929ED6 /* cDeme.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cDeme.cc; sourceTree = "<group>"; };
1097463E0AE9606E00929ED6 /* cDeme.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cDeme.h; sourceTree = "<group>"; };
+ 4201F39A0BE187F6006279B9 /* cTopology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cTopology.h; sourceTree = "<group>"; };
423335880BC067E3000DF681 /* cHardwareGX.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHardwareGX.cc; sourceTree = "<group>"; };
423335890BC067E3000DF681 /* cHardwareGX.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHardwareGX.h; sourceTree = "<group>"; };
7005A70109BA0FA90007E16E /* cTestCPUInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cTestCPUInterface.h; sourceTree = "<group>"; };
@@ -1520,6 +1523,7 @@
70B08B8D08FB2E5500FC65FE /* tMatrix.h */,
70B08B8E08FB2E5500FC65FE /* tMemTrack.h */,
70B08B8F08FB2E5500FC65FE /* tVector.h */,
+ 4201F39A0BE187F6006279B9 /* cTopology.h */,
70B0891608F7630100FC65FE /* cHelpAlias.cc */,
70B0891708F7630100FC65FE /* cHelpManager.cc */,
70B0891808F7630100FC65FE /* cHelpType.cc */,
Modified: development/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h 2007-04-26 20:53:19 UTC (rev 1503)
+++ development/source/main/cAvidaConfig.h 2007-04-27 02:49:56 UTC (rev 1504)
@@ -194,10 +194,10 @@
CONFIG_ADD_GROUP(ARCH_GROUP, "Architecture Variables");
CONFIG_ADD_VAR(WORLD_X, int, 60, "Width of the Avida world");
CONFIG_ADD_VAR(WORLD_Y, int, 60, "Height of the Avida world");
- CONFIG_ADD_VAR(WORLD_GEOMETRY, int, 2, "1 = Bounded Grid\n2 = Torus");
+ CONFIG_ADD_VAR(WORLD_GEOMETRY, int, 2, "1 = Bounded Grid\n2 = Torus\n3 = Clique");
CONFIG_ADD_VAR(NUM_DEMES, int, 0, "Number of independed groups in the population; 0=off");
CONFIG_ADD_VAR(RANDOM_SEED, int, 0, "Random number seed (0 for based on time)");
- CONFIG_ADD_VAR(HARDWARE_TYPE, int, 0, "0 = Original CPUs\n1 = New SMT CPUs\n2 = Transitional SMT");
+ CONFIG_ADD_VAR(HARDWARE_TYPE, int, 0, "0 = Original CPUs\n1 = New SMT CPUs\n2 = Transitional SMT\n3 = Experimental CPU\n4 = Gene Expression CPU");
CONFIG_ADD_GROUP(CONFIG_FILE_GROUP, "Configuration Files");
CONFIG_ADD_VAR(DATA_DIR, cString, "data", "Directory in which config files are found");
Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc 2007-04-26 20:53:19 UTC (rev 1503)
+++ development/source/main/cPopulation.cc 2007-04-27 02:49:56 UTC (rev 1504)
@@ -50,6 +50,7 @@
#include "cSaleItem.h"
#include "cSpecies.h"
#include "cStats.h"
+#include "cTopology.h"
#include "cWorld.h"
#include <fstream>
@@ -76,85 +77,97 @@
// Avida specific information.
world_x = world->GetConfig().WORLD_X.Get();
world_y = world->GetConfig().WORLD_Y.Get();
- int geometry = world->GetConfig().WORLD_GEOMETRY.Get();
- const int num_cells = world_x * world_y;
+ int num_demes = m_world->GetConfig().NUM_DEMES.Get();
+ const int num_cells = world_x * world_y;
+ const int geometry = world->GetConfig().WORLD_GEOMETRY.Get();
+ const int birth_method = m_world->GetConfig().BIRTH_METHOD.Get();
// Print out world details
if (world->GetVerbosity() > VERBOSE_NORMAL) {
cout << "Building world " << world_x << "x" << world_y << " = " << num_cells << " organisms." << endl;
- if (geometry == nGeometry::GRID) {
- cout << "Geometry: Bounded grid" << endl;
- } else if (geometry == nGeometry::TORUS) {
- cout << "Geometry: Torus" << endl;
- } else {
- cout << "Geometry: Unknown" << endl;
+ switch(geometry) {
+ case nGeometry::GRID: { cout << "Geometry: Bounded grid" << endl; break; }
+ case nGeometry::TORUS: { cout << "Geometry: Torus" << endl; break; }
+ case nGeometry::CLIQUE: { cout << "Geometry: Clique" << endl; break; }
+ default: {
+ cout << "Unknown geometry!" << endl;
+ assert(false);
+ }
}
- cout << endl;
}
- cell_array.Resize(num_cells);
- resource_count.ResizeSpatialGrids(world_x, world_y);
- market.Resize(MARKET_SIZE);
+ // Error checking for demes vs. non-demes setup.
+ if(num_demes > 0) {
+ assert(birth_method != POSITION_CHILD_FULL_SOUP_ELDEST);
+ assert(birth_method != POSITION_CHILD_FULL_SOUP_ELDEST);
+ } else {
+ assert(birth_method != POSITION_CHILD_DEME_RANDOM);
+ num_demes = 1; // One population == one deme.
+ }
+
+ // Allocate the cells, resources, and market.
+ cell_array.Resize(num_cells);
+ resource_count.ResizeSpatialGrids(world_x, world_y);
+ market.Resize(MARKET_SIZE);
+
+ // Setup the cells. Do things that are not dependent upon topology here.
+ for(int i=0; i<num_cells; ++i) {
+ cell_array[i].Setup(world, i, environment.GetMutRates());
+ // Setup the reaper queue.
+ if (world->GetConfig().BIRTH_METHOD.Get() == POSITION_CHILD_FULL_SOUP_ELDEST) {
+ reaper_queue.Push(&(cell_array[i]));
+ }
+ }
+
+ // What are the sizes of the demes that we're creating?
+ const int deme_size_x = world_x;
+ const int deme_size_y = world_y / num_demes;
+ const int deme_size = deme_size_x * deme_size_y;
+ deme_array.Resize(num_demes);
+
+ // Setup the deme structures.
+ tArray<int> deme_cells(deme_size);
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ for (int offset = 0; offset < deme_size; offset++) {
+ int cell_id = deme_id * deme_size + offset;
+ deme_cells[offset] = cell_id;
+ cell_array[cell_id].SetDemeID(deme_id);
+ }
+ deme_array[deme_id].Setup(deme_cells, deme_size_x);
+ }
- for (int cell_id = 0; cell_id < num_cells; cell_id++) {
- int x = cell_id % world_x;
- int y = cell_id / world_x;
- cell_array[cell_id].Setup(world, cell_id, environment.GetMutRates());
-
- // If we're working with a bounded grid, we need to take care of it.
- bool bottom_flag = true;
- bool top_flag = true;
- bool right_flag = true;
- bool left_flag = true;
-
- if (geometry == nGeometry::GRID) {
- if (y == 0) bottom_flag = false;
- if (y == world_y-1) top_flag = false;
- if (x == 0) left_flag = false;
- if (x == world_x-1) right_flag = false;
- }
-
- // Setup the connection list for each cell. (Clockwise from -1 to 1)
-
- tList<cPopulationCell> & conn_list=cell_array[cell_id].ConnectionList();
- if (bottom_flag && left_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, -1, -1)]));
- }
- if (bottom_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, 0, -1)]));
- }
- if (bottom_flag && right_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, +1, -1)]));
- }
- if (right_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, +1, 0)]));
- }
- if (top_flag && right_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, +1, +1)]));
- }
- if (top_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, 0, +1)]));
- }
- if (top_flag && left_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, -1, +1)]));
- }
- if (left_flag) {
- conn_list.Push(&(cell_array[GridNeighbor(cell_id,world_x,world_y, -1, 0)]));
- }
-
- // Setup the reaper queue...
- if (world->GetConfig().BIRTH_METHOD.Get() == POSITION_CHILD_FULL_SOUP_ELDEST) {
- reaper_queue.Push(&(cell_array[cell_id]));
- }
- }
+ // Setup the topology.
+ // What we're doing here is chopping the cell_array up into num_demes pieces.
+ // Note that having 0 demes (one population) is the same as having 1 deme. Then
+ // we send the cells that comprise each deme into the topology builder.
+ for(int i=0; i<num_cells; i+=deme_size) {
+ switch(geometry) {
+ // We're cheating here; we're using the random access nature of an iterator
+ // to index beyond the end of the cell_array.
+ case nGeometry::GRID: {
+ build_grid(&cell_array.begin()[i], &cell_array.begin()[i+deme_size],
+ deme_size_x, deme_size_y);
+ break;
+ }
+ case nGeometry::TORUS: {
+ build_torus(&cell_array.begin()[i], &cell_array.begin()[i+deme_size],
+ deme_size_x, deme_size_y);
+ break;
+ }
+ case nGeometry::CLIQUE: {
+ build_clique(&cell_array.begin()[i], &cell_array.begin()[i+deme_size],
+ deme_size_x, deme_size_y);
+ break;
+ }
+ default: {
+ assert(false);
+ }
+ }
+ }
+
BuildTimeSlicer(0);
- if (SetupDemes() == false) {
- cerr << "Error: Failed to setup demes. Exiting..." << endl;
- exit(1);
- }
-
// Setup the resources...
const cResourceLib & resource_lib = environment.GetResourceLib();
for (int i = 0; i < resource_lib.GetSize(); i++) {
@@ -203,84 +216,6 @@
}
-// This method configures demes in the population. Demes are subgroups of
-// organisms evolved together and used in group selection experiments.
-
-bool cPopulation::SetupDemes()
-{
- const int num_demes = m_world->GetConfig().NUM_DEMES.Get();
- const int birth_method = m_world->GetConfig().BIRTH_METHOD.Get();
-
- // If we are not using demes, stop here.
- if (num_demes == 0) {
- if (birth_method == POSITION_CHILD_DEME_RANDOM) {
- cerr << "Using position method that requires demes, but demes are off."
- << endl;
- return false;
- }
- return true;
- }
-
- deme_array.Resize(num_demes);
-
- // Check to make sure all other settings are reasonable to have demes.
- // ...make sure populaiton can be divided up evenly.
- if (world_y % num_demes != 0) {
- cerr << "World Y size of " << world_y
- << " cannot be divided into " << num_demes << " demes." << endl;
- return false;
- }
-
- // ...make sure we are using a legal birth method.
- if (birth_method == POSITION_CHILD_FULL_SOUP_ELDEST ||
- birth_method == POSITION_CHILD_FULL_SOUP_RANDOM) {
- cerr << "Illegal birth method " << birth_method << " for use with demes." << endl;
- return false;
- }
-
- const int deme_size_x = world_x;
- const int deme_size_y = world_y / num_demes;
- const int deme_size = deme_size_x * deme_size_y;
-
-
- // Setup the deme structures.
- tArray<int> deme_cells(deme_size);
- for (int deme_id = 0; deme_id < num_demes; deme_id++) {
- for (int offset = 0; offset < deme_size; offset++) {
- int cell_id = deme_id * deme_size + offset;
- deme_cells[offset] = cell_id;
- cell_array[cell_id].SetDemeID(deme_id);
- }
- deme_array[deme_id].Setup(deme_cells);
- }
-
-
- // Build walls in the population.
- for (int row_id = 0; row_id < world_y; row_id += deme_size_y) {
- // Loop through all of the cols and make the cut on each...
- for (int col_id = 0; col_id < world_x; col_id++) {
- int idA = row_id * world_x + col_id;
- int idB = GridNeighbor(idA, world_x, world_y, 0, -1);
- int idA0 = GridNeighbor(idA, world_x, world_y, -1, 0);
- int idA1 = GridNeighbor(idA, world_x, world_y, 1, 0);
- int idB0 = GridNeighbor(idA, world_x, world_y, -1, -1);
- int idB1 = GridNeighbor(idA, world_x, world_y, 1, -1);
- cPopulationCell & cellA = GetCell(idA);
- cPopulationCell & cellB = GetCell(idB);
- tList<cPopulationCell> & cellA_list = cellA.ConnectionList();
- tList<cPopulationCell> & cellB_list = cellB.ConnectionList();
- cellA_list.Remove(&GetCell(idB));
- cellA_list.Remove(&GetCell(idB0));
- cellA_list.Remove(&GetCell(idB1));
- cellB_list.Remove(&GetCell(idA));
- cellB_list.Remove(&GetCell(idA0));
- cellB_list.Remove(&GetCell(idA1));
- }
- }
-
- return true;
-}
-
// Activate the child, given information from the parent.
// Return true if parent lives through this process.
Modified: development/source/main/cPopulation.h
===================================================================
--- development/source/main/cPopulation.h 2007-04-26 20:53:19 UTC (rev 1503)
+++ development/source/main/cPopulation.h 2007-04-27 02:49:56 UTC (rev 1504)
@@ -143,9 +143,6 @@
cPopulation(cWorld* world);
~cPopulation();
- // Extra Setup...
- bool SetupDemes();
-
// Activate the offspring of an organism in the population
bool ActivateOffspring(cAvidaContext& ctx, cGenome& child_genome, cOrganism& parent_organism);
bool ActivateParasite(cOrganism& parent, const cCodeLabel& label, const cGenome& injected_code);
Modified: development/source/main/nGeometry.h
===================================================================
--- development/source/main/nGeometry.h 2007-04-26 20:53:19 UTC (rev 1503)
+++ development/source/main/nGeometry.h 2007-04-27 02:49:56 UTC (rev 1504)
@@ -29,7 +29,8 @@
enum {
GLOBAL = 0,
GRID,
- TORUS
+ TORUS,
+ CLIQUE
};
}
Added: development/source/tools/cTopology.h
===================================================================
--- development/source/tools/cTopology.h (rev 0)
+++ development/source/tools/cTopology.h 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,88 @@
+/*! Builds different topologies out of ranges of cells.
+
+Avida; cTopology.h
+Copyright 2005-2006 Michigan State University. All rights reserved.
+
+This file contains templated algorithms that create a particular cell
+topology out of a given range of cells. In every case, the range of cells is
+specified by a begin/end iterator pair.
+*/
+
+
+/*! Builds a torus topology out of the cells betwen the iterators.
+In a torus, each cell is connected to up to 8 neighbors (including diagonals),
+and connections DO wrap around the logical edges of the torus.
+*/
+template< typename InputIterator >
+void build_torus(InputIterator begin, InputIterator end, unsigned int rowSize, unsigned int colSize) {
+ // Get the offset from the start of this range. This is used to modify the
+ // parameters and return for GridNeighbor.
+ int offset = begin->GetID();
+
+ for(InputIterator i=begin; i!=end; ++i) {
+ // The majority of all connections.
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, -1)]);
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 0, -1)]);
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, -1)]);
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, 0)]);
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, 1)]);
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 0, 1)]);
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, 1)]);
+ i->ConnectionList().Push(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, 0)]);
+ }
+}
+
+
+/*! Builds a grid topology out of the cells betwen the iterators.
+In a grid, each cell is connected to up to 8 neighbors (including diagonals),
+and connections do NOT wrap around the logical edges of the grid.
+*/
+template< typename InputIterator >
+void build_grid(InputIterator begin, InputIterator end, unsigned int rowSize, unsigned int colSize) {
+ // Start with a torus.
+ build_torus(begin, end, rowSize, colSize);
+ int offset = begin->GetID();
+
+ // And now remove the connections that wrap around.
+ for(InputIterator i=begin; i!=end; ++i) {
+ int id = i->GetID();
+ unsigned int x = (id-offset) % colSize;
+ unsigned int y = (id-offset) / colSize;
+
+ if(x==0) {
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, -1)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, 0)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, 1)]);
+ }
+ if(x==(colSize-1)) {
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, -1)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, 0)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, 1)]);
+ }
+ if(y==0) {
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, -1)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 0, -1)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, -1)]);
+ }
+ if(y==(rowSize-1)) {
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, 1)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 0, 1)]);
+ i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, 1)]);
+ }
+ }
+}
+
+
+/*! Builds a clique topology out of the cells betwen the iterators.
+In a clique, each cell is connected to all other cells in the given range.
+*/
+template< typename InputIterator >
+void build_clique(InputIterator begin, InputIterator end, unsigned int rowSize, unsigned int colSize) {
+ for(InputIterator i=begin; i!=end; ++i) {
+ for(InputIterator j=begin; j!=end; ++j) {
+ if(j!=i) {
+ i->ConnectionList().Push(j);
+ }
+ }
+ }
+}
Modified: development/source/tools/tArray.h
===================================================================
--- development/source/tools/tArray.h 2007-04-26 20:53:19 UTC (rev 1503)
+++ development/source/tools/tArray.h 2007-04-27 02:49:56 UTC (rev 1504)
@@ -48,12 +48,27 @@
int m_size; // Number of Elements
public:
+ typedef T* iterator; //!< STL-compatible iterator.
+ typedef const T* const_iterator; //!< STL-compatible const_iterator.
+
explicit tArray(const int size = 0) : m_data(NULL), m_size(0) { ResizeClear(size); }
//explicit tArray(const int size = 0, const T& init_val) : m_data(NULL), m_size(0) { Resize(size, init_val); }
tArray(const tArray& rhs) : m_data(NULL), m_size(0) { this->operator=(rhs); }
~tArray() { delete [] m_data; }
-
+
+ //! Returns an iterator to the beginning of the tArray.
+ inline iterator begin() { return m_data; }
+
+ //! Returns an iterator just past the end of the tArray.
+ inline iterator end() { return m_data + m_size; }
+
+ //! Returns a const_iterator to the beginning of the tArray.
+ inline const_iterator begin() const { return m_data; }
+
+ //! Returns a const_iterator just past the end of the tArray.
+ inline const_iterator end() const { return m_data + m_size; }
+
tArray& operator=(const tArray& rhs) {
if (m_size != rhs.GetSize()) ResizeClear(rhs.GetSize());
for(int i = 0; i < m_size; i++) m_data[i] = rhs[i];
Modified: development/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg 2007-04-26 20:53:19 UTC (rev 1503)
+++ development/support/config/avida.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -20,6 +20,7 @@
WORLD_Y 60 # Height of the Avida world
WORLD_GEOMETRY 2 # 1 = Bounded Grid
# 2 = Torus
+ # 3 - Clique
NUM_DEMES 0 # Number of independed groups in the population; 0=off
RANDOM_SEED 0 # Random number seed (0 for based on time)
HARDWARE_TYPE 0 # 0 = Original CPUs
Added: development/tests/demes_classic_clique/config/avida.cfg
===================================================================
--- development/tests/demes_classic_clique/config/avida.cfg (rev 0)
+++ development/tests/demes_classic_clique/config/avida.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,217 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.7.0 # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0 # 0 = Disabled
+ # 1 = Enabled
+ # 2 = Interactive
+VIEW_MODE 1 # Initial viewer screen
+CLONE_FILE - # Clone file to load
+VERBOSITY 1 # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 10 # Width of the Avida world
+WORLD_Y 1000 # Height of the Avida world
+WORLD_GEOMETRY 3 # 1 = Bounded Grid
+ # 2 = Torus
+ # 3 = Clique
+NUM_DEMES 100 # Number of independed groups in the population; 0=off
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data # Directory in which config files are found
+INST_SET - # File containing instruction set
+EVENT_FILE events.cfg # File containing list of events during run
+ANALYZE_FILE analyze.cfg # File used for analysis mode
+ENVIRONMENT_FILE environment.cfg # File that describes the environment
+START_CREATURE default-classic.org # Organism to seed the soup
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 0 # Which organism should be replaced on birth?
+ # 0 = Random organism in neighborhood
+ # 1 = Oldest in neighborhood
+ # 2 = Largest Age/Merit in neighborhood
+ # 3 = None (use only empty cells in neighborhood)
+ # 4 = Random from population (Mass Action)
+ # 5 = Oldest in entire population
+ # 6 = Random within deme
+ # 7 = Organism faced by parent
+ # 8 = Next grid cell (id+1)
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
+DEATH_METHOD 2 # 0 = Never die of old age.
+ # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+ # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20 # Modifies DEATH_METHOD
+AGE_DEVIATION 0 # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0 # (Orignal CPU Only)
+ # 0 = Allocated space is set to default instruction.
+ # 1 = Set to section of dead genome (Necrophilia)
+ # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1 # 0 = Divide leaves state of mother untouched.
+ # 1 = Divide resets state of mother
+ # (after the divide, we have 2 children)
+ # 2 = Divide resets state of current thread only
+ # (does not touch possible parasite threads)
+GENERATION_INC_METHOD 1 # 0 = Only the generation of the child is
+ # increased on divide.
+ # 1 = Both the generation of the mother and child are
+ # increased on divide (good with DIVIDE_METHOD 1).
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0 # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1 # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0 # number of modules in the genome
+CONT_REC_REGS 1 # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1 # are (modular) recombination regions swapped randomly
+ # or with corresponding positions?
+TWO_FOLD_COST_SEX 0 # 1 = only one recombined offspring is born.
+ # 2 = both offspring are born
+SAME_LENGTH_SEX 0 # 0 = recombine with any genome
+ # 1 = only recombine w/ same length
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 2.0 # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.5 # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.5 # Code fraction which must be executed before divide.
+REQUIRE_ALLOCATE 1 # (Original CPU Only) Require allocate before divide?
+REQUIRED_TASK -1 # Task ID required for successful divide.
+IMMUNITY_TASK -1 # Task providing immunity from the required task.
+REQUIRED_REACTION -1 # Reaction ID required for successful divide.
+REQUIRED_BONUS 0 # The bonus that an organism must accumulate to divide.
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0 # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0075 # Mutation rate (per copy)
+INS_MUT_PROB 0.0 # Insertion rate (per site, applied on divide)
+DEL_MUT_PROB 0.0 # Deletion rate (per site, applied on divide)
+DIV_MUT_PROB 0.0 # Mutation rate (per site, applied on divide)
+DIVIDE_MUT_PROB 0.0 # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.05 # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.05 # Deletion rate (per divide)
+PARENT_MUT_PROB 0.0 # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1 # If this is >= 0, ONLY this line is mutated
+INJECT_INS_PROB 0.0 # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0 # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0 # Mutation rate (per site, applied on inject)
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0 # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0 # 0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0 #
+REVERT_BENEFICIAL 0.0 #
+STERILIZE_FATAL 0.0 # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0 #
+STERILIZE_NEUTRAL 0.0 #
+STERILIZE_BENEFICIAL 0.0 #
+FAIL_IMPLICIT 0 # Should copies that failed *not* due to mutations
+ # be eliminated?
+NEUTRAL_MAX 0.0 # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0 # The percent deleterious change from parent fitness to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30 # Ave number of insts per org per update
+SLICING_METHOD 1 # 0 = CONSTANT: all organisms get default...
+ # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+ # 2 = INTEGRATED: Perfectly integrated deterministic.
+BASE_MERIT_METHOD 4 # 0 = Constant (merit independent of size)
+ # 1 = Merit proportional to copied size
+ # 2 = Merit prop. to executed size
+ # 3 = Merit prop. to full size
+ # 4 = Merit prop. to min of executed or copied size
+ # 5 = Merit prop. to sqrt of the minimum size
+BASE_CONST_MERIT 100 # Base merit when BASE_MERIT_METHOD set to 0
+DEFAULT_BONUS 1.0 # Initial bonus before any tasks
+MERIT_DEFAULT_BONUS 0 # Scale the merit of an offspring by the default bonus
+ # rather than the accumulated bonus of the parent?
+MAX_CPU_THREADS 1 # Number of Threads a CPU can spawn
+THREAD_SLICING_METHOD 0 # Formula for and organism's thread slicing
+ # (num_threads-1) * THREAD_SLICING_METHOD + 1
+ # 0 = One thread executed per time slice.
+ # 1 = All threads executed each time slice.
+MAX_LABEL_EXE_SIZE 1 # Max nops marked as executed when labels are used
+DONATE_SIZE 5.0 # Amount of merit donated with 'donate' command
+DONATE_MULT 10.0 # Multiple of merit given that the target receives.
+MAX_DONATE_KIN_DIST -1 # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1 # Limit on edit distance for donate; -1=no max
+MAX_DONATES 1000000 # Limit on number of donates organisms are allowed.
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1 # Keep all ancestors of the active population?
+ # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3 # Number of organisms in a genotype needed for it
+ # to be considered viable.
+GENOTYPE_PRINT 0 # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0 # Print out a genotype if it stays dominant for
+ # this many updates. (0 = off)
+SPECIES_THRESHOLD 2 # max failure count for organisms to be same species
+SPECIES_RECORDING 0 # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0 # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20 # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0 # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0 # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0 # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0 # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are. Works only when LOG_LINEAGES is set to 1.
+# 0 = manual creation (on inject, use successive integers as lineage labels).
+# 1 = when a child's (potential) fitness is higher than that of its parent.
+# 2 = when a child's (potential) fitness is higher than max in population.
+# 3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+# 4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+# 5 = same as child's (potential) fitness is higher than that of the
+# currently dominant organism, and also than that of any organism
+# currently in the same lineage.
+# 6 = when a child's (potential) fitness is higher than any organism
+# currently in the same lineage.
+# 7 = when a child's (potential) fitness is higher than that of any
+# organism in its line of descent
+LOG_LINEAGES 0 #
+LINEAGE_CREATION_METHOD 0 #
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0 # Enable Network Communication Support
+NET_DROP_PROB 0.0 # Message drop rate
+NET_MUT_PROB 0.0 # Message corruption probability
+NET_MUT_TYPE 0 # Type of message corruption. 0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0 # Communication Style. 0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0 # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0 # price offered by organisms attempting to buy
+SELL_PRICE 0 # price offered by organisms attempting to sell
+
+### ANALYZE_GROUP ###
+# Analysis Settings
+MT_CONCURRENCY 1 # Number of concurrent analyze threads
+ANALYZE_OPTION_1 # String variable accessible from analysis scripts
+ANALYZE_OPTION_2 # String variable accessible from analysis scripts
Added: development/tests/demes_classic_clique/config/default-classic.org
===================================================================
--- development/tests/demes_classic_clique/config/default-classic.org (rev 0)
+++ development/tests/demes_classic_clique/config/default-classic.org 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,100 @@
+h-alloc # Allocate space for child
+h-search # Locate the end of the organism
+nop-C #
+nop-A #
+mov-head # Place write-head at beginning of offspring.
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+h-divide # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
Added: development/tests/demes_classic_clique/config/environment.cfg
===================================================================
--- development/tests/demes_classic_clique/config/environment.cfg (rev 0)
+++ development/tests/demes_classic_clique/config/environment.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,9 @@
+REACTION NOT not process:value=1.0:type=pow requisite:max_count=1
+REACTION NAND nand process:value=1.0:type=pow requisite:max_count=1
+REACTION AND and process:value=2.0:type=pow requisite:max_count=1
+REACTION ORN orn process:value=2.0:type=pow requisite:max_count=1
+REACTION OR or process:value=3.0:type=pow requisite:max_count=1
+REACTION ANDN andn process:value=3.0:type=pow requisite:max_count=1
+REACTION NOR nor process:value=4.0:type=pow requisite:max_count=1
+REACTION XOR xor process:value=4.0:type=pow requisite:max_count=1
+REACTION EQU equ process:value=5.0:type=pow requisite:max_count=1
Added: development/tests/demes_classic_clique/config/events.cfg
===================================================================
--- development/tests/demes_classic_clique/config/events.cfg (rev 0)
+++ development/tests/demes_classic_clique/config/events.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,16 @@
+# Print all of the standard data files...
+u 0:10:end PrintAverageData # Save info about they average genotypes
+u 0:10:end PrintDominantData # Save info about most abundant genotypes
+u 0:10:end PrintStatsData # Collect satistics about entire pop.
+u 0:10:end PrintCountData # Count organisms, genotypes, species, etc.
+u 0:10:end PrintTasksData # Save organisms counts for each task.
+u 0:10:end PrintTimeData # Track time conversion (generations, etc.)
+u 0:10:end PrintResourceData # Track resource abundance.
+u 0:10:end PrintDominantGenotype # Save the most abundant genotypes
+u 0:10:end PrintTasksExeData # Num. times tasks have been executed.
+u 0:10:end PrintTasksQualData # Task quality information
+
+# Setup the exit time and full population data collection.
+u 100 SavePopulation # Save current state of population.
+u 100 SaveHistoricPopulation # Save ancestors of current population.
+u 100 exit # exit
Added: development/tests/demes_classic_clique/config/instset-classic.cfg
===================================================================
--- development/tests/demes_classic_clique/config/instset-classic.cfg (rev 0)
+++ development/tests/demes_classic_clique/config/instset-classic.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,28 @@
+nop-A 1 # a
+nop-B 1 # b
+nop-C 1 # c
+if-n-equ 1 # d
+if-less 1 # e
+pop 1 # f
+push 1 # g
+swap-stk 1 # h
+swap 1 # i
+shift-r 1 # j
+shift-l 1 # k
+inc 1 # l
+dec 1 # m
+add 1 # n
+sub 1 # o
+nand 1 # p
+IO 1 # q Puts current contents of register and gets new.
+h-alloc 1 # r Allocate as much memory as organism can use.
+h-divide 1 # s Cuts off everything between the read and write heads
+h-copy 1 # t Combine h-read and h-write
+h-search 1 # u Search for matching template, set flow head & return info
+ # # if no template, move flow-head here, set size&offset=0.
+mov-head 1 # v Move ?IP? head to flow control.
+jmp-head 1 # w Move ?IP? head by fixed amount in CX. Set old pos in CX.
+get-head 1 # x Get position of specified head in CX.
+if-label 1 # y
+set-flow 1 # z Move flow-head to address in ?CX?
+
Added: development/tests/demes_classic_clique/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_classic_clique/expected/data/archive/100-aaaaa.org (rev 0)
+++ development/tests/demes_classic_clique/expected/data/archive/100-aaaaa.org 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,134 @@
+# Thu Apr 26 22:14:51 2007
+# Filename........: archive/100-aaaaa.org
+# Update Output...: 100
+# Is Viable.......: 1
+# Repro Cycle Size: 0
+# Depth to Viable.: 0
+# Update Created..: -1
+# Genotype ID.....: 1
+# Parent Gen ID...: -1
+# Tree Depth......: 0
+# Parent Distance.: -1
+#
+# Generation: 0
+# Merit...........: 97.000000
+# Gestation Time..: 389
+# Fitness.........: 0.249357
+# Errors..........: 0
+# Genome Size.....: 100
+# Copied Size.....: 100
+# Executed Size...: 97
+# Offspring.......: SELF
+#
+# Tasks Performed:
+# not 0 (0.000000)
+# nand 0 (0.000000)
+# and 0 (0.000000)
+# orn 0 (0.000000)
+# or 0 (0.000000)
+# andn 0 (0.000000)
+# nor 0 (0.000000)
+# xor 0 (0.000000)
+# equ 0 (0.000000)
+
+
+h-alloc
+h-search
+nop-C
+nop-A
+mov-head
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+h-search
+h-copy
+if-label
+nop-C
+nop-A
+h-divide
+mov-head
+nop-A
+nop-B
Added: development/tests/demes_classic_clique/expected/data/average.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/average.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/average.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Thu Apr 26 22:14:51 2007
+# 1: Update
+# 2: Merit
+# 3: Gestation Time
+# 4: Fitness
+# 5: Repro Rate?
+# 6: Size
+# 7: Copied Size
+# 8: Executed Size
+# 9: Abundance
+# 10: Proportion of organisms that gave birth in this update
+# 11: Proportion of Breed True Organisms
+# 12: Genotype Depth
+# 13: Generation
+# 14: Neutral Metric
+# 15: Lineage Label
+# 16: True Replication Rate (based on births/update, time-averaged)
+
+0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+20 97 389 0.249357 0 100 100 97 0 0 0 0 1 -2.13704 0 0
+30 97 389 0.249357 0 100 100 97 2 0 0 0.25 2 -1.87486 0 0
+40 97 388.75 0.249518 0 100 100 97 2.66667 0.125 0.125 0.375 3 -2.48993 0 0
+50 97 388.75 0.249518 0 100 100 97 2.66667 0 0 0.375 3 -2.48993 0 0
+60 97 388.8 0.249486 0 100.067 100 97 2.14286 0 0 0.533333 3.93333 -2.17444 0 0
+70 96.3571 388.107 0.248236 0 100.071 100.036 96.3571 2.15385 0 0 0.678571 4.89286 -1.72687 0 0
+80 94.4694 383.959 0.245207 0 99.9796 99 94.4694 1.88462 0.0204082 0 0.857143 5.79592 -1.77146 0 0
+90 94.7627 384.678 0.245639 0 100.017 99.2034 94.7627 1.96667 0.0847458 0.0508475 0.864407 6.11864 -1.79841 0 0
+100 95.2737 385.537 0.246663 0 100.053 99.5158 95.2737 1.93878 0 0 1.07368 6.83158 -1.29329 0 0
Added: development/tests/demes_classic_clique/expected/data/count.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/count.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/count.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida count data
+# Thu Apr 26 22:14:51 2007
+# 1: update
+# 2: number of insts executed this update
+# 3: number of organisms
+# 4: number of different genotypes
+# 5: number of different threshold genotypes
+# 6: number of different species
+# 7: number of different threshold species
+# 8: number of different lineages
+# 9: number of births in this update
+# 10: number of deaths in this update
+# 11: number of breed true
+# 12: number of breed true organisms?
+# 13: number of no-birth organisms
+# 14: number of single-threaded organisms
+# 15: number of multi-threaded organisms
+# 16: number of modified organisms
+
+0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0
+10 30 1 1 1 0 0 0 0 0 0 1 1 1 0 0
+20 60 2 1 1 0 0 0 0 0 0 2 1 2 0 0
+30 120 4 2 1 0 0 0 0 0 0 3 2 4 0 0
+40 210 8 3 1 0 0 0 1 0 1 6 4 8 0 0
+50 240 8 3 1 0 0 0 0 0 0 6 4 8 0 0
+60 450 15 7 1 0 0 0 0 0 0 9 8 15 0 0
+70 840 28 13 2 0 0 0 0 0 0 16 15 28 0 0
+80 1440 49 26 2 0 0 0 1 0 0 24 27 49 0 0
+90 1620 59 30 2 0 0 0 5 0 3 30 32 59 0 0
+100 2850 95 49 6 0 0 0 0 0 0 47 51 95 0 0
Added: development/tests/demes_classic_clique/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_classic_clique/expected/data/detail-100.pop (rev 0)
+++ development/tests/demes_classic_clique/expected/data/detail-100.pop 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,66 @@
+#filetype genotype_data
+#format id parent_id parent_dist num_cpus total_cpus length merit gest_time fitness update_born update_dead depth sequence
+
+# 1: ID
+# 2: parent ID
+# 3: parent distance
+# 4: number of orgranisms currently alive
+# 5: total number of organisms that ever existed
+# 6: length of genome
+# 7: merit
+# 8: gestation time
+# 9: fitness
+# 10: update born
+# 11: update deactivated
+# 12: depth in phylogentic tree
+# 13: genome of organism
+
+1 -1 -1 21 21 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+2 1 1 11 11 100 97 388 0.25 26 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvab
+10 1 1 3 3 100 97 388 0.25 65 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccicccutycasvab
+6 1 2 3 3 101 98 392 0.25 53 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccczcccccccccccccccccacccccccccccutycasvab
+13 6 1 3 3 101 98 392 0.25 68 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccczcccccccccccccccccaccccccccsccutycasvab
+5 1 2 3 3 100 87 377 0.230769 52 -1 1 rucavcccccccccccccccccccccccccycccccccccccccccccccccccccccccmccccccccccccccccccccccccccccccutycasvab
+11 1 1 2 2 100 97 389 0.249357 66 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccacccccccccccccccccccccccutycasvab
+18 1 1 2 2 100 0 0 0 78 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccutycasvab
+20 7 1 2 2 100 0 0 0 79 -1 2 rucavccccccccccccccccccecccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+7 1 1 2 2 100 97 388 0.25 53 -1 1 rucavccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+19 2 2 2 2 99 0 0 0 78 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccxcccfcccccccutycasvab
+24 1 1 2 2 100 0 0 0 79 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccmccccccccccutycasvab
+25 1 3 2 2 99 0 0 0 79 -1 1 rucavccccccccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccccccccccccccccccccclutycasvab
+27 5 1 2 2 100 0 0 0 81 -1 2 rucavcccccccccccccccccccccccccycccccccccccccccccccccccccccccmcccccccccccccpccccccccccccccccutycasvab
+3 2 1 1 1 100 0 0 0 38 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasgab
+4 1 1 1 1 100 0 0 0 52 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccyccutycasvab
+8 1 2 1 1 100 0 0 0 64 -1 1 rucavucccccccccccccccccccccccccccccccccccccccccccccccccccccccccckccccccccccccccccccccccccccutycasvab
+9 1 1 1 1 100 0 0 0 64 -1 1 rumavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+12 7 1 1 1 100 0 0 0 66 -1 2 rucavccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycssvab
+14 1 1 1 1 100 0 0 0 76 -1 1 rucbvccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+15 12 26 1 1 100 0 0 0 77 -1 3 cccccccccccccccccccccccccccccccccccccccccutycssvabrucavccccccccccccccccccecccccccccccccccccccccccccc
+16 1 1 1 1 100 0 0 0 78 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccjccccccccccccccccccccccccccccccccccccccccccccutycasvab
+17 1 2 1 1 100 0 0 0 78 -1 1 rucavcccccccccccccccccccccccccccccuccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycaxvab
+21 1 1 1 1 100 0 0 0 79 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccccccutycasvab
+22 1 1 1 1 99 0 0 0 79 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+23 1 1 1 1 100 0 0 0 79 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccvcutycasvab
+26 5 4 1 1 100 0 0 0 80 -1 2 rucavccccccccccccccccccnccccccycccccacccccccccccccccccccccccmcccccccccccccccdccccccccccccccutycasgab
+28 1 1 1 1 100 0 0 0 88 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccicccccccccccccccccccutycasvab
+29 1 1 1 1 100 0 0 0 90 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccccccccccccutycasvab
+30 1 1 1 1 100 0 0 0 90 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccrccccccccccccccccccccccccutycasvab
+31 2 1 1 1 101 0 0 0 91 -1 2 rucavccccccccccccccccccnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvab
+32 1 3 1 1 100 0 0 0 91 -1 1 rucavcccccoccccccccccccccccccncccccccccccccccccwcccccccccccccccccccccccccccccccccccccccccccutycasvab
+33 23 1 1 1 100 0 0 0 91 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccvcunycasvab
+34 1 3 1 1 100 0 0 0 91 -1 1 rucavccccccccccchccccccccccccccccccccccccccccccccccccccccccccjcccccccccccccccncccccccccccccutycasvab
+35 1 1 1 1 100 0 0 0 91 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccccccccccccutycasvab
+36 16 1 1 1 100 0 0 0 91 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccjccccccccccccccccccccccccccccccccccycccccccccutycasvab
+37 11 1 1 1 100 0 0 0 91 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccacccccccccccccccccccccccutycasvab
+38 10 1 1 1 100 0 0 0 91 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccicccutycasvab
+39 21 1 1 1 100 0 0 0 91 -1 2 rucavccccccccfcccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccccccutycasvab
+40 1 3 1 1 101 0 0 0 91 -1 1 rucavcccycccccccccucccccccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccccccccutycasvab
+41 2 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccclccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvab
+42 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccclccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+43 11 2 1 1 101 0 0 0 92 -1 2 rucavcccccmcccccccccccccccccccccccccccccccccccclccccccccccccccccccccacccccccccccccccccccccccutycasvab
+44 2 2 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccgcjcutycasvab
+45 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccxccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+46 22 1 1 1 99 0 0 0 93 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccctcccccccccutycasvab
+47 13 1 1 1 101 0 0 0 94 -1 3 rucavccccccccccccccccccccccccccccccccccccccccccjcccccccccccccczcccccccccccccccccaccccccccsccutycasvab
+48 6 2 1 1 101 0 0 0 94 -1 2 rucavccccccccccccccccccccccccccccccrcccccccccccccccccccccccgcczcccccccccccccccccacccccccccccutycasvab
+49 5 1 1 1 100 0 0 0 94 -1 2 rucavcccccccccccccccccccccccccycccccccccccccccccccccccccccccmccccccccccccccccccccccccccceccutycasvab
Added: development/tests/demes_classic_clique/expected/data/dominant.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/dominant.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/dominant.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Thu Apr 26 22:14:51 2007
+# 1: Update
+# 2: Average Merit of the Dominant Genotype
+# 3: Average Gestation Time of the Dominant Genotype
+# 4: Average Fitness of the Dominant Genotype
+# 5: Repro Rate?
+# 6: Size of Dominant Genotype
+# 7: Copied Size of Dominant Genotype
+# 8: Executed Size of Dominant Genotype
+# 9: Abundance of Dominant Genotype
+# 10: Number of Births
+# 11: Number of Dominant Breed True?
+# 12: Dominant Gene Depth
+# 13: Dominant Breed In
+# 14: Max Fitness?
+# 15: Genotype ID of Dominant Genotype
+# 16: Name of the Dominant Genotype
+
+0 0.000000 0.000000 0.000000 0.000000 100 0.000000 0.000000 1 0 0 0 0 0.000000 1 100-aaaaa
+10 0 0 0 0 100 0 0 1 0 0 0 0 0 1 100-aaaaa
+20 0 0 0 0 100 0 0 2 0 0 0 0 0.249357 1 100-aaaaa
+30 97 389 0.249357 0.00257069 100 100 97 3 0 0 0 0 0.249357 1 100-aaaaa
+40 97 389 0.249357 0.00257069 100 100 97 6 1 1 0 0 0.25 1 100-aaaaa
+50 97 389 0.249357 0.00257069 100 100 97 6 0 0 0 0 0.25 1 100-aaaaa
+60 97 389 0.249357 0.00257069 100 100 97 8 0 0 0 0 0.25 1 100-aaaaa
+70 97 389 0.249357 0.00257069 100 100 97 12 0 0 0 0 0.25 1 100-aaaaa
+80 97 389 0.249357 0.00257069 100 100 97 15 0 0 0 0 0.25 1 100-aaaaa
+90 97 389 0.249357 0.00257069 100 100 97 18 4 2 0 0 0.25 1 100-aaaaa
+100 97 389 0.249357 0.00257069 100 100 97 21 0 0 0 0 0.250653 1 100-aaaaa
Added: development/tests/demes_classic_clique/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_classic_clique/expected/data/historic-100.pop (rev 0)
+++ development/tests/demes_classic_clique/expected/data/historic-100.pop 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,17 @@
+#filetype genotype_data
+#format id parent_id parent_dist num_cpus total_cpus length merit gest_time fitness update_born update_dead depth sequence
+
+# 1: ID
+# 2: parent ID
+# 3: parent distance
+# 4: number of orgranisms currently alive
+# 5: total number of organisms that ever existed
+# 6: length of genome
+# 7: merit
+# 8: gestation time
+# 9: fitness
+# 10: update born
+# 11: update deactivated
+# 12: depth in phylogentic tree
+# 13: genome of organism
+
Added: development/tests/demes_classic_clique/expected/data/resource.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/resource.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/resource.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Thu Apr 26 22:14:51 2007
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+# 1: Update
+
+0
+10
+20
+30
+40
+50
+60
+70
+80
+90
+100
Added: development/tests/demes_classic_clique/expected/data/stats.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/stats.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/stats.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Thu Apr 26 22:14:51 2007
+# 1: update
+# 2: average inferiority (energy)
+# 3: ave probability of any mutations in genome
+# 4: probability of any mutations in dom genome
+# 5: log(average fidelity)
+# 6: log(dominant fidelity)
+# 7: change in number of genotypes
+# 8: genotypic entropy
+# 9: species entropy
+# 10: depth of most reacent coalescence
+# 11: Total number of resamplings this generation
+# 12: Total number of organisms that failed to resample this generation
+
+0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0
+10 0 0.0975 0.562358 0.102587 0.826353 0 0 0 0 0 0
+20 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0
+30 0 0.562358 0.562358 0.826353 0.826353 0 0.562335 0 0 0 0
+40 -0.000644122 0.562358 0.562358 0.826353 0.826353 0 0.735622 0 0 0 0
+50 -0.000644122 0.562358 0.562358 0.826353 0.826353 0 0.735622 0 0 0 0
+60 -0.000515331 0.562569 0.562358 0.826836 0.826353 0 1.5066 0 0 0 0
+70 0.00450629 0.562584 0.562358 0.82687 0.826353 0 2.01969 0 0 0 0
+80 0.0167849 0.562293 0.562358 0.826206 0.826353 1 2.69996 0 0 0 0
+90 0.0150247 0.562411 0.562358 0.826476 0.826353 2 2.82388 0 0 0 0
+100 0.0108628 0.562524 0.562358 0.826734 0.826353 0 3.34771 0 0 0 0
Added: development/tests/demes_classic_clique/expected/data/tasks.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/tasks.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/tasks.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Thu Apr 26 22:14:51 2007
+# First column gives the current update, next columns give the number
+# of organisms that have the particular task as a component of their merit
+# 1: Update
+# 2: Not
+# 3: Nand
+# 4: And
+# 5: OrNot
+# 6: Or
+# 7: AndNot
+# 8: Nor
+# 9: Xor
+# 10: Equals
+
+0 0 0 0 0 0 0 0 0 0
+10 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_clique/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/tasks_exe.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/tasks_exe.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Thu Apr 26 22:14:51 2007
+# First column gives the current update, all further columns give the number
+# of times the particular task has been executed this update.
+# 1: Update
+# 2: Not
+# 3: Nand
+# 4: And
+# 5: OrNot
+# 6: Or
+# 7: AndNot
+# 8: Nor
+# 9: Xor
+# 10: Equals
+
+0 0 0 0 0 0 0 0 0 0
+10 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_clique/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/tasks_quality.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Thu Apr 26 22:14:51 2007
+# First column gives the current update, rest give average and max task quality
+# 1: Update
+# 2: Not Average
+# 3: Not Max
+# 4: Nand Average
+# 5: Nand Max
+# 6: And Average
+# 7: And Max
+# 8: OrNot Average
+# 9: OrNot Max
+# 10: Or Average
+# 11: Or Max
+# 12: AndNot Average
+# 13: AndNot Max
+# 14: Nor Average
+# 15: Nor Max
+# 16: Xor Average
+# 17: Xor Max
+# 18: Equals Average
+# 19: Equals Max
+
+0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_clique/expected/data/time.dat
===================================================================
--- development/tests/demes_classic_clique/expected/data/time.dat (rev 0)
+++ development/tests/demes_classic_clique/expected/data/time.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,18 @@
+# Avida time data
+# Thu Apr 26 22:14:51 2007
+# 1: update
+# 2: avida time
+# 3: average generation
+# 4: num_executed?
+
+0 0.000000 0.000000 30
+10 0 0 30
+20 0.0824742 1 60
+30 0.185567 2 120
+40 0.28866 3 210
+50 0.391753 3 240
+60 0.494845 3.93333 450
+70 0.598234 4.89286 840
+80 0.702787 5.79592 1440
+90 0.808641 6.11864 1620
+100 0.913615 6.83158 2850
Added: development/tests/demes_classic_clique/test_list
===================================================================
--- development/tests/demes_classic_clique/test_list (rev 0)
+++ development/tests/demes_classic_clique/test_list 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,35 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+args = -s 100 ; Command line arguments to pass to the application
+app = %(app)s ; Application path to test
+nonzeroexit = disallow ; Exit code handling (disallow, allow, or require)
+ ; disallow - treat non-zero exit codes as failures
+ ; allow - all exit codes are acceptable
+ ; require - treat zero exit codes as failures, useful
+ ; for creating tests for app error checking
+createdby = Dave Knoester ; Who created the test
+email = dk at cse.msu.edu ; Email address for the test's creator
+
+[consistency]
+enabled = yes ; Is this test a consistency test?
+long = no ; Is this test a long test?
+
+[performance]
+enabled = no ; Is this test a performance test?
+long = no ; Is this test a long test?
+
+; The following variables can be used in constructing setting values by calling
+; them with %(variable_name)s. For example see 'app' above.
+;
+; app
+; builddir
+; cpus
+; mode
+; perf_repeat
+; perf_user_margin
+; perf_wall_margin
+; svn
+; svnmetadir
+; svnversion
+; testdir
+;--- End Test Configuration File ---
Added: development/tests/demes_classic_grid/config/avida.cfg
===================================================================
--- development/tests/demes_classic_grid/config/avida.cfg (rev 0)
+++ development/tests/demes_classic_grid/config/avida.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,217 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.7.0 # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0 # 0 = Disabled
+ # 1 = Enabled
+ # 2 = Interactive
+VIEW_MODE 1 # Initial viewer screen
+CLONE_FILE - # Clone file to load
+VERBOSITY 1 # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 10 # Width of the Avida world
+WORLD_Y 1000 # Height of the Avida world
+WORLD_GEOMETRY 1 # 1 = Bounded Grid
+ # 2 = Torus
+ # 3 = Clique
+NUM_DEMES 100 # Number of independed groups in the population; 0=off
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data # Directory in which config files are found
+INST_SET - # File containing instruction set
+EVENT_FILE events.cfg # File containing list of events during run
+ANALYZE_FILE analyze.cfg # File used for analysis mode
+ENVIRONMENT_FILE environment.cfg # File that describes the environment
+START_CREATURE default-classic.org # Organism to seed the soup
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 0 # Which organism should be replaced on birth?
+ # 0 = Random organism in neighborhood
+ # 1 = Oldest in neighborhood
+ # 2 = Largest Age/Merit in neighborhood
+ # 3 = None (use only empty cells in neighborhood)
+ # 4 = Random from population (Mass Action)
+ # 5 = Oldest in entire population
+ # 6 = Random within deme
+ # 7 = Organism faced by parent
+ # 8 = Next grid cell (id+1)
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
+DEATH_METHOD 2 # 0 = Never die of old age.
+ # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+ # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20 # Modifies DEATH_METHOD
+AGE_DEVIATION 0 # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0 # (Orignal CPU Only)
+ # 0 = Allocated space is set to default instruction.
+ # 1 = Set to section of dead genome (Necrophilia)
+ # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1 # 0 = Divide leaves state of mother untouched.
+ # 1 = Divide resets state of mother
+ # (after the divide, we have 2 children)
+ # 2 = Divide resets state of current thread only
+ # (does not touch possible parasite threads)
+GENERATION_INC_METHOD 1 # 0 = Only the generation of the child is
+ # increased on divide.
+ # 1 = Both the generation of the mother and child are
+ # increased on divide (good with DIVIDE_METHOD 1).
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0 # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1 # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0 # number of modules in the genome
+CONT_REC_REGS 1 # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1 # are (modular) recombination regions swapped randomly
+ # or with corresponding positions?
+TWO_FOLD_COST_SEX 0 # 1 = only one recombined offspring is born.
+ # 2 = both offspring are born
+SAME_LENGTH_SEX 0 # 0 = recombine with any genome
+ # 1 = only recombine w/ same length
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 2.0 # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.5 # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.5 # Code fraction which must be executed before divide.
+REQUIRE_ALLOCATE 1 # (Original CPU Only) Require allocate before divide?
+REQUIRED_TASK -1 # Task ID required for successful divide.
+IMMUNITY_TASK -1 # Task providing immunity from the required task.
+REQUIRED_REACTION -1 # Reaction ID required for successful divide.
+REQUIRED_BONUS 0 # The bonus that an organism must accumulate to divide.
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0 # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0075 # Mutation rate (per copy)
+INS_MUT_PROB 0.0 # Insertion rate (per site, applied on divide)
+DEL_MUT_PROB 0.0 # Deletion rate (per site, applied on divide)
+DIV_MUT_PROB 0.0 # Mutation rate (per site, applied on divide)
+DIVIDE_MUT_PROB 0.0 # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.05 # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.05 # Deletion rate (per divide)
+PARENT_MUT_PROB 0.0 # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1 # If this is >= 0, ONLY this line is mutated
+INJECT_INS_PROB 0.0 # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0 # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0 # Mutation rate (per site, applied on inject)
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0 # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0 # 0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0 #
+REVERT_BENEFICIAL 0.0 #
+STERILIZE_FATAL 0.0 # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0 #
+STERILIZE_NEUTRAL 0.0 #
+STERILIZE_BENEFICIAL 0.0 #
+FAIL_IMPLICIT 0 # Should copies that failed *not* due to mutations
+ # be eliminated?
+NEUTRAL_MAX 0.0 # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0 # The percent deleterious change from parent fitness to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30 # Ave number of insts per org per update
+SLICING_METHOD 1 # 0 = CONSTANT: all organisms get default...
+ # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+ # 2 = INTEGRATED: Perfectly integrated deterministic.
+BASE_MERIT_METHOD 4 # 0 = Constant (merit independent of size)
+ # 1 = Merit proportional to copied size
+ # 2 = Merit prop. to executed size
+ # 3 = Merit prop. to full size
+ # 4 = Merit prop. to min of executed or copied size
+ # 5 = Merit prop. to sqrt of the minimum size
+BASE_CONST_MERIT 100 # Base merit when BASE_MERIT_METHOD set to 0
+DEFAULT_BONUS 1.0 # Initial bonus before any tasks
+MERIT_DEFAULT_BONUS 0 # Scale the merit of an offspring by the default bonus
+ # rather than the accumulated bonus of the parent?
+MAX_CPU_THREADS 1 # Number of Threads a CPU can spawn
+THREAD_SLICING_METHOD 0 # Formula for and organism's thread slicing
+ # (num_threads-1) * THREAD_SLICING_METHOD + 1
+ # 0 = One thread executed per time slice.
+ # 1 = All threads executed each time slice.
+MAX_LABEL_EXE_SIZE 1 # Max nops marked as executed when labels are used
+DONATE_SIZE 5.0 # Amount of merit donated with 'donate' command
+DONATE_MULT 10.0 # Multiple of merit given that the target receives.
+MAX_DONATE_KIN_DIST -1 # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1 # Limit on edit distance for donate; -1=no max
+MAX_DONATES 1000000 # Limit on number of donates organisms are allowed.
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1 # Keep all ancestors of the active population?
+ # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3 # Number of organisms in a genotype needed for it
+ # to be considered viable.
+GENOTYPE_PRINT 0 # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0 # Print out a genotype if it stays dominant for
+ # this many updates. (0 = off)
+SPECIES_THRESHOLD 2 # max failure count for organisms to be same species
+SPECIES_RECORDING 0 # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0 # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20 # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0 # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0 # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0 # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0 # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are. Works only when LOG_LINEAGES is set to 1.
+# 0 = manual creation (on inject, use successive integers as lineage labels).
+# 1 = when a child's (potential) fitness is higher than that of its parent.
+# 2 = when a child's (potential) fitness is higher than max in population.
+# 3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+# 4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+# 5 = same as child's (potential) fitness is higher than that of the
+# currently dominant organism, and also than that of any organism
+# currently in the same lineage.
+# 6 = when a child's (potential) fitness is higher than any organism
+# currently in the same lineage.
+# 7 = when a child's (potential) fitness is higher than that of any
+# organism in its line of descent
+LOG_LINEAGES 0 #
+LINEAGE_CREATION_METHOD 0 #
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0 # Enable Network Communication Support
+NET_DROP_PROB 0.0 # Message drop rate
+NET_MUT_PROB 0.0 # Message corruption probability
+NET_MUT_TYPE 0 # Type of message corruption. 0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0 # Communication Style. 0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0 # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0 # price offered by organisms attempting to buy
+SELL_PRICE 0 # price offered by organisms attempting to sell
+
+### ANALYZE_GROUP ###
+# Analysis Settings
+MT_CONCURRENCY 1 # Number of concurrent analyze threads
+ANALYZE_OPTION_1 # String variable accessible from analysis scripts
+ANALYZE_OPTION_2 # String variable accessible from analysis scripts
Added: development/tests/demes_classic_grid/config/default-classic.org
===================================================================
--- development/tests/demes_classic_grid/config/default-classic.org (rev 0)
+++ development/tests/demes_classic_grid/config/default-classic.org 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,100 @@
+h-alloc # Allocate space for child
+h-search # Locate the end of the organism
+nop-C #
+nop-A #
+mov-head # Place write-head at beginning of offspring.
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+h-divide # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
Added: development/tests/demes_classic_grid/config/environment.cfg
===================================================================
--- development/tests/demes_classic_grid/config/environment.cfg (rev 0)
+++ development/tests/demes_classic_grid/config/environment.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,9 @@
+REACTION NOT not process:value=1.0:type=pow requisite:max_count=1
+REACTION NAND nand process:value=1.0:type=pow requisite:max_count=1
+REACTION AND and process:value=2.0:type=pow requisite:max_count=1
+REACTION ORN orn process:value=2.0:type=pow requisite:max_count=1
+REACTION OR or process:value=3.0:type=pow requisite:max_count=1
+REACTION ANDN andn process:value=3.0:type=pow requisite:max_count=1
+REACTION NOR nor process:value=4.0:type=pow requisite:max_count=1
+REACTION XOR xor process:value=4.0:type=pow requisite:max_count=1
+REACTION EQU equ process:value=5.0:type=pow requisite:max_count=1
Added: development/tests/demes_classic_grid/config/events.cfg
===================================================================
--- development/tests/demes_classic_grid/config/events.cfg (rev 0)
+++ development/tests/demes_classic_grid/config/events.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,16 @@
+# Print all of the standard data files...
+u 0:10:end PrintAverageData # Save info about they average genotypes
+u 0:10:end PrintDominantData # Save info about most abundant genotypes
+u 0:10:end PrintStatsData # Collect satistics about entire pop.
+u 0:10:end PrintCountData # Count organisms, genotypes, species, etc.
+u 0:10:end PrintTasksData # Save organisms counts for each task.
+u 0:10:end PrintTimeData # Track time conversion (generations, etc.)
+u 0:10:end PrintResourceData # Track resource abundance.
+u 0:10:end PrintDominantGenotype # Save the most abundant genotypes
+u 0:10:end PrintTasksExeData # Num. times tasks have been executed.
+u 0:10:end PrintTasksQualData # Task quality information
+
+# Setup the exit time and full population data collection.
+u 100 SavePopulation # Save current state of population.
+u 100 SaveHistoricPopulation # Save ancestors of current population.
+u 100 exit # exit
Added: development/tests/demes_classic_grid/config/instset-classic.cfg
===================================================================
--- development/tests/demes_classic_grid/config/instset-classic.cfg (rev 0)
+++ development/tests/demes_classic_grid/config/instset-classic.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,28 @@
+nop-A 1 # a
+nop-B 1 # b
+nop-C 1 # c
+if-n-equ 1 # d
+if-less 1 # e
+pop 1 # f
+push 1 # g
+swap-stk 1 # h
+swap 1 # i
+shift-r 1 # j
+shift-l 1 # k
+inc 1 # l
+dec 1 # m
+add 1 # n
+sub 1 # o
+nand 1 # p
+IO 1 # q Puts current contents of register and gets new.
+h-alloc 1 # r Allocate as much memory as organism can use.
+h-divide 1 # s Cuts off everything between the read and write heads
+h-copy 1 # t Combine h-read and h-write
+h-search 1 # u Search for matching template, set flow head & return info
+ # # if no template, move flow-head here, set size&offset=0.
+mov-head 1 # v Move ?IP? head to flow control.
+jmp-head 1 # w Move ?IP? head by fixed amount in CX. Set old pos in CX.
+get-head 1 # x Get position of specified head in CX.
+if-label 1 # y
+set-flow 1 # z Move flow-head to address in ?CX?
+
Added: development/tests/demes_classic_grid/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_classic_grid/expected/data/archive/100-aaaaa.org (rev 0)
+++ development/tests/demes_classic_grid/expected/data/archive/100-aaaaa.org 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,134 @@
+# Thu Apr 26 22:11:39 2007
+# Filename........: archive/100-aaaaa.org
+# Update Output...: 100
+# Is Viable.......: 1
+# Repro Cycle Size: 0
+# Depth to Viable.: 0
+# Update Created..: -1
+# Genotype ID.....: 1
+# Parent Gen ID...: -1
+# Tree Depth......: 0
+# Parent Distance.: -1
+#
+# Generation: 0
+# Merit...........: 97.000000
+# Gestation Time..: 389
+# Fitness.........: 0.249357
+# Errors..........: 0
+# Genome Size.....: 100
+# Copied Size.....: 100
+# Executed Size...: 97
+# Offspring.......: SELF
+#
+# Tasks Performed:
+# not 0 (0.000000)
+# nand 0 (0.000000)
+# and 0 (0.000000)
+# orn 0 (0.000000)
+# or 0 (0.000000)
+# andn 0 (0.000000)
+# nor 0 (0.000000)
+# xor 0 (0.000000)
+# equ 0 (0.000000)
+
+
+h-alloc
+h-search
+nop-C
+nop-A
+mov-head
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+h-search
+h-copy
+if-label
+nop-C
+nop-A
+h-divide
+mov-head
+nop-A
+nop-B
Added: development/tests/demes_classic_grid/expected/data/average.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/average.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/average.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Thu Apr 26 22:11:38 2007
+# 1: Update
+# 2: Merit
+# 3: Gestation Time
+# 4: Fitness
+# 5: Repro Rate?
+# 6: Size
+# 7: Copied Size
+# 8: Executed Size
+# 9: Abundance
+# 10: Proportion of organisms that gave birth in this update
+# 11: Proportion of Breed True Organisms
+# 12: Genotype Depth
+# 13: Generation
+# 14: Neutral Metric
+# 15: Lineage Label
+# 16: True Replication Rate (based on births/update, time-averaged)
+
+0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+20 97 389 0.249357 0 100 100 97 0 0 0 0 1 -2.13704 0 0
+30 97 389 0.249357 0 100 100 97 2 0 0 0.25 2 -1.87486 0 0
+40 97 388.75 0.249518 0 100 100 97 2.66667 0.125 0 0.375 3 -1.37465 0 0
+50 97 388.778 0.2495 0 100 100 97 2.25 0.111111 0 0.444444 3.22222 -1.04098 0 0
+60 97 388.583 0.249625 0 100.083 100 97 1.71429 0 0 0.75 4 -0.199284 0 0
+70 95.8125 387.188 0.247395 0 100.062 100.062 95.8125 1.45455 0 0 1 4.9375 -0.0818072 0 0
+80 95.2727 386.318 0.246533 0 100.091 100.091 95.2727 1.375 0.0909091 0 1.45455 5.90909 0.112005 0 0
+90 94.2917 385.458 0.244507 0 100.083 100.125 94.2917 1.2 0.208333 0 1.625 6.45833 0.487128 0 0
+100 93.6786 384.607 0.243446 0 100.143 100.143 93.6786 1.27273 0 0 1.78571 6.78571 0.955322 0 0
Added: development/tests/demes_classic_grid/expected/data/count.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/count.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/count.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida count data
+# Thu Apr 26 22:11:38 2007
+# 1: update
+# 2: number of insts executed this update
+# 3: number of organisms
+# 4: number of different genotypes
+# 5: number of different threshold genotypes
+# 6: number of different species
+# 7: number of different threshold species
+# 8: number of different lineages
+# 9: number of births in this update
+# 10: number of deaths in this update
+# 11: number of breed true
+# 12: number of breed true organisms?
+# 13: number of no-birth organisms
+# 14: number of single-threaded organisms
+# 15: number of multi-threaded organisms
+# 16: number of modified organisms
+
+0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0
+10 30 1 1 1 0 0 0 0 0 0 1 1 1 0 0
+20 60 2 1 1 0 0 0 0 0 0 2 1 2 0 0
+30 120 4 2 1 0 0 0 0 0 0 3 2 4 0 0
+40 210 8 3 1 0 0 0 1 0 0 6 4 8 0 0
+50 240 9 4 1 0 0 0 1 0 0 6 4 9 0 0
+60 360 12 7 2 0 0 0 0 0 0 6 6 12 0 0
+70 480 16 11 2 0 0 0 0 0 0 8 9 16 0 0
+80 660 22 16 3 0 0 0 2 2 0 8 12 22 0 0
+90 690 24 20 3 0 0 0 5 4 0 6 13 24 0 0
+100 840 28 22 3 0 0 0 0 0 0 8 15 28 0 0
Added: development/tests/demes_classic_grid/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_classic_grid/expected/data/detail-100.pop (rev 0)
+++ development/tests/demes_classic_grid/expected/data/detail-100.pop 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,39 @@
+#filetype genotype_data
+#format id parent_id parent_dist num_cpus total_cpus length merit gest_time fitness update_born update_dead depth sequence
+
+# 1: ID
+# 2: parent ID
+# 3: parent distance
+# 4: number of orgranisms currently alive
+# 5: total number of organisms that ever existed
+# 6: length of genome
+# 7: merit
+# 8: gestation time
+# 9: fitness
+# 10: update born
+# 11: update deactivated
+# 12: depth in phylogentic tree
+# 13: genome of organism
+
+1 -1 -1 3 9 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+7 1 2 3 3 100 87 377 0.230769 52 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccmccccccccccccccccccccccyccccccccccccccccutycasvab
+18 7 2 2 2 101 0 0 0 78 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccmcccccctccccccccccccccccycccaccccccccccccutycasvab
+10 3 1 2 2 100 97 388 0.25 66 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgcscccccccccccutycasvab
+3 1 1 1 3 100 97 388 0.25 40 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgcccccccccccccutycasvab
+8 2 1 1 2 101 98 391 0.250639 52 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccnccccccfcccccccutycasvab
+4 1 1 1 1 100 97 388 0.25 50 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccutycasvab
+6 1 1 1 1 100 0 0 0 51 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvaq
+14 4 1 1 1 100 0 0 0 76 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccuccccccccccccccccccccccutycasvab
+16 9 1 1 1 100 0 0 0 77 -1 3 rucavsccccccccccccccccccccccccccccccccccccccccccceccccccccckcccccccccccccccccccccccccccccccutycasvab
+19 8 1 1 1 101 0 0 0 78 -1 3 rbcavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccnccccccfcccccccutycasvab
+20 10 1 1 1 100 0 0 0 79 -1 3 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccjccccccccccccccccgcscccccccccccutycasvab
+21 2 1 1 1 99 0 0 0 79 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutyasvab
+25 14 1 1 1 100 0 0 0 89 -1 3 rucdvcccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccuccccccccccccccccccccccutycasvab
+27 4 2 1 1 100 0 0 0 90 -1 2 rucavcccccccfcccccccccccccccccccccccccccccccccccceccccccccccccccccccccccccccccoccccccccccccutycasvab
+29 8 1 1 1 101 0 0 0 90 -1 3 rucavccccccccccccccccccccccvcccccccccccccccccccccccccccccccccccccccccccccccccnccccccfcccccccutycasvab
+30 7 1 1 1 100 0 0 0 90 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccmccccccccccccccccccccvcyccccccccccccccccutycasvab
+31 7 2 1 1 100 0 0 0 91 -1 2 rucavcccccccccccccccccccccccccccccdcccccccccccccnccmccccccccccccccccccccccyccccccccccccccccutycasvab
+32 7 1 1 1 100 0 0 0 91 -1 2 rucavccccccccccccccccccccccccccccccccccpcccccccccccmccccccccccccccccccccccyccccccccccccccccutycasvab
+33 3 1 1 1 100 0 0 0 91 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgcccccccccucccutycasvab
+34 1 1 1 1 99 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+35 20 3 1 1 101 0 0 0 92 -1 4 rvucavccccccccxccccccccccccccccccccccccccccccccccccccccccccccjccccccccccccccccgcscccccccccccutyjasvab
Added: development/tests/demes_classic_grid/expected/data/dominant.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/dominant.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/dominant.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Thu Apr 26 22:11:38 2007
+# 1: Update
+# 2: Average Merit of the Dominant Genotype
+# 3: Average Gestation Time of the Dominant Genotype
+# 4: Average Fitness of the Dominant Genotype
+# 5: Repro Rate?
+# 6: Size of Dominant Genotype
+# 7: Copied Size of Dominant Genotype
+# 8: Executed Size of Dominant Genotype
+# 9: Abundance of Dominant Genotype
+# 10: Number of Births
+# 11: Number of Dominant Breed True?
+# 12: Dominant Gene Depth
+# 13: Dominant Breed In
+# 14: Max Fitness?
+# 15: Genotype ID of Dominant Genotype
+# 16: Name of the Dominant Genotype
+
+0 0.000000 0.000000 0.000000 0.000000 100 0.000000 0.000000 1 0 0 0 0 0.000000 1 100-aaaaa
+10 0 0 0 0 100 0 0 1 0 0 0 0 0 1 100-aaaaa
+20 0 0 0 0 100 0 0 2 0 0 0 0 0.249357 1 100-aaaaa
+30 97 389 0.249357 0.00257069 100 100 97 3 0 0 0 0 0.249357 1 100-aaaaa
+40 97 389 0.249357 0.00257069 100 100 97 5 1 0 0 0 0.25 1 100-aaaaa
+50 97 389 0.249357 0.00257069 100 100 97 5 1 0 0 0 0.25 1 100-aaaaa
+60 97 389 0.249357 0.00257069 100 100 97 4 0 0 0 0 0.25 1 100-aaaaa
+70 97 389 0.249357 0.00257069 100 100 97 5 0 0 0 0 0.250639 1 100-aaaaa
+80 97 389 0.249357 0.00257069 100 100 97 4 0 0 0 0 0.251295 1 100-aaaaa
+90 97 389 0.249357 0.00257069 100 100 97 3 1 0 0 0 0.250646 1 100-aaaaa
+100 97 389 0.249357 0.00257069 100 100 97 3 0 0 0 0 0.250646 1 100-aaaaa
Added: development/tests/demes_classic_grid/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_classic_grid/expected/data/historic-100.pop (rev 0)
+++ development/tests/demes_classic_grid/expected/data/historic-100.pop 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,19 @@
+#filetype genotype_data
+#format id parent_id parent_dist num_cpus total_cpus length merit gest_time fitness update_born update_dead depth sequence
+
+# 1: ID
+# 2: parent ID
+# 3: parent distance
+# 4: number of orgranisms currently alive
+# 5: total number of organisms that ever existed
+# 6: length of genome
+# 7: merit
+# 8: gestation time
+# 9: fitness
+# 10: update born
+# 11: update deactivated
+# 12: depth in phylogentic tree
+# 13: genome of organism
+
+2 1 1 0 3 100 97 388 0.25 26 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvab
+9 4 1 0 1 100 0 0 0 64 79 2 rucavcccccccccccccccccccccccccccccccccccccccccccceccccccccckcccccccccccccccccccccccccccccccutycasvab
Added: development/tests/demes_classic_grid/expected/data/resource.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/resource.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/resource.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Thu Apr 26 22:11:38 2007
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+# 1: Update
+
+0
+10
+20
+30
+40
+50
+60
+70
+80
+90
+100
Added: development/tests/demes_classic_grid/expected/data/stats.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/stats.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/stats.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Thu Apr 26 22:11:38 2007
+# 1: update
+# 2: average inferiority (energy)
+# 3: ave probability of any mutations in genome
+# 4: probability of any mutations in dom genome
+# 5: log(average fidelity)
+# 6: log(dominant fidelity)
+# 7: change in number of genotypes
+# 8: genotypic entropy
+# 9: species entropy
+# 10: depth of most reacent coalescence
+# 11: Total number of resamplings this generation
+# 12: Total number of organisms that failed to resample this generation
+
+0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0
+10 0 0.0975 0.562358 0.102587 0.826353 0 0 0 0 0 0
+20 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0
+30 0 0.562358 0.562358 0.826353 0.826353 0 0.562335 0 0 0 0
+40 -0.000644122 0.562358 0.562358 0.826353 0.826353 1 0.900256 0 0 0 0
+50 -0.000572574 0.562358 0.562358 0.826353 0.826353 1 1.14906 0 0 0 0
+60 -0.00107331 0.562622 0.562358 0.826956 0.826353 0 1.79176 0 0 0 0
+70 0.00790021 0.562556 0.562358 0.826806 0.826353 0 2.183 0 0 0 0
+80 0.0113892 0.562646 0.562358 0.827011 0.826353 0 2.62616 0 0 0 0
+90 0.0196439 0.562622 0.562358 0.826956 0.826353 3 2.9034 0 0 0 0
+100 0.0239937 0.56281 0.562358 0.827387 0.826353 0 2.99777 0 0 0 0
Added: development/tests/demes_classic_grid/expected/data/tasks.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/tasks.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/tasks.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Thu Apr 26 22:11:38 2007
+# First column gives the current update, next columns give the number
+# of organisms that have the particular task as a component of their merit
+# 1: Update
+# 2: Not
+# 3: Nand
+# 4: And
+# 5: OrNot
+# 6: Or
+# 7: AndNot
+# 8: Nor
+# 9: Xor
+# 10: Equals
+
+0 0 0 0 0 0 0 0 0 0
+10 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_grid/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/tasks_exe.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/tasks_exe.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Thu Apr 26 22:11:38 2007
+# First column gives the current update, all further columns give the number
+# of times the particular task has been executed this update.
+# 1: Update
+# 2: Not
+# 3: Nand
+# 4: And
+# 5: OrNot
+# 6: Or
+# 7: AndNot
+# 8: Nor
+# 9: Xor
+# 10: Equals
+
+0 0 0 0 0 0 0 0 0 0
+10 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_grid/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/tasks_quality.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Thu Apr 26 22:11:38 2007
+# First column gives the current update, rest give average and max task quality
+# 1: Update
+# 2: Not Average
+# 3: Not Max
+# 4: Nand Average
+# 5: Nand Max
+# 6: And Average
+# 7: And Max
+# 8: OrNot Average
+# 9: OrNot Max
+# 10: Or Average
+# 11: Or Max
+# 12: AndNot Average
+# 13: AndNot Max
+# 14: Nor Average
+# 15: Nor Max
+# 16: Xor Average
+# 17: Xor Max
+# 18: Equals Average
+# 19: Equals Max
+
+0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_grid/expected/data/time.dat
===================================================================
--- development/tests/demes_classic_grid/expected/data/time.dat (rev 0)
+++ development/tests/demes_classic_grid/expected/data/time.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,18 @@
+# Avida time data
+# Thu Apr 26 22:11:38 2007
+# 1: update
+# 2: avida time
+# 3: average generation
+# 4: num_executed?
+
+0 0.000000 0.000000 30
+10 0 0 30
+20 0.0824742 1 60
+30 0.185567 2 120
+40 0.28866 3 210
+50 0.391753 3.22222 240
+60 0.494845 4 360
+70 0.598707 4.9375 480
+80 0.703279 5.90909 660
+90 0.80832 6.45833 690
+100 0.914992 6.78571 840
Added: development/tests/demes_classic_grid/test_list
===================================================================
--- development/tests/demes_classic_grid/test_list (rev 0)
+++ development/tests/demes_classic_grid/test_list 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,35 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+args = -s 100 ; Command line arguments to pass to the application
+app = %(app)s ; Application path to test
+nonzeroexit = disallow ; Exit code handling (disallow, allow, or require)
+ ; disallow - treat non-zero exit codes as failures
+ ; allow - all exit codes are acceptable
+ ; require - treat zero exit codes as failures, useful
+ ; for creating tests for app error checking
+createdby = Dave Knoester ; Who created the test
+email = dk at cse.msu.edu ; Email address for the test's creator
+
+[consistency]
+enabled = yes ; Is this test a consistency test?
+long = no ; Is this test a long test?
+
+[performance]
+enabled = no ; Is this test a performance test?
+long = no ; Is this test a long test?
+
+; The following variables can be used in constructing setting values by calling
+; them with %(variable_name)s. For example see 'app' above.
+;
+; app
+; builddir
+; cpus
+; mode
+; perf_repeat
+; perf_user_margin
+; perf_wall_margin
+; svn
+; svnmetadir
+; svnversion
+; testdir
+;--- End Test Configuration File ---
Added: development/tests/demes_classic_torus/config/avida.cfg
===================================================================
--- development/tests/demes_classic_torus/config/avida.cfg (rev 0)
+++ development/tests/demes_classic_torus/config/avida.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,217 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.7.0 # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0 # 0 = Disabled
+ # 1 = Enabled
+ # 2 = Interactive
+VIEW_MODE 1 # Initial viewer screen
+CLONE_FILE - # Clone file to load
+VERBOSITY 1 # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 10 # Width of the Avida world
+WORLD_Y 1000 # Height of the Avida world
+WORLD_GEOMETRY 2 # 1 = Bounded Grid
+ # 2 = Torus
+ # 3 = Clique
+NUM_DEMES 100 # Number of independed groups in the population; 0=off
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data # Directory in which config files are found
+INST_SET - # File containing instruction set
+EVENT_FILE events.cfg # File containing list of events during run
+ANALYZE_FILE analyze.cfg # File used for analysis mode
+ENVIRONMENT_FILE environment.cfg # File that describes the environment
+START_CREATURE default-classic.org # Organism to seed the soup
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 0 # Which organism should be replaced on birth?
+ # 0 = Random organism in neighborhood
+ # 1 = Oldest in neighborhood
+ # 2 = Largest Age/Merit in neighborhood
+ # 3 = None (use only empty cells in neighborhood)
+ # 4 = Random from population (Mass Action)
+ # 5 = Oldest in entire population
+ # 6 = Random within deme
+ # 7 = Organism faced by parent
+ # 8 = Next grid cell (id+1)
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
+DEATH_METHOD 2 # 0 = Never die of old age.
+ # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+ # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20 # Modifies DEATH_METHOD
+AGE_DEVIATION 0 # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0 # (Orignal CPU Only)
+ # 0 = Allocated space is set to default instruction.
+ # 1 = Set to section of dead genome (Necrophilia)
+ # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1 # 0 = Divide leaves state of mother untouched.
+ # 1 = Divide resets state of mother
+ # (after the divide, we have 2 children)
+ # 2 = Divide resets state of current thread only
+ # (does not touch possible parasite threads)
+GENERATION_INC_METHOD 1 # 0 = Only the generation of the child is
+ # increased on divide.
+ # 1 = Both the generation of the mother and child are
+ # increased on divide (good with DIVIDE_METHOD 1).
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0 # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1 # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0 # number of modules in the genome
+CONT_REC_REGS 1 # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1 # are (modular) recombination regions swapped randomly
+ # or with corresponding positions?
+TWO_FOLD_COST_SEX 0 # 1 = only one recombined offspring is born.
+ # 2 = both offspring are born
+SAME_LENGTH_SEX 0 # 0 = recombine with any genome
+ # 1 = only recombine w/ same length
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 2.0 # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.5 # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.5 # Code fraction which must be executed before divide.
+REQUIRE_ALLOCATE 1 # (Original CPU Only) Require allocate before divide?
+REQUIRED_TASK -1 # Task ID required for successful divide.
+IMMUNITY_TASK -1 # Task providing immunity from the required task.
+REQUIRED_REACTION -1 # Reaction ID required for successful divide.
+REQUIRED_BONUS 0 # The bonus that an organism must accumulate to divide.
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0 # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0075 # Mutation rate (per copy)
+INS_MUT_PROB 0.0 # Insertion rate (per site, applied on divide)
+DEL_MUT_PROB 0.0 # Deletion rate (per site, applied on divide)
+DIV_MUT_PROB 0.0 # Mutation rate (per site, applied on divide)
+DIVIDE_MUT_PROB 0.0 # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.05 # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.05 # Deletion rate (per divide)
+PARENT_MUT_PROB 0.0 # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1 # If this is >= 0, ONLY this line is mutated
+INJECT_INS_PROB 0.0 # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0 # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0 # Mutation rate (per site, applied on inject)
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0 # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0 # 0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0 #
+REVERT_BENEFICIAL 0.0 #
+STERILIZE_FATAL 0.0 # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0 #
+STERILIZE_NEUTRAL 0.0 #
+STERILIZE_BENEFICIAL 0.0 #
+FAIL_IMPLICIT 0 # Should copies that failed *not* due to mutations
+ # be eliminated?
+NEUTRAL_MAX 0.0 # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0 # The percent deleterious change from parent fitness to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30 # Ave number of insts per org per update
+SLICING_METHOD 1 # 0 = CONSTANT: all organisms get default...
+ # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+ # 2 = INTEGRATED: Perfectly integrated deterministic.
+BASE_MERIT_METHOD 4 # 0 = Constant (merit independent of size)
+ # 1 = Merit proportional to copied size
+ # 2 = Merit prop. to executed size
+ # 3 = Merit prop. to full size
+ # 4 = Merit prop. to min of executed or copied size
+ # 5 = Merit prop. to sqrt of the minimum size
+BASE_CONST_MERIT 100 # Base merit when BASE_MERIT_METHOD set to 0
+DEFAULT_BONUS 1.0 # Initial bonus before any tasks
+MERIT_DEFAULT_BONUS 0 # Scale the merit of an offspring by the default bonus
+ # rather than the accumulated bonus of the parent?
+MAX_CPU_THREADS 1 # Number of Threads a CPU can spawn
+THREAD_SLICING_METHOD 0 # Formula for and organism's thread slicing
+ # (num_threads-1) * THREAD_SLICING_METHOD + 1
+ # 0 = One thread executed per time slice.
+ # 1 = All threads executed each time slice.
+MAX_LABEL_EXE_SIZE 1 # Max nops marked as executed when labels are used
+DONATE_SIZE 5.0 # Amount of merit donated with 'donate' command
+DONATE_MULT 10.0 # Multiple of merit given that the target receives.
+MAX_DONATE_KIN_DIST -1 # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1 # Limit on edit distance for donate; -1=no max
+MAX_DONATES 1000000 # Limit on number of donates organisms are allowed.
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1 # Keep all ancestors of the active population?
+ # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3 # Number of organisms in a genotype needed for it
+ # to be considered viable.
+GENOTYPE_PRINT 0 # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0 # Print out a genotype if it stays dominant for
+ # this many updates. (0 = off)
+SPECIES_THRESHOLD 2 # max failure count for organisms to be same species
+SPECIES_RECORDING 0 # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0 # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20 # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0 # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0 # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0 # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0 # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are. Works only when LOG_LINEAGES is set to 1.
+# 0 = manual creation (on inject, use successive integers as lineage labels).
+# 1 = when a child's (potential) fitness is higher than that of its parent.
+# 2 = when a child's (potential) fitness is higher than max in population.
+# 3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+# 4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+# 5 = same as child's (potential) fitness is higher than that of the
+# currently dominant organism, and also than that of any organism
+# currently in the same lineage.
+# 6 = when a child's (potential) fitness is higher than any organism
+# currently in the same lineage.
+# 7 = when a child's (potential) fitness is higher than that of any
+# organism in its line of descent
+LOG_LINEAGES 0 #
+LINEAGE_CREATION_METHOD 0 #
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0 # Enable Network Communication Support
+NET_DROP_PROB 0.0 # Message drop rate
+NET_MUT_PROB 0.0 # Message corruption probability
+NET_MUT_TYPE 0 # Type of message corruption. 0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0 # Communication Style. 0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0 # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0 # price offered by organisms attempting to buy
+SELL_PRICE 0 # price offered by organisms attempting to sell
+
+### ANALYZE_GROUP ###
+# Analysis Settings
+MT_CONCURRENCY 1 # Number of concurrent analyze threads
+ANALYZE_OPTION_1 # String variable accessible from analysis scripts
+ANALYZE_OPTION_2 # String variable accessible from analysis scripts
Added: development/tests/demes_classic_torus/config/default-classic.org
===================================================================
--- development/tests/demes_classic_torus/config/default-classic.org (rev 0)
+++ development/tests/demes_classic_torus/config/default-classic.org 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,100 @@
+h-alloc # Allocate space for child
+h-search # Locate the end of the organism
+nop-C #
+nop-A #
+mov-head # Place write-head at beginning of offspring.
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+h-divide # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
Added: development/tests/demes_classic_torus/config/environment.cfg
===================================================================
--- development/tests/demes_classic_torus/config/environment.cfg (rev 0)
+++ development/tests/demes_classic_torus/config/environment.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,9 @@
+REACTION NOT not process:value=1.0:type=pow requisite:max_count=1
+REACTION NAND nand process:value=1.0:type=pow requisite:max_count=1
+REACTION AND and process:value=2.0:type=pow requisite:max_count=1
+REACTION ORN orn process:value=2.0:type=pow requisite:max_count=1
+REACTION OR or process:value=3.0:type=pow requisite:max_count=1
+REACTION ANDN andn process:value=3.0:type=pow requisite:max_count=1
+REACTION NOR nor process:value=4.0:type=pow requisite:max_count=1
+REACTION XOR xor process:value=4.0:type=pow requisite:max_count=1
+REACTION EQU equ process:value=5.0:type=pow requisite:max_count=1
Added: development/tests/demes_classic_torus/config/events.cfg
===================================================================
--- development/tests/demes_classic_torus/config/events.cfg (rev 0)
+++ development/tests/demes_classic_torus/config/events.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,16 @@
+# Print all of the standard data files...
+u 0:10:end PrintAverageData # Save info about they average genotypes
+u 0:10:end PrintDominantData # Save info about most abundant genotypes
+u 0:10:end PrintStatsData # Collect satistics about entire pop.
+u 0:10:end PrintCountData # Count organisms, genotypes, species, etc.
+u 0:10:end PrintTasksData # Save organisms counts for each task.
+u 0:10:end PrintTimeData # Track time conversion (generations, etc.)
+u 0:10:end PrintResourceData # Track resource abundance.
+u 0:10:end PrintDominantGenotype # Save the most abundant genotypes
+u 0:10:end PrintTasksExeData # Num. times tasks have been executed.
+u 0:10:end PrintTasksQualData # Task quality information
+
+# Setup the exit time and full population data collection.
+u 100 SavePopulation # Save current state of population.
+u 100 SaveHistoricPopulation # Save ancestors of current population.
+u 100 exit # exit
Added: development/tests/demes_classic_torus/config/instset-classic.cfg
===================================================================
--- development/tests/demes_classic_torus/config/instset-classic.cfg (rev 0)
+++ development/tests/demes_classic_torus/config/instset-classic.cfg 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,28 @@
+nop-A 1 # a
+nop-B 1 # b
+nop-C 1 # c
+if-n-equ 1 # d
+if-less 1 # e
+pop 1 # f
+push 1 # g
+swap-stk 1 # h
+swap 1 # i
+shift-r 1 # j
+shift-l 1 # k
+inc 1 # l
+dec 1 # m
+add 1 # n
+sub 1 # o
+nand 1 # p
+IO 1 # q Puts current contents of register and gets new.
+h-alloc 1 # r Allocate as much memory as organism can use.
+h-divide 1 # s Cuts off everything between the read and write heads
+h-copy 1 # t Combine h-read and h-write
+h-search 1 # u Search for matching template, set flow head & return info
+ # # if no template, move flow-head here, set size&offset=0.
+mov-head 1 # v Move ?IP? head to flow control.
+jmp-head 1 # w Move ?IP? head by fixed amount in CX. Set old pos in CX.
+get-head 1 # x Get position of specified head in CX.
+if-label 1 # y
+set-flow 1 # z Move flow-head to address in ?CX?
+
Added: development/tests/demes_classic_torus/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_classic_torus/expected/data/archive/100-aaaaa.org (rev 0)
+++ development/tests/demes_classic_torus/expected/data/archive/100-aaaaa.org 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,134 @@
+# Thu Apr 26 22:13:14 2007
+# Filename........: archive/100-aaaaa.org
+# Update Output...: 100
+# Is Viable.......: 1
+# Repro Cycle Size: 0
+# Depth to Viable.: 0
+# Update Created..: -1
+# Genotype ID.....: 1
+# Parent Gen ID...: -1
+# Tree Depth......: 0
+# Parent Distance.: -1
+#
+# Generation: 0
+# Merit...........: 97.000000
+# Gestation Time..: 389
+# Fitness.........: 0.249357
+# Errors..........: 0
+# Genome Size.....: 100
+# Copied Size.....: 100
+# Executed Size...: 97
+# Offspring.......: SELF
+#
+# Tasks Performed:
+# not 0 (0.000000)
+# nand 0 (0.000000)
+# and 0 (0.000000)
+# orn 0 (0.000000)
+# or 0 (0.000000)
+# andn 0 (0.000000)
+# nor 0 (0.000000)
+# xor 0 (0.000000)
+# equ 0 (0.000000)
+
+
+h-alloc
+h-search
+nop-C
+nop-A
+mov-head
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+nop-C
+h-search
+h-copy
+if-label
+nop-C
+nop-A
+h-divide
+mov-head
+nop-A
+nop-B
Added: development/tests/demes_classic_torus/expected/data/average.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/average.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/average.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Thu Apr 26 22:13:13 2007
+# 1: Update
+# 2: Merit
+# 3: Gestation Time
+# 4: Fitness
+# 5: Repro Rate?
+# 6: Size
+# 7: Copied Size
+# 8: Executed Size
+# 9: Abundance
+# 10: Proportion of organisms that gave birth in this update
+# 11: Proportion of Breed True Organisms
+# 12: Genotype Depth
+# 13: Generation
+# 14: Neutral Metric
+# 15: Lineage Label
+# 16: True Replication Rate (based on births/update, time-averaged)
+
+0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+20 97 389 0.249357 0 100 100 97 0 0 0 0 1 -2.13704 0 0
+30 97 389 0.249357 0 100 100 97 2 0 0 0.25 2 -1.87486 0 0
+40 97 388.75 0.249518 0 100 100 97 2.66667 0.125 0.125 0.375 3 -0.855175 0 0
+50 97 388.778 0.2495 0 100 100 97 2.25 0.111111 0 0.444444 3.22222 0.105989 0 0
+60 97 388.733 0.249529 0 100 100 97 2.14286 0 0 0.6 3.93333 -0.476485 0 0
+70 95.5714 387.036 0.246867 0 100.036 100 95.5714 1.55556 0 0 0.964286 4.92857 -0.618666 0 0
+80 93.2979 384.489 0.242009 0 100.128 98.9574 93.2979 1.56667 0.0851064 0.0425532 1.2766 5.97872 -0.599194 0 0
+90 93.6441 384.831 0.242768 0 100.153 99.2034 93.6441 1.55263 0.169492 0.0508475 1.42373 6.54237 -0.650241 0 0
+100 94.9577 386.324 0.245491 0 100.169 100.099 94.9577 1.65116 0.028169 0.0140845 1.49296 7.02817 -0.601597 0 0
Added: development/tests/demes_classic_torus/expected/data/count.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/count.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/count.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida count data
+# Thu Apr 26 22:13:13 2007
+# 1: update
+# 2: number of insts executed this update
+# 3: number of organisms
+# 4: number of different genotypes
+# 5: number of different threshold genotypes
+# 6: number of different species
+# 7: number of different threshold species
+# 8: number of different lineages
+# 9: number of births in this update
+# 10: number of deaths in this update
+# 11: number of breed true
+# 12: number of breed true organisms?
+# 13: number of no-birth organisms
+# 14: number of single-threaded organisms
+# 15: number of multi-threaded organisms
+# 16: number of modified organisms
+
+0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0
+10 30 1 1 1 0 0 0 0 0 0 1 1 1 0 0
+20 60 2 1 1 0 0 0 0 0 0 2 1 2 0 0
+30 120 4 2 1 0 0 0 0 0 0 3 2 4 0 0
+40 210 8 3 1 0 0 0 1 0 1 6 4 8 0 0
+50 240 9 4 1 0 0 0 1 0 0 6 4 9 0 0
+60 450 15 7 2 0 0 0 0 0 0 9 8 15 0 0
+70 840 28 18 2 0 0 0 0 0 0 11 15 28 0 0
+80 1320 47 30 2 0 0 0 4 1 2 19 27 47 0 0
+90 1530 59 38 3 0 0 0 10 2 3 25 30 59 0 0
+100 2100 71 43 7 0 0 0 2 1 1 34 37 71 0 0
Added: development/tests/demes_classic_torus/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_classic_torus/expected/data/detail-100.pop (rev 0)
+++ development/tests/demes_classic_torus/expected/data/detail-100.pop 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,60 @@
+#filetype genotype_data
+#format id parent_id parent_dist num_cpus total_cpus length merit gest_time fitness update_born update_dead depth sequence
+
+# 1: ID
+# 2: parent ID
+# 3: parent distance
+# 4: number of orgranisms currently alive
+# 5: total number of organisms that ever existed
+# 6: length of genome
+# 7: merit
+# 8: gestation time
+# 9: fitness
+# 10: update born
+# 11: update deactivated
+# 12: depth in phylogentic tree
+# 13: genome of organism
+
+1 -1 -1 10 16 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+15 1 1 4 4 100 97 389 0.249357 66 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsutycasvab
+13 6 1 3 3 100 97 387 0.250646 65 -1 2 rucavccccccccccccccccccccccccccccccccccccccccckcccccccccccmccccccccccccccccccccccccccccccccutycasvab
+5 1 1 3 3 100 97 388 0.25 51 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccutycasvab
+18 2 1 3 3 101 98 391 0.250639 67 -1 2 rucavccccccccccccccccccccpccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvab
+9 1 1 2 3 100 97 388 0.25 63 -1 1 rucavcmccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+8 4 1 2 2 100 78 368 0.211957 62 -1 2 rucavcccccccccccuccccccccccccccccccccccccccccycccccccccccccccccccccccccccccccccccccccccccccutycasvab
+10 1 1 2 2 100 97 388 0.25 64 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccjcccccccccccccccccccccccccccccccccccccccccccutycasvab
+20 10 1 2 2 100 0 0 0 76 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccjccccccccccccccccccdccccccccccccccccccccccccutycasvab
+25 1 1 2 2 100 0 0 0 79 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpccccccutycasvab
+26 1 1 2 2 100 0 0 0 79 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpccccccccccccutycasvab
+17 2 1 2 2 100 97 388 0.25 66 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccccccfcccccccutycasvab
+24 17 3 2 2 101 0 0 0 79 -1 3 roucavcccccccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccscccccccccccfclcccccutycasvab
+31 16 2 2 2 100 0 0 0 80 -1 3 rucavcccccccccccccccccccccscccccccccccccccccccccccccccccaccccxcccccccccccyciccaccccccccccccutycasvab
+2 1 1 2 8 100 97 388 0.25 26 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvab
+7 1 2 1 1 100 87 378 0.230159 53 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccyccccaccccccccccccutycasvab
+11 5 1 1 1 100 0 0 0 65 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccutpcasvab
+14 2 1 1 1 100 0 0 0 65 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvsb
+21 12 4 1 1 102 0 0 0 78 -1 2 aarucavcccccccccccbccccccccccccccccccccccccccccccccccccwcccccccccccccccccccccccmcccccccccccccutycasvab
+22 1 3 1 1 100 0 0 0 78 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccxcccccccccccccvcccccccccccccccuutycasvab
+23 1 1 1 1 101 0 0 0 78 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccutycasvab
+6 1 1 1 2 100 97 388 0.25 53 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccmccccccccccccccccccccccccccccccccutycasvab
+28 2 2 1 1 100 0 0 0 79 -1 2 rucavcccccccccccccccccccccccccccccccccccccfccccccccccccccccccccccccccccccccccccncccfcccccccutycasvab
+29 2 2 1 1 100 0 0 0 79 -1 2 rucagccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutyoasvab
+32 9 2 1 1 100 0 0 0 89 -1 2 rucavcmcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccrcccccccccccccccccyutycasvab
+34 13 2 1 1 100 0 0 0 89 -1 3 rucavcccccccccccccccccccfccccccccccccccccccccckcccccccccccmccccrcccccccccccccccccccccccccccutycasvab
+35 22 3 1 1 100 0 0 0 90 -1 2 rucavccccnccjccccccccccccccccccccccccccccccccccccccccccccccjxcccccccccccccvcccccccccccccccuutycasvab
+36 6 1 1 1 100 0 0 0 90 -1 2 rucavcccmcccccccccccccccccccccccccccccccccccccccccccccccccmccccccccccccccccccccccccccccccccutycasvab
+37 8 2 1 1 100 0 0 0 90 -1 3 rucavcccccccccccuccccccccccccccccccccccccccccyccccccccccccccccccccccccccccccccccjmcccccccccutycasvab
+38 8 1 1 1 100 0 0 0 90 -1 3 rucavcccccccccccuccccccccccccccccccccccccccccycccccccccccccccccrcccccccccccccccccccccccccccutycasvab
+39 1 1 1 1 100 0 0 0 90 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccmccccccccccccccccccccccccccccccutycasvab
+40 5 1 1 1 100 0 0 0 90 -1 2 ruchvccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccutycasvab
+41 21 4 1 1 103 0 0 0 90 -1 3 aaaarucavcccccccccccbcccccccccccccccccccccccccccccccccccwcccccccccccccccccccccccmcccccccccccccutycasgab
+42 1 1 1 1 100 0 0 0 91 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccutycasvab
+43 23 1 1 1 101 0 0 0 91 -1 2 rucuvccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccutycasvab
+30 1 1 1 2 100 0 0 0 80 -1 1 rucavcccccccccccccnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+44 7 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccncccccccccccyccccaccccccccccccutycasvab
+46 18 1 1 1 101 0 0 0 93 -1 3 rucavcccccclcccccccccccccpccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccutycasvab
+16 7 2 1 2 100 96 387 0.248062 66 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccaccccccccccccccccyciccaccccccccccccutycasvab
+47 28 3 1 1 99 0 0 0 93 -1 3 rucavcccccccccccccccccccccccccccccccccccccfccccccccccccccccccccccccccccccaccccncccfcccecccutycasvab
+48 10 2 1 1 100 0 0 0 99 -1 2 rucavccccccccccccicccccccccccccccccccccccccccccjcccccccccccccccccccccccccccccccccccccccccccctycasvab
+4 1 1 1 3 100 87 378 0.230159 50 -1 1 rucavccccccccccccccccccccccccccccccccccccccccycccccccccccccccccccccccccccccccccccccccccccccutycasvab
+49 1 1 1 1 100 0 0 0 100 -1 1 rgcavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
Added: development/tests/demes_classic_torus/expected/data/dominant.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/dominant.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/dominant.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Thu Apr 26 22:13:13 2007
+# 1: Update
+# 2: Average Merit of the Dominant Genotype
+# 3: Average Gestation Time of the Dominant Genotype
+# 4: Average Fitness of the Dominant Genotype
+# 5: Repro Rate?
+# 6: Size of Dominant Genotype
+# 7: Copied Size of Dominant Genotype
+# 8: Executed Size of Dominant Genotype
+# 9: Abundance of Dominant Genotype
+# 10: Number of Births
+# 11: Number of Dominant Breed True?
+# 12: Dominant Gene Depth
+# 13: Dominant Breed In
+# 14: Max Fitness?
+# 15: Genotype ID of Dominant Genotype
+# 16: Name of the Dominant Genotype
+
+0 0.000000 0.000000 0.000000 0.000000 100 0.000000 0.000000 1 0 0 0 0 0.000000 1 100-aaaaa
+10 0 0 0 0 100 0 0 1 0 0 0 0 0 1 100-aaaaa
+20 0 0 0 0 100 0 0 2 0 0 0 0 0.249357 1 100-aaaaa
+30 97 389 0.249357 0.00257069 100 100 97 3 0 0 0 0 0.249357 1 100-aaaaa
+40 97 389 0.249357 0.00257069 100 100 97 5 1 1 0 0 0.25 1 100-aaaaa
+50 97 389 0.249357 0.00257069 100 100 97 5 1 0 0 0 0.25 1 100-aaaaa
+60 97 389 0.249357 0.00257069 100 100 97 6 0 0 0 0 0.25 1 100-aaaaa
+70 97 389 0.249357 0.00257069 100 100 97 8 0 0 0 0 0.25 1 100-aaaaa
+80 97 389 0.249357 0.00257069 100 100 97 8 1 0 0 0 0.250646 1 100-aaaaa
+90 97 389 0.249357 0.00257069 100 100 97 9 2 1 0 0 0.250646 1 100-aaaaa
+100 97 389 0.249357 0.00257069 100 100 97 10 2 1 0 0 0.251295 1 100-aaaaa
Added: development/tests/demes_classic_torus/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_classic_torus/expected/data/historic-100.pop (rev 0)
+++ development/tests/demes_classic_torus/expected/data/historic-100.pop 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,18 @@
+#filetype genotype_data
+#format id parent_id parent_dist num_cpus total_cpus length merit gest_time fitness update_born update_dead depth sequence
+
+# 1: ID
+# 2: parent ID
+# 3: parent distance
+# 4: number of orgranisms currently alive
+# 5: total number of organisms that ever existed
+# 6: length of genome
+# 7: merit
+# 8: gestation time
+# 9: fitness
+# 10: update born
+# 11: update deactivated
+# 12: depth in phylogentic tree
+# 13: genome of organism
+
+12 1 1 0 1 100 0 0 0 65 90 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccwcccccccccccccccccccccccccccccccccccccutycasvab
Added: development/tests/demes_classic_torus/expected/data/resource.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/resource.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/resource.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Thu Apr 26 22:13:13 2007
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+# 1: Update
+
+0
+10
+20
+30
+40
+50
+60
+70
+80
+90
+100
Added: development/tests/demes_classic_torus/expected/data/stats.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/stats.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/stats.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Thu Apr 26 22:13:13 2007
+# 1: update
+# 2: average inferiority (energy)
+# 3: ave probability of any mutations in genome
+# 4: probability of any mutations in dom genome
+# 5: log(average fidelity)
+# 6: log(dominant fidelity)
+# 7: change in number of genotypes
+# 8: genotypic entropy
+# 9: species entropy
+# 10: depth of most reacent coalescence
+# 11: Total number of resamplings this generation
+# 12: Total number of organisms that failed to resample this generation
+
+0 0.000000 0.097500 0.562358 0.102587 0.826353 1 0.000000 0.000000 0 0 0
+10 0 0.0975 0.562358 0.102587 0.826353 0 0 0 0 0 0
+20 0 0.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0
+30 0 0.562358 0.562358 0.826353 0.826353 0 0.562335 0 0 0 0
+40 -0.000644122 0.562358 0.562358 0.826353 0.826353 0 0.900256 0 0 0 0
+50 -0.000572574 0.562358 0.562358 0.826353 0.826353 1 1.14906 0 0 0 0
+60 -0.000687049 0.562358 0.562358 0.826353 0.826353 0 1.62167 0 0 0 0
+70 0.0100366 0.562471 0.562358 0.826612 0.826353 0 2.54004 0 0 0 0
+80 0.0299137 0.562762 0.562358 0.827277 0.826353 2 3.17175 0 0 0 0
+90 0.0267817 0.562841 0.562358 0.827457 0.826353 5 3.41918 0 0 0 0
+100 0.015628 0.562893 0.562358 0.827577 0.826353 1 3.52576 0 0 0 0
Added: development/tests/demes_classic_torus/expected/data/tasks.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/tasks.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/tasks.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Thu Apr 26 22:13:13 2007
+# First column gives the current update, next columns give the number
+# of organisms that have the particular task as a component of their merit
+# 1: Update
+# 2: Not
+# 3: Nand
+# 4: And
+# 5: OrNot
+# 6: Or
+# 7: AndNot
+# 8: Nor
+# 9: Xor
+# 10: Equals
+
+0 0 0 0 0 0 0 0 0 0
+10 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_torus/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/tasks_exe.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/tasks_exe.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Thu Apr 26 22:13:13 2007
+# First column gives the current update, all further columns give the number
+# of times the particular task has been executed this update.
+# 1: Update
+# 2: Not
+# 3: Nand
+# 4: And
+# 5: OrNot
+# 6: Or
+# 7: AndNot
+# 8: Nor
+# 9: Xor
+# 10: Equals
+
+0 0 0 0 0 0 0 0 0 0
+10 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_torus/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/tasks_quality.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Thu Apr 26 22:13:13 2007
+# First column gives the current update, rest give average and max task quality
+# 1: Update
+# 2: Not Average
+# 3: Not Max
+# 4: Nand Average
+# 5: Nand Max
+# 6: And Average
+# 7: And Max
+# 8: OrNot Average
+# 9: OrNot Max
+# 10: Or Average
+# 11: Or Max
+# 12: AndNot Average
+# 13: AndNot Max
+# 14: Nor Average
+# 15: Nor Max
+# 16: Xor Average
+# 17: Xor Max
+# 18: Equals Average
+# 19: Equals Max
+
+0 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+40 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Added: development/tests/demes_classic_torus/expected/data/time.dat
===================================================================
--- development/tests/demes_classic_torus/expected/data/time.dat (rev 0)
+++ development/tests/demes_classic_torus/expected/data/time.dat 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,18 @@
+# Avida time data
+# Thu Apr 26 22:13:13 2007
+# 1: update
+# 2: avida time
+# 3: average generation
+# 4: num_executed?
+
+0 0.000000 0.000000 30
+10 0 0 30
+20 0.0824742 1 60
+30 0.185567 2 120
+40 0.28866 3 210
+50 0.391753 3.22222 240
+60 0.494845 3.93333 450
+70 0.59903 4.92857 840
+80 0.705207 5.97872 1320
+90 0.812301 6.54237 1530
+100 0.918126 7.02817 2100
Added: development/tests/demes_classic_torus/test_list
===================================================================
--- development/tests/demes_classic_torus/test_list (rev 0)
+++ development/tests/demes_classic_torus/test_list 2007-04-27 02:49:56 UTC (rev 1504)
@@ -0,0 +1,35 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+args = -s 100 ; Command line arguments to pass to the application
+app = %(app)s ; Application path to test
+nonzeroexit = disallow ; Exit code handling (disallow, allow, or require)
+ ; disallow - treat non-zero exit codes as failures
+ ; allow - all exit codes are acceptable
+ ; require - treat zero exit codes as failures, useful
+ ; for creating tests for app error checking
+createdby = Dave Knoester ; Who created the test
+email = dk at cse.msu.edu ; Email address for the test's creator
+
+[consistency]
+enabled = yes ; Is this test a consistency test?
+long = no ; Is this test a long test?
+
+[performance]
+enabled = no ; Is this test a performance test?
+long = no ; Is this test a long test?
+
+; The following variables can be used in constructing setting values by calling
+; them with %(variable_name)s. For example see 'app' above.
+;
+; app
+; builddir
+; cpus
+; mode
+; perf_repeat
+; perf_user_margin
+; perf_wall_margin
+; svn
+; svnmetadir
+; svnversion
+; testdir
+;--- End Test Configuration File ---
More information about the Avida-cvs
mailing list