[Avida-SVN] r1506 - in development: Avida.xcodeproj source/actions source/drivers source/main source/tools support/config tests tests/demes_clique_repl tests/demes_clique_repl/config tests/demes_clique_repl/expected tests/demes_clique_repl/expected/data tests/demes_clique_repl/expected/data/archive tests/demes_germline tests/demes_germline/config tests/demes_germline/expected tests/demes_germline/expected/data tests/demes_germline/expected/data/archive tests/demes_grid_repl tests/demes_grid_repl/config tests/demes_grid_repl/expected tests/demes_grid_repl/expected/data tests/demes_grid_repl/expected/data/archive tests/demes_torus_repl tests/demes_torus_repl/config tests/demes_torus_repl/expected tests/demes_torus_repl/expected/data tests/demes_torus_repl/expected/data/archive
dknoester at myxo.css.msu.edu
dknoester at myxo.css.msu.edu
Fri Apr 27 08:12:52 PDT 2007
Author: dknoester
Date: 2007-04-27 11:12:52 -0400 (Fri, 27 Apr 2007)
New Revision: 1506
Added:
development/source/main/cGermline.h
development/tests/demes_clique_repl/
development/tests/demes_clique_repl/config/
development/tests/demes_clique_repl/config/avida.cfg
development/tests/demes_clique_repl/config/default-classic.org
development/tests/demes_clique_repl/config/environment.cfg
development/tests/demes_clique_repl/config/events.cfg
development/tests/demes_clique_repl/config/instset-classic.cfg
development/tests/demes_clique_repl/expected/
development/tests/demes_clique_repl/expected/data/
development/tests/demes_clique_repl/expected/data/archive/
development/tests/demes_clique_repl/expected/data/archive/100-aaaaa.org
development/tests/demes_clique_repl/expected/data/average.dat
development/tests/demes_clique_repl/expected/data/count.dat
development/tests/demes_clique_repl/expected/data/detail-100.pop
development/tests/demes_clique_repl/expected/data/dominant.dat
development/tests/demes_clique_repl/expected/data/historic-100.pop
development/tests/demes_clique_repl/expected/data/resource.dat
development/tests/demes_clique_repl/expected/data/stats.dat
development/tests/demes_clique_repl/expected/data/tasks.dat
development/tests/demes_clique_repl/expected/data/tasks_exe.dat
development/tests/demes_clique_repl/expected/data/tasks_quality.dat
development/tests/demes_clique_repl/expected/data/time.dat
development/tests/demes_clique_repl/test_list
development/tests/demes_germline/
development/tests/demes_germline/config/
development/tests/demes_germline/config/avida.cfg
development/tests/demes_germline/config/default-classic.org
development/tests/demes_germline/config/environment.cfg
development/tests/demes_germline/config/events.cfg
development/tests/demes_germline/config/instset-classic.cfg
development/tests/demes_germline/expected/
development/tests/demes_germline/expected/data/
development/tests/demes_germline/expected/data/archive/
development/tests/demes_germline/expected/data/archive/100-aaaaa.org
development/tests/demes_germline/expected/data/average.dat
development/tests/demes_germline/expected/data/count.dat
development/tests/demes_germline/expected/data/detail-100.pop
development/tests/demes_germline/expected/data/dominant.dat
development/tests/demes_germline/expected/data/historic-100.pop
development/tests/demes_germline/expected/data/resource.dat
development/tests/demes_germline/expected/data/stats.dat
development/tests/demes_germline/expected/data/tasks.dat
development/tests/demes_germline/expected/data/tasks_exe.dat
development/tests/demes_germline/expected/data/tasks_quality.dat
development/tests/demes_germline/expected/data/time.dat
development/tests/demes_germline/test_list
development/tests/demes_grid_repl/
development/tests/demes_grid_repl/config/
development/tests/demes_grid_repl/config/avida.cfg
development/tests/demes_grid_repl/config/default-classic.org
development/tests/demes_grid_repl/config/environment.cfg
development/tests/demes_grid_repl/config/events.cfg
development/tests/demes_grid_repl/config/instset-classic.cfg
development/tests/demes_grid_repl/expected/
development/tests/demes_grid_repl/expected/data/
development/tests/demes_grid_repl/expected/data/archive/
development/tests/demes_grid_repl/expected/data/archive/100-aaaaa.org
development/tests/demes_grid_repl/expected/data/average.dat
development/tests/demes_grid_repl/expected/data/count.dat
development/tests/demes_grid_repl/expected/data/detail-100.pop
development/tests/demes_grid_repl/expected/data/dominant.dat
development/tests/demes_grid_repl/expected/data/historic-100.pop
development/tests/demes_grid_repl/expected/data/resource.dat
development/tests/demes_grid_repl/expected/data/stats.dat
development/tests/demes_grid_repl/expected/data/tasks.dat
development/tests/demes_grid_repl/expected/data/tasks_exe.dat
development/tests/demes_grid_repl/expected/data/tasks_quality.dat
development/tests/demes_grid_repl/expected/data/time.dat
development/tests/demes_grid_repl/test_list
development/tests/demes_torus_repl/
development/tests/demes_torus_repl/config/
development/tests/demes_torus_repl/config/avida.cfg
development/tests/demes_torus_repl/config/default-classic.org
development/tests/demes_torus_repl/config/environment.cfg
development/tests/demes_torus_repl/config/events.cfg
development/tests/demes_torus_repl/config/instset-classic.cfg
development/tests/demes_torus_repl/expected/
development/tests/demes_torus_repl/expected/data/
development/tests/demes_torus_repl/expected/data/archive/
development/tests/demes_torus_repl/expected/data/archive/100-aaaaa.org
development/tests/demes_torus_repl/expected/data/average.dat
development/tests/demes_torus_repl/expected/data/count.dat
development/tests/demes_torus_repl/expected/data/detail-100.pop
development/tests/demes_torus_repl/expected/data/dominant.dat
development/tests/demes_torus_repl/expected/data/historic-100.pop
development/tests/demes_torus_repl/expected/data/resource.dat
development/tests/demes_torus_repl/expected/data/stats.dat
development/tests/demes_torus_repl/expected/data/tasks.dat
development/tests/demes_torus_repl/expected/data/tasks_exe.dat
development/tests/demes_torus_repl/expected/data/tasks_quality.dat
development/tests/demes_torus_repl/expected/data/time.dat
development/tests/demes_torus_repl/test_list
Removed:
development/tests/demes_classic_clique/
development/tests/demes_classic_grid/
Modified:
development/Avida.xcodeproj/project.pbxproj
development/source/actions/PopulationActions.cc
development/source/drivers/cDefaultRunDriver.cc
development/source/main/cAvidaConfig.h
development/source/main/cDeme.cc
development/source/main/cDeme.h
development/source/main/cPopulation.cc
development/source/main/cPopulation.h
development/source/tools/cTopology.h
development/support/config/avida.cfg
Log:
This commit:
- Merges germline support and tests into the development branch.
- Adds an age-based ReplicateDemes event.
- Removes a number of trivial deme consistency tests, replacing them with tests
that cover age-based ReplicateDemes.
- Adds a demes group to avida.cfg, and a number of config options.
- Fixes a missing #ifndef guard on cTopology.h.
Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/Avida.xcodeproj/project.pbxproj 2007-04-27 15:12:52 UTC (rev 1506)
@@ -13,6 +13,7 @@
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 */; };
+ 42490F000BE2472800318058 /* cGermline.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 42490EFE0BE2472800318058 /* cGermline.h */; };
7005A70409BA0FA90007E16E /* cTestCPUInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */; };
7005A70609BA0FA90007E16E /* cTestCPUInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */; };
7005A70809BA0FA90007E16E /* cTestCPUInterface.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */; };
@@ -428,6 +429,7 @@
70B1A75A0B7E431F00067486 /* experimental.org in CopyFiles */,
4233358B0BC067E3000DF681 /* cHardwareGX.h in CopyFiles */,
4201F39B0BE187F6006279B9 /* cTopology.h in CopyFiles */,
+ 42490F000BE2472800318058 /* cGermline.h in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -449,6 +451,7 @@
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>"; };
+ 42490EFE0BE2472800318058 /* cGermline.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cGermline.h; sourceTree = "<group>"; };
7005A70109BA0FA90007E16E /* cTestCPUInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cTestCPUInterface.h; sourceTree = "<group>"; };
7005A70209BA0FA90007E16E /* cTestCPUInterface.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cTestCPUInterface.cc; sourceTree = "<group>"; };
7005A70909BA0FBE0007E16E /* cOrgInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cOrgInterface.h; sourceTree = "<group>"; };
@@ -1404,6 +1407,7 @@
DCC310040762539D008F7A48 /* main */ = {
isa = PBXGroup;
children = (
+ 42490EFE0BE2472800318058 /* cGermline.h */,
706C6F480B83E69D003174C1 /* cSaleItem.h */,
708BF3010AB65DD300A923BF /* cEventList.h */,
708BF2FD0AB65DC700A923BF /* cEventList.cc */,
Modified: development/source/actions/PopulationActions.cc
===================================================================
--- development/source/actions/PopulationActions.cc 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/actions/PopulationActions.cc 2007-04-27 15:12:52 UTC (rev 1506)
@@ -452,6 +452,55 @@
};
+
+/*! Injects an organism into all demes in the population.
+
+Parameters:
+filename (string):
+The filename of the genotype to load. If this is left empty, or the keyword
+"START_CREATURE" is given, than the genotype specified in the genesis
+file under "START_CREATURE" is used.
+cell ID (integer) default: 0
+ The grid-point into which the organism should be placed.
+ merit (double) default: -1
+ The initial merit of the organism. If set to -1, this is ignored.
+ lineage label (integer) default: 0
+ An integer that marks all descendants of this organism.
+ neutral metric (double) default: 0
+ A double value that randomly drifts over time.
+ */
+class cActionInjectDemes : public cAction
+{
+private:
+ cString m_filename;
+ double m_merit;
+ int m_lineage_label;
+ double m_neutral_metric;
+public:
+ cActionInjectDemes(cWorld* world, const cString& args) : cAction(world, args), m_merit(-1), m_lineage_label(0), m_neutral_metric(0)
+ {
+ cString largs(args);
+ if (!largs.GetSize()) m_filename = "START_CREATURE"; else m_filename = largs.PopWord();
+ if (largs.GetSize()) m_merit = largs.PopWord().AsDouble();
+ if (largs.GetSize()) m_lineage_label = largs.PopWord().AsInt();
+ if (largs.GetSize()) m_neutral_metric = largs.PopWord().AsDouble();
+ if (m_filename == "START_CREATURE") m_filename = m_world->GetConfig().START_CREATURE.Get();
+ }
+
+ static const cString GetDescription() { return "Arguments: [string fname=\"START_CREATURE\"] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]"; }
+
+ void Process(cAvidaContext& ctx)
+ {
+ cGenome genome = cGenomeUtil::LoadGenome(m_filename, m_world->GetHardwareManager().GetInstSet());
+ for(int i=0; i<m_world->GetPopulation().GetNumDemes(); ++i) {
+ m_world->GetPopulation().Inject(genome,
+ m_world->GetPopulation().GetDeme(i).GetCellID(0),
+ m_merit, m_lineage_label, m_neutral_metric);
+ }
+ }
+};
+
+
/*
Randomly removes a certain proportion of the population.
@@ -951,10 +1000,11 @@
cString largs(args);
cString in_trigger("full_deme");
if (largs.GetSize()) in_trigger = largs.PopWord();
-
+
if (in_trigger == "all") m_rep_trigger = 0;
else if (in_trigger == "full_deme") m_rep_trigger = 1;
else if (in_trigger == "corners") m_rep_trigger = 2;
+ else if (in_trigger == "deme-age") m_rep_trigger = 3;
else {
cString err("Unknown replication trigger '");
err += in_trigger;
@@ -1401,6 +1451,7 @@
action_lib->Register<cActionInjectAll>("InjectAll");
action_lib->Register<cActionInjectRange>("InjectRange");
action_lib->Register<cActionInjectSequence>("InjectSequence");
+ action_lib->Register<cActionInjectDemes>("InjectDemes");
action_lib->Register<cActionInjectParasite>("InjectParasite");
action_lib->Register<cActionInjectParasitePair>("InjectParasitePair");
Modified: development/source/drivers/cDefaultRunDriver.cc
===================================================================
--- development/source/drivers/cDefaultRunDriver.cc 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/drivers/cDefaultRunDriver.cc 2007-04-27 15:12:52 UTC (rev 1506)
@@ -105,10 +105,13 @@
population.ProcessStep(ctx, step_size);
}
-
// end of update stats...
population.CalcUpdateStats();
+ // Process the update for each deme.
+ for(int i=0; i<population.GetNumDemes(); ++i) {
+ population.GetDeme(i).ProcessUpdate();
+ }
// No viewer; print out status for this update....
if (m_world->GetVerbosity() > VERBOSE_SILENT) {
Modified: development/source/main/cAvidaConfig.h
===================================================================
--- development/source/main/cAvidaConfig.h 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/main/cAvidaConfig.h 2007-04-27 15:12:52 UTC (rev 1506)
@@ -195,7 +195,6 @@
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\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\n3 = Experimental CPU\n4 = Gene Expression CPU");
@@ -207,6 +206,18 @@
CONFIG_ADD_VAR(ENVIRONMENT_FILE, cString, "environment.cfg", "File that describes the environment");
CONFIG_ADD_VAR(START_CREATURE, cString, "default-classic.org", "Organism to seed the soup");
+
+ // Deme & germline group.
+ CONFIG_ADD_GROUP(DEME_GROUP, "Demes and Germlines");
+ CONFIG_ADD_VAR(NUM_DEMES, int, 1, "Number of independent groups in the population.");
+ CONFIG_ADD_VAR(DEMES_USE_GERMLINE, int, 0, "Whether demes use a distinct germline; 0=off");
+ CONFIG_ADD_VAR(DEMES_HAVE_MERIT, int, 0, "Whether demes have merit; 0=no");
+ CONFIG_ADD_VAR(GERMLINE_COPY_MUT, double, 0.0075, "Prob. of copy mutations occuring during\ngermline replication.");
+ CONFIG_ADD_VAR(GERMLINE_REPLACES_SOURCE, int, 0, "Whether the source germline is updated\non replication; 0=no.");
+ CONFIG_ADD_VAR(GERMLINE_RANDOM_PLACEMENT, int, 0, "Whether the seed for a germline is placed\n randomly within the deme; 0=no.");
+ CONFIG_ADD_VAR(MAX_DEME_AGE, int, 500, "The maximum age of a deme (in updates) to be\nused for age-based replication (default=500).");
+
+
CONFIG_ADD_GROUP(REPRODUCTION_GROUP, "Birth and Death");
CONFIG_ADD_VAR(BIRTH_METHOD, int, 0, "Which organism should be replaced on birth?\n0 = Random organism in neighborhood\n1 = Oldest in neighborhood\n2 = Largest Age/Merit in neighborhood\n3 = None (use only empty cells in neighborhood)\n4 = Random from population (Mass Action)\n5 = Oldest in entire population\n6 = Random within deme\n7 = Organism faced by parent\n8 = Next grid cell (id+1)\n9 = Largest energy used in entire population\n10 = Largest energy used in neighborhood");
CONFIG_ADD_VAR(PREFER_EMPTY, int, 1, "Give empty cells preference in offsping placement?");
Modified: development/source/main/cDeme.cc
===================================================================
--- development/source/main/cDeme.cc 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/main/cDeme.cc 2007-04-27 15:12:52 UTC (rev 1506)
@@ -20,20 +20,23 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
-
#include "cDeme.h"
+
cDeme::cDeme()
- : width(0)
- , birth_count(0)
- , org_count(0)
+: width(0)
+, birth_count(0)
+, org_count(0)
+, _age(0)
{
}
+
cDeme::~cDeme()
{
}
+
void cDeme::Setup(const tArray<int> & in_cells, int in_width)
{
cell_ids = in_cells;
@@ -45,6 +48,7 @@
if (width < 1) width = cell_ids.GetSize();
}
+
int cDeme::GetCellID(int x, int y) const
{
assert(x >= 0 && x < GetWidth());
@@ -54,3 +58,31 @@
return cell_ids[pos];
}
+
+/*! Note that for this method to work, we blatantly assume that IDs are in
+monotonically increasing order!! */
+std::pair<int, int> cDeme::GetCellPosition(int cellid) const
+{
+ assert(cell_ids.GetSize()>0);
+ assert(GetWidth() > 0);
+ cellid -= cell_ids[0];
+ return std::make_pair(cellid % GetWidth(), cellid / GetWidth());
+}
+
+
+void cDeme::Reset()
+{
+ birth_count = 0;
+ _age = 0;
+}
+
+
+/*! Replacing this deme's germline has the effect of changing the deme's lineage.
+There's still some work to do here; the lineage labels of the Genomes in the germline
+are all messed up.
+
+\todo Fix lineage labels in germlines.
+*/
+void cDeme::ReplaceGermline(const cGermline& germline) {
+ _germline = germline;
+}
Modified: development/source/main/cDeme.h
===================================================================
--- development/source/main/cDeme.h 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/main/cDeme.h 2007-04-27 15:12:52 UTC (rev 1506)
@@ -20,27 +20,18 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
-
-// DESCRIPTION:
-// Demes are groups of cells in the population that are somehow bound togehter
-// as a unit. The deme object is used from withing cPopulation to manage these
-// groups.
-
#ifndef cDeme_h
#define cDeme_h
-#ifndef tArray_h
+#include "cGermline.h"
#include "tArray.h"
-#endif
+
+/*! Demes are groups of cells in the population that are somehow bound together
+as a unit. The deme object is used from within cPopulation to manage these
+groups. */
class cDeme {
-private:
- tArray<int> cell_ids;
- int width; // How wide is the deme?
- int birth_count; // How many organisms have been born into deme since reset?
- int org_count; // How many organisms are currently in the deme?
-
public:
cDeme();
~cDeme();
@@ -50,11 +41,13 @@
int GetSize() const { return cell_ids.GetSize(); }
int GetCellID(int pos) const { return cell_ids[pos]; }
int GetCellID(int x, int y) const;
+ //! Returns an (x,y) pair for the position of the passed-in cell ID.
+ std::pair<int, int> cDeme::GetCellPosition(int cellid) const;
int GetWidth() const { return width; }
int GetHeight() const { return cell_ids.GetSize() / width; }
- void Reset() { birth_count = 0; }
+ void Reset();
int GetBirthCount() const { return birth_count; }
void IncBirthCount() { birth_count++; }
@@ -64,6 +57,28 @@
bool IsEmpty() const { return org_count == 0; }
bool IsFull() const { return org_count == cell_ids.GetSize(); }
+
+ // -= Germline =-
+ //! Returns this deme's germline.
+ cGermline& GetGermline() { return _germline; }
+ //! Replaces this deme's germline.
+ void ReplaceGermline(const cGermline& germline);
+
+ // -= Update support =-
+ //! Called once, at the end of every update.
+ void ProcessUpdate() { ++_age; }
+ /*! Returns the age of this deme, updates. Age is defined as the number of
+ updates since the last time Reset() was called. */
+ int GetAge() const { return _age; }
+
+private:
+ tArray<int> cell_ids;
+ int width; //!< Width of this deme.
+ int birth_count; //!< Number of organisms that have been born into this deme since reset.
+ int org_count; //!< Number of organisms are currently in this deme.
+ int _age; //!< Age of this deme, in updates.
+
+ cGermline _germline; //!< The germline for this deme, if used.
};
#endif
Copied: development/source/main/cGermline.h (from rev 1400, branches/dkdev/source/main/cGermline.h)
===================================================================
--- development/source/main/cGermline.h (rev 0)
+++ development/source/main/cGermline.h 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,19 @@
+#ifndef _C_GERMLINE_H_
+#define _C_GERMLINE_H_
+
+#include <vector>
+
+#include "cGenome.h"
+
+
+class cGermline {
+public:
+ cGenome& GetLatest() { return _germline.back(); }
+ void Add(const cGenome& genome) { _germline.push_back(genome); }
+ unsigned int Size() const { return _germline.size(); }
+
+protected:
+ std::vector<cGenome> _germline;
+};
+
+#endif
Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/main/cPopulation.cc 2007-04-27 15:12:52 UTC (rev 1506)
@@ -40,6 +40,7 @@
#include "cHardwareManager.h"
#include "cInitFile.h"
#include "cInjectGenotype.h"
+#include "cInstSet.h"
#include "cIntegratedSchedule.h"
#include "cLineage.h"
#include "cOrganism.h"
@@ -52,6 +53,7 @@
#include "cStats.h"
#include "cTopology.h"
#include "cWorld.h"
+#include "cTopology.h"
#include <fstream>
#include <vector>
@@ -839,81 +841,156 @@
void cPopulation::ReplicateDemes(int rep_trigger)
{
+ assert(GetNumDemes()>1); // Sanity check.
+
// Determine which demes should be replicated.
const int num_demes = GetNumDemes();
cRandom & random = m_world->GetRandom();
// Loop through all candidate demes...
- for (int deme_id = 0; deme_id < num_demes; deme_id++) {
- cDeme & source_deme = deme_array[deme_id];
-
+ for (int deme_id = 0; deme_id < num_demes; deme_id++) {
+ cDeme & source_deme = deme_array[deme_id];
+
+ // Doesn't make sense to try and replicate a deme that *has no organisms*.
+ if(source_deme.IsEmpty()) continue;
+
// Test this deme to determine if it should be replicated. If not,
// continue on to the next deme.
switch (rep_trigger) {
- case 0: // CASE: Replicate all non-empty demes...
- // If this deme is empt, continue looping...
+ case 0: {
+ // Replicate all non-empty demes.
if (source_deme.IsEmpty()) continue;
break;
- case 1: // Replicate all full demes...
+ }
+ case 1: {
+ // Replicate all full demes.
if (source_deme.IsFull() == false) continue;
break;
- case 2: // Replicate all demes with the corners filled in.
- {
+ }
+ case 2: {
+ // Replicate all demes with the corners filled in.
// The first and last IDs represent the two corners.
- const int id1 = source_deme.GetCellID(0);
- const int id2 = source_deme.GetCellID(source_deme.GetSize() - 1);
- if (cell_array[id1].IsOccupied() == false ||
- cell_array[id2].IsOccupied() == false) continue;
+ const int id1 = source_deme.GetCellID(0);
+ const int id2 = source_deme.GetCellID(source_deme.GetSize() - 1);
+ if(cell_array[id1].IsOccupied() == false ||
+ cell_array[id2].IsOccupied() == false) continue;
+ break;
}
+ case 3: {
+ // Replicate old demes.
+ if(source_deme.GetAge() < m_world->GetConfig().MAX_DEME_AGE.Get()) continue;
break;
- default:
- cerr << "ERROR: Invalid replication trigger " << rep_trigger
- << " in cPopulation::ReplicateDemes()" << endl;
- continue;
+ }
+ default: {
+ cerr << "ERROR: Invalid replication trigger " << rep_trigger
+ << " in cPopulation::ReplicateDemes()" << endl;
+ assert(false);
+ }
}
- // -- If we made it this far, we should replicate this deme --
-
- // Choose a random organism from this deme...
- int cell1_id = -1;
- const int deme1_size = source_deme.GetSize();
- while (cell1_id == -1 || cell_array[cell1_id].IsOccupied() == false) {
- cell1_id = source_deme.GetCellID(random.GetUInt(deme1_size));
- }
-
- // Choose a random target deme to replicate to...
- int target_id = deme_id;
- while (target_id == deme_id) target_id = random.GetUInt(num_demes);
- cDeme & target_deme = deme_array[target_id];
-
- // Clear out existing cells in target deme.
- const int deme2_size = target_deme.GetSize();
- for (int i = 0; i < deme2_size; i++) {
- KillOrganism(cell_array[ target_deme.GetCellID(i) ]);
- }
-
- // And do the replication into the central cell of the target deme...
- const int cell2_id = target_deme.GetCellID( deme2_size/2 );
- InjectClone( cell2_id, *(cell_array[cell1_id].GetOrganism()) );
-
- // Clear out the source deme to reset it
- for (int i = 0; i < deme1_size; i++) {
- KillOrganism(cell_array[ source_deme.GetCellID(i) ]);
- }
-
- // Inject the target offspring back into the source ID.
- const int cell3_id = source_deme.GetCellID( deme1_size/2 );
- InjectClone( cell3_id, *(cell_array[cell2_id].GetOrganism()) );
-
- // Rotate both injected cells to face northwest.
- cell_array[cell2_id].Rotate(
- cell_array[GridNeighbor(cell2_id, world_x, world_y, -1, -1)] );
- cell_array[cell3_id].Rotate(
- cell_array[GridNeighbor(cell3_id, world_x, world_y, -1, -1)] );
- }
+ // -- If we made it this far, we should replicate this deme --
+ cRandom& random = m_world->GetRandom();
+
+ // Choose a random target deme to replicate to, and kill all the organisms
+ // in that deme.
+ int target_id = deme_id;
+ while(target_id == deme_id) {
+ target_id = random.GetUInt(num_demes);
+ }
+ cDeme& target_deme = deme_array[target_id];
+ for (int i=0; i<target_deme.GetSize(); i++) {
+ KillOrganism(cell_array[target_deme.GetCellID(i)]);
+ }
+
+ // Ok, there are two potential places where the seed for the target deme can
+ // come from. First, it could be a random organism in the source deme.
+ // Second, it could be an offspring of the source deme's germline, if the config
+ // option DEMES_USE_GERMLINE is set.
+ if(m_world->GetConfig().DEMES_USE_GERMLINE.Get()) {
+ // Get the latest germ from the source deme.
+ cGermline& source_germline = source_deme.GetGermline();
+ cGenome& source_germ = source_germline.GetLatest();
+
+ // Now create the next germ by manually mutating the source.
+ // @refactor (strategy pattern)
+ cGenome next_germ(source_germ);
+ if(m_world->GetConfig().GERMLINE_COPY_MUT.Get() > 0) {
+ const cInstSet& instset = m_world->GetHardwareManager().GetInstSet();
+ cAvidaContext ctx(m_world->GetRandom());
+ for(int i=0; i<next_germ.GetSize(); ++i) {
+ if(m_world->GetRandom().P(m_world->GetConfig().GERMLINE_COPY_MUT.Get())) {
+ next_germ[i] = instset.GetRandomInst(ctx);
+ }
+ }
+ }
+
+ // Here we're adding the next_germ to the germline(s). Note the
+ // config option to determine if we should update the source_germline
+ // as well.
+ target_deme.ReplaceGermline(source_germline);
+ cGermline& target_germline = target_deme.GetGermline();
+ target_germline.Add(next_germ);
+ if(m_world->GetConfig().GERMLINE_REPLACES_SOURCE.Get()) {
+ source_germline.Add(next_germ);
+ }
+
+ // Kill all the organisms in the source deme.
+ for (int i=0; i<source_deme.GetSize(); i++) {
+ KillOrganism(cell_array[source_deme.GetCellID(i)]);
+ }
+
+ // Lineage label is wrong here; fix.
+ if(m_world->GetConfig().GERMLINE_RANDOM_PLACEMENT.Get()) {
+ InjectGenome(source_deme.GetCellID(m_world->GetRandom().GetInt(0, source_deme.GetSize()-1)),
+ source_germline.GetLatest(), 0);
+ InjectGenome(target_deme.GetCellID(m_world->GetRandom().GetInt(0, target_deme.GetSize()-1)),
+ target_germline.GetLatest(), 0);
+ } else {
+ InjectGenome(source_deme.GetCellID(source_deme.GetSize()/2), source_germline.GetLatest(), 0);
+ InjectGenome(target_deme.GetCellID(target_deme.GetSize()/2), target_germline.GetLatest(), 0);
+ }
+
+ // Note: not rotating the clones.
+ } else {
+ // Not using germline; choose a random organism from this deme.
+ int cell1_id = -1;
+ while (cell1_id == -1 || cell_array[cell1_id].IsOccupied() == false) {
+ cell1_id = source_deme.GetCellID(random.GetUInt(source_deme.GetSize()));
+ }
+
+ cOrganism* seed = cell_array[cell1_id].GetOrganism();
+
+ // And do the replication into the central cell of the target deme...
+ const int cell2_id = target_deme.GetCellID(target_deme.GetWidth()/2, target_deme.GetHeight()/2);
+ InjectClone(cell2_id, *seed);
+
+ // Kill all the organisms in the source deme.
+ seed = 0; // Note that we're killing the organism that seed points to.
+ for (int i=0; i<source_deme.GetSize(); i++) {
+ KillOrganism(cell_array[source_deme.GetCellID(i)]);
+ }
+
+ // Inject the target offspring back into the source ID.
+ const int cell3_id = source_deme.GetCellID(source_deme.GetWidth()/2, source_deme.GetHeight()/2);
+ InjectClone(cell3_id, *cell_array[cell2_id].GetOrganism());
+
+ // Rotate both injected cells to face northwest.
+ int offset=target_deme.GetCellID(0);
+ cell_array[cell2_id].Rotate(cell_array[GridNeighbor(cell2_id-offset,
+ target_deme.GetWidth(),
+ target_deme.GetHeight(), -1, -1)+offset]);
+ offset = source_deme.GetCellID(0);
+ cell_array[cell3_id].Rotate(cell_array[GridNeighbor(cell3_id-offset,
+ source_deme.GetWidth(),
+ source_deme.GetHeight(), -1, -1)+offset]);
+ }
+
+ // And reset both demes, in case they have any cleanup work to do.
+ source_deme.Reset();
+ target_deme.Reset();
+ }
}
-
// Loop through all demes to determine if any are ready to be divided. All
// full demes have 1/2 of their organisms (the odd ones) moved into a new deme.
@@ -1986,6 +2063,14 @@
schedule->Adjust(cell_id, phenotype.GetMerit());
LineageSetupOrganism(GetCell(cell_id).GetOrganism(), 0, lineage_label);
+
+ // If we're using germlines, then we have to be a little careful here.
+ if(m_world->GetConfig().DEMES_USE_GERMLINE.Get()) {
+ cDeme& deme = deme_array[GetCell(cell_id).GetDemeID()];
+ if(deme.GetGermline().Size()==0) {
+ deme.GetGermline().Add(GetCell(cell_id).GetOrganism()->GetGenome());
+ }
+ }
}
void cPopulation::InjectParasite(const cCodeLabel& label, const cGenome& injected_code, int cell_id)
Modified: development/source/main/cPopulation.h
===================================================================
--- development/source/main/cPopulation.h 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/main/cPopulation.h 2007-04-27 15:12:52 UTC (rev 1506)
@@ -190,6 +190,7 @@
int GetWorldX() { return world_x; }
int GetWorldY() { return world_y; }
int GetNumDemes() { return deme_array.GetSize(); }
+ cDeme& GetDeme(int i) { return deme_array[i]; }
cPopulationCell& GetCell(int in_num);
const tArray<double>& GetResources() const { return resource_count.GetResources(); }
Modified: development/source/tools/cTopology.h
===================================================================
--- development/source/tools/cTopology.h 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/source/tools/cTopology.h 2007-04-27 15:12:52 UTC (rev 1506)
@@ -7,8 +7,9 @@
topology out of a given range of cells. In every case, the range of cells is
specified by a begin/end iterator pair.
*/
+#ifndef _C_TOPOLOGY_H_
+#define _C_TOPOLOGY_H_
-
/*! 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.
@@ -86,3 +87,5 @@
}
}
}
+
+#endif
Modified: development/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg 2007-04-27 03:48:40 UTC (rev 1505)
+++ development/support/config/avida.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -20,12 +20,13 @@
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
+ # 3 = Clique
RANDOM_SEED 0 # Random number seed (0 for based on time)
HARDWARE_TYPE 0 # 0 = Original CPUs
# 1 = New SMT CPUs
# 2 = Transitional SMT
+ # 3 = Experimental CPU
+ # 4 = Gene Expression CPU
### CONFIG_FILE_GROUP ###
# Configuration Files
@@ -36,6 +37,20 @@
ENVIRONMENT_FILE environment.cfg # File that describes the environment
START_CREATURE default-classic.org # Organism to seed the soup
+### DEME_GROUP ###
+# Demes and Germlines
+NUM_DEMES 1 # Number of independent groups in the population.
+DEMES_USE_GERMLINE 0 # Whether demes use a distinct germline; 0=off
+DEMES_HAVE_MERIT 0 # Whether demes have merit; 0=no
+GERMLINE_COPY_MUT 0.0075 # Prob. of copy mutations occuring during
+ # germline replication.
+GERMLINE_REPLACES_SOURCE 0 # Whether the source germline is updated
+ # on replication; 0=no.
+GERMLINE_RANDOM_PLACEMENT 0 # Whether the seed for a germline is placed
+ # randomly within the deme; 0=no.
+MAX_DEME_AGE 500 # The maximum age of a deme (in updates) to be
+ # used for age-based replication (default=500).
+
### REPRODUCTION_GROUP ###
# Birth and Death
BIRTH_METHOD 0 # Which organism should be replaced on birth?
Added: development/tests/demes_clique_repl/config/avida.cfg
===================================================================
--- development/tests/demes_clique_repl/config/avida.cfg (rev 0)
+++ development/tests/demes_clique_repl/config/avida.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,257 @@
+#############################################################################
+# 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
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+ # 3 = Experimental CPU
+ # 4 = Gene Expression CPU
+
+### 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
+
+### DEME_GROUP ###
+# Demes and Germlines
+NUM_DEMES 100 # Number of independent groups in the population.
+DEMES_USE_GERMLINE 0 # Whether demes use a distinct germline; 0=off
+DEMES_HAVE_MERIT 0 # Whether demes have merit; 0=no
+GERMLINE_COPY_MUT 0.0075 # Prob. of copy mutations occuring during
+ # germline replication.
+GERMLINE_REPLACES_SOURCE 0 # Whether the source germline is updated
+ # on replication; 0=no.
+GERMLINE_RANDOM_PLACEMENT 0 # Whether the seed for a germline is placed
+ # randomly within the deme; 0=no.
+MAX_DEME_AGE 40 # The maximum age of a deme (in updates) to be
+ # used for age-based replication (default=500).
+
+### 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)
+ # 9 = Largest energy used in entire population
+ # 10 = Largest energy used in neighborhood
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
+ALLOW_PARENT 1 # Allow births to replace the parent organism?
+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)
+META_COPY_MUT 0.0 # Prob. of copy mutation rate changing (per gen)
+META_STD_DEV 0.0 # Standard deviation of meta mutation size.
+MUT_RATE_SOURCE 1 # 1 = Mutation rates determined by environment.
+ # 2 = Mutation rates inherited from parent.
+
+### 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
+ # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
+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?
+MERIT_BONUS_INST 0 # in BASE_MERIT_METHOD 6, this sets which instruction counts (-1=none, 0= 1st in INST_SET.)
+MERIT_BONUS_EFFECT 0 # in BASE_MERIT_METHOD 6, this sets how much merit is earned per INST (-1=penalty, 0= no effect.)
+FITNESS_VALLEY 0 # in BASE_MERIT_METHOD 6, this creates valleys from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP (0= off, 1=on)
+FITNESS_VALLEY_START 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+FITNESS_VALLEY_STOP 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+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.
+
+### PROMOTER_GROUP ###
+# Promoters
+PROMOTERS_ENABLED 0 # Use the promoter/terminator execution scheme.
+ # Certain instructions must also be included.
+PROMOTER_PROCESSIVITY 1.0 # Chance of not terminating after each cpu cycle.
+PROMOTER_PROCESSIVITY_INST 1.0 # Chance of not terminating after each instruction.
+PROMOTER_BG_STRENGTH 0 # Probability of positions that are not promoter
+ # instructions initiating execution (promoters are 1).
+REGULATION_STRENGTH 1 # Strength added or subtracted to a promoter by regulation.
+REGULATION_DECAY_FRAC 0.1 # Fraction of regulation that decays away.
+ # Max regulation = 2^(REGULATION_STRENGTH/REGULATION_DECAY_FRAC)
+
+### 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_clique_repl/config/default-classic.org
===================================================================
--- development/tests/demes_clique_repl/config/default-classic.org (rev 0)
+++ development/tests/demes_clique_repl/config/default-classic.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_clique_repl/config/environment.cfg
===================================================================
--- development/tests/demes_clique_repl/config/environment.cfg (rev 0)
+++ development/tests/demes_clique_repl/config/environment.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_clique_repl/config/events.cfg
===================================================================
--- development/tests/demes_clique_repl/config/events.cfg (rev 0)
+++ development/tests/demes_clique_repl/config/events.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,19 @@
+# Print all of the standard data files...
+u 0 InjectDemes
+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
+
+u 1:1:end ReplicateDemes deme-age
+
+# 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_clique_repl/config/instset-classic.cfg
===================================================================
--- development/tests/demes_clique_repl/config/instset-classic.cfg (rev 0)
+++ development/tests/demes_clique_repl/config/instset-classic.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_clique_repl/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_clique_repl/expected/data/archive/100-aaaaa.org (rev 0)
+++ development/tests/demes_clique_repl/expected/data/archive/100-aaaaa.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,134 @@
+# Fri Apr 27 10:46:48 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_clique_repl/expected/data/average.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/average.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/average.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Fri Apr 27 10:46:46 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 101.000000 101.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 97 389 0 0 100 100 97 0 0 0 0 0 0 0 0
+20 97 389 0.249357 0 99.985 100 97 3.77358 0 0 0.275 1 -0.180368 0 0
+30 95.6752 387.614 0.246577 0 99.9744 99.4859 95.6752 2.42857 0 0 0.549872 1.97698 -0.104812 0 0
+40 95.96 387.53 0.247284 0 100 99.51 95.96 2.63158 0 0 0.74 2.38 0.245623 -1 0
+50 94.098 385.245 0.243369 0 100 98.5392 94.098 2.61538 0.0196078 0 0.764706 2.43137 0.197623 -1 0
+60 95.1917 386.098 0.246002 0 100.01 98.9689 95.1917 2.19318 0.00518135 0 0.984456 3.36788 0.128292 -1 0
+70 95.4027 386.175 0.24664 0 100.301 99.1836 95.4027 2.03911 0 0 1.22466 4.33425 0.275768 -1 0
+80 94.73 385.4 0.245118 0 100.11 99.02 94.73 2.22222 0 0 1.34 5.02 0.0306222 -1 0
+90 94.73 385.4 0.245118 0 100.11 99.02 94.73 2.22222 0 0 1.34 5.02 0.0306222 -1 0
+100 95.1649 385.739 0.246248 0 100.144 99.2447 95.1649 1.84314 0.00531915 0 1.60106 6.05851 0.242619 -1 0
Added: development/tests/demes_clique_repl/expected/data/count.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/count.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/count.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida count data
+# Fri Apr 27 10:46:46 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 101 1 101 1 1 1 0 0
+10 3000 100 1 1 0 0 0 0 0 0 100 100 100 0 0
+20 6000 200 53 2 0 0 0 0 0 0 145 100 200 0 0
+30 11730 391 161 2 0 0 0 0 0 0 222 200 391 0 0
+40 3000 100 38 9 0 0 0 0 0 0 14 100 100 0 0
+50 3000 102 39 9 0 0 0 2 0 0 14 100 102 0 0
+60 5760 193 88 21 0 0 0 1 0 0 56 100 193 0 0
+70 10950 365 179 24 0 0 0 0 0 0 132 190 365 0 0
+80 3000 100 45 26 0 0 0 0 0 0 9 100 100 0 0
+90 3000 100 45 26 0 0 0 0 0 0 9 100 100 0 0
+100 5610 188 102 33 0 0 0 1 0 0 40 100 188 0 0
Added: development/tests/demes_clique_repl/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_clique_repl/expected/data/detail-100.pop (rev 0)
+++ development/tests/demes_clique_repl/expected/data/detail-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,119 @@
+#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 36 417 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+236 1 1 4 6 100 97 388 0.25 52 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccicccccccccccccccccccccccccccccutycasvab
+487 242 3 4 5 100 97 385 0.251948 79 -1 3 rucavcccccccccccccpccccccccccccccmccccccjcccccccccccccccccccccccccccccccccvcccccccccccccccqutycasvab
+91 1 1 4 15 100 97 388 0.25 26 -1 1 rucavccccccccccncccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+302 255 2 3 4 100 97 382 0.253927 65 -1 2 rucavcccbccczcccccccccccccccccccccccccgcctccccccccccccccccccccccccccccccccccccmcccccccxccccutycasvab
+327 1 2 3 4 100 97 388 0.25 65 -1 1 rucavcccccccccccccccmccccccccccccccccccccccccrcccccccccccccccccccccccccccccccccccccccccccccutycasvab
+285 128 2 3 4 99 96 380 0.252632 64 -1 2 rucavctccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccfcccccccccccccccccccccccutycasvab
+337 1 1 3 4 100 97 388 0.25 66 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccutycasvab
+200 105 1 3 9 100 97 387 0.250646 39 -1 2 rucavcccccccccccccccccccccccccccccccccccccccxccccscpcccccccccccccccccccccccccccccccccccccccutycasvab
+454 1 1 3 4 100 97 389 0.249357 78 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccrcccccccccccccccccccccccccccccccccccccutycasvab
+93 1 1 3 11 100 97 388 0.25 26 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccckcccccccccccccccccccccccccccccccccccccccccutycasvab
+383 144 1 3 4 100 96 386 0.248705 77 -1 3 rucavcccccccccccceqcccccccccjcccccccccccccccccnccccccccccccccccccccccccccccccccccccccccccccutycasvab
+122 1 1 2 9 100 97 388 0.25 27 -1 1 rucavcccccccccccccccccccccccccccccmccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+469 315 4 2 3 101 97 388 0.25 78 -1 4 rucavcccccccccccceqcccccnmccjcicccccccccccccccccccccccccccccncccccchccccccccccccccccccccccccutycasvab
+359 56 2 2 3 100 97 388 0.25 67 -1 2 rucavccccccccccccccccchcccccccccccccccccccccccccccccccccccccpccccccccccchccccccccccccccccccutycasvab
+227 1 2 2 10 100 97 388 0.25 39 -1 1 rucavcccccccccccccccccccccccccclccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccutycasvab
+185 25 1 2 5 100 0 0 0 39 -1 2 rucxvcccccmccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+223 1 1 2 5 100 49 330 0.148485 39 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutytasvab
+54 3 28 2 5 100 0 0 0 23 -1 2 cccccccccccccccccccccccccccccccccccccccccutyxasvabrucavcccccccccccccccccccccuccccccccccccccccccccccc
+314 1 1 2 4 100 97 388 0.25 65 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccccccccccutycasvab
+309 232 2 2 3 100 97 383 0.253264 65 -1 3 rucavctccccccccccccccccccccccccjccccgccccccccccccccccccccccccccccccccwcccccccccccccccccccccutycasvab
+103 1 1 2 10 100 97 388 0.25 27 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccczccccccccccccccccccccccccccccccutycasvab
+161 1 1 2 10 101 98 390 0.251282 29 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccctcutycasvab
+147 48 1 2 11 100 97 387 0.250646 28 -1 2 rucavccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccmcjccccccccccccrccccccccccutycasvab
+280 59 2 2 3 102 99 395 0.250633 63 -1 3 aarucavccccccccccccccccccccccccccccccccwcccccccccccccccccccccncccccccccccccccccccccccccccccccutycasvab
+77 1 3 2 5 100 0 0 0 26 -1 1 rucadcccccccccccccccccccccccccccchcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasiab
+496 2 2 2 3 99 86 373 0.230563 79 -1 2 rucavccccccccccccccccccccccccccccyccccccccccccccccccccccccccccccccccccccccccccvcccccccccccutycasvab
+491 341 1 2 3 100 97 388 0.25 79 -1 2 rucavcccccwcccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+58 1 1 2 7 100 97 388 0.25 25 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccczccccccccccccccccccccccccccccccccccccutycasvab
+386 231 4 2 3 100 0 0 0 77 -1 3 rucavccccccacccccwccccccccccccccccccccccccmccccccccicccccccscvcccccccccccchccccccccccccccccutycasvao
+329 180 2 2 3 100 88 376 0.234043 65 -1 3 rucavccccccccccccccccccccccccccccqccucccccccccccccccccccccccccccccccqccccqcccccccccccccccccutycasvab
+82 1 2 2 8 100 97 388 0.25 26 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccckcccccccbcccccccccccccccccccccccccccccccutycasvab
+46 1 2 2 12 100 97 387 0.250646 14 -1 1 rucavcccccccclccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccccccccccutycasvab
+308 1 1 2 4 100 97 388 0.25 65 -1 1 rucavccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+297 82 1 2 4 100 97 387 0.250646 65 -1 2 rucavcccccccccccccccvcccccccccccccccccccccccccccccckcccccccbcccccccccccccccccccccccccccccccutycasvab
+325 239 2 2 4 100 97 387 0.250646 65 -1 2 rucavccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccqcccccccccccccccccccccccchutycasvab
+114 1 1 2 9 100 97 388 0.25 27 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccjccccccccccccccccccccccccccccccccccccccccccutycasvab
+368 275 1 2 4 99 0 0 0 68 -1 3 rucavccccccccccncccccsccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+281 1 1 1 3 101 98 393 0.249364 63 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+382 233 1 1 3 101 0 0 0 77 -1 4 rucavcccccccccccccccccccccuccccccccccccccccccccccccccccccckcccccccccchcccccccccccccccccccfccutycasvab
+365 267 5 1 3 105 0 0 0 67 -1 4 aaaarucavcccclcccccccccccccccccccccccccfcwccccmccccccccccpccccccncccccceccccccccccccccccccccccccutycasvag
+47 1 1 1 6 100 97 388 0.25 14 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclccccccccccccccccccccccccutycasvab
+318 270 5 1 3 101 0 0 0 65 -1 2 aarucavccccccccccccccccccccccccccccccccccccccccccccccccccccfctccccccccccccccccwcccccccccccccutycasvab
+389 119 2 1 3 100 0 0 0 77 -1 2 rucavccccccccccccccccccccccccfccccpccccccccccccccccccccccccccccccccccccccccccccwcccccccccccutycasvab
+258 1 3 1 3 100 0 0 0 53 -1 1 rucavocccccccccccccccchccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycaivab
+524 496 1 1 1 99 0 0 0 91 -1 3 rucavccccccccccccccccccccccccccccyscccccccccccccccccccccccccccccccccccccccccccvcccccccccccutycasvab
+525 1 1 1 1 100 0 0 0 91 -1 1 rucavccccccccccccccccccccccccccccccccccpcccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+526 454 2 1 1 101 0 0 0 91 -1 2 rueavccccccccccccccccccccccccccccccccccccccccccccccccrcccccccccccccccccccoccccccccccccccccccutycasvab
+527 227 1 1 1 100 0 0 0 91 -1 2 rucavcccccccccchccccccccccccccclccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccutycasvab
+528 103 1 1 1 101 0 0 0 91 -1 2 rucavccccccqccccccccccccccccccccccccccccccccccccccccccccccccczccccccccccccccccccccccccccccccutycasvab
+529 1 1 1 1 100 0 0 0 91 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccaccccccccccccccccccccccccccccutycasvab
+530 337 1 1 1 99 0 0 0 91 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccutycasvab
+531 58 2 1 1 100 0 0 0 92 -1 2 rucavcccccccuccccccccccccccccccccccccccccccccccccccccczccccccccccccccccccccccccccccccccccccutycasvsb
+532 93 1 1 1 100 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccckcccccccccccccccccccccclccccccccccccccccccutycasvab
+533 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccwccccccccccccccccccccccutycasvab
+534 318 1 1 1 102 0 0 0 92 -1 3 aarucavkccccccccccccccccccccccccccccccccccccccccccccccccccccfctccccccccccccccccwcccccccccccccutycasvab
+535 302 1 1 1 100 0 0 0 92 -1 3 rucavcccbccczcccccccccccccccccccccccccgcctccccccccccccccccccccccccccccccocccccmcccccccxccccutycasvab
+536 491 4 1 1 102 0 0 0 92 -1 3 aarucavcccccwcccccccccccccccccccccacccccccxccccccckccccccccccccccccccccccccccccccccccccccccccutycasvab
+537 309 2 1 1 102 0 0 0 92 -1 4 raucavctccccccccccccccccccccccccjccccgccccccccccccccccccccccccccccccccwcccccccjccccccccccccccutycasvab
+538 1 1 1 1 100 0 0 0 92 -1 1 rucavccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+539 1 2 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccsccccccceccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+540 1 2 1 1 100 0 0 0 92 -1 1 rucavxcccccccccccccccccccccccccccccccccccccccccccccccccucccccccccccccccccccccccccccccccccccutycasvab
+541 1 1 1 1 100 0 0 0 92 -1 1 rucavcnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+542 314 3 1 1 100 0 0 0 92 -1 2 rucavccccfcccccccccccccccccccpccccccccccccccccccccccccccccccccccccccccicqccccccccccccccccccutycasvab
+543 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccxcccccutycasvab
+544 496 2 1 1 98 0 0 0 92 -1 3 rucavccccccccccccxcccccccccccccccycccccccccccccccccccccccccccccccccccccccccccvcccccccccccutycasvab
+545 327 1 1 1 100 0 0 0 92 -1 2 rucavccoccccccccccccmccccccccccccccccccccccccrcccccccccccccccccccccccccccccccccccccccccccccutycasvab
+546 285 1 1 1 99 0 0 0 92 -1 3 rucavctccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccfccccccccccpccccccccccccutycasvab
+547 359 2 1 1 100 0 0 0 92 -1 3 rucavccccccccccccccccchcccccccccccccccccccccccccccccccccccccmccccccccccchcccccccccccccccaccutycasvab
+548 227 1 1 1 101 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccclccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccutyncasvab
+549 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccyccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+550 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+551 147 1 1 1 100 0 0 0 92 -1 3 rucavccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccmcjccccccccccccrccccccccccutycasvtb
+552 200 3 1 1 100 0 0 0 92 -1 3 rucaycccccccccccccccccccccccccccccccccccccccxccccscpcckccccccccccccrcccccccccccccccccccccccutycasvab
+553 47 2 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccwcccccccccclccccccccccccccccccccccccueycasvab
+554 280 7 1 1 104 0 0 0 92 -1 4 aaaarucavcccccccccccccccccccccccctcecccccwccccoccccccccccccccccncccccccccjcccccccccccccccccccccntycasvab
+555 309 1 1 1 101 0 0 0 92 -1 4 raucavctccccccccccccccccccccccccjccccgccccccccccccccccccccccccccccccccwcccccccccccccccccccccutycasvab
+556 122 2 1 1 99 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccmcccccccvccccccccccccccccccccccccccccccccccccccccccccccccutycsvab
+557 122 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccoccccccccccccmccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+558 1 2 1 1 99 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccyccccutycasvab
+559 359 2 1 1 100 0 0 0 93 -1 3 rucavccccccccccccccccchccqccccccccccccccccccccccccccccccccccpwcccccccccchccccccccccccccccccutycasvab
+560 1 1 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+561 58 1 1 1 100 0 0 0 93 -1 2 rucavccccccccfcccccccccccccccccccccccccccccccccccccccczccccccccccccccccccccccccccccccccccccutycasvab
+562 161 1 1 1 101 0 0 0 93 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccccccccccccctcutycasvab
+563 281 2 1 1 101 0 0 0 93 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccccgcccccccccccutycasvab
+564 314 1 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccoccccccccccccciccccccccccccccccccccutycasvab
+565 103 1 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccyccccccccccczccccccccccccccccccccccccccccccutycasvab
+566 469 1 1 1 101 0 0 0 93 -1 5 rucavcccccccccccceqcccccnmccjcicccccccccccccccccccccccccccccncccccchccccccccccccccccccccccccuwycasvab
+567 491 2 1 1 102 0 0 0 93 -1 3 aarucavcccccwcccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+568 147 2 1 1 99 0 0 0 93 -1 3 rucavccccccccccccdcccccccccccccccccccbccccccccccccccccccccccccccmcjccccccccccccrccccccccccutycasvab
+569 1 2 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccyccccccccccccccccccccccccccztycasvab
+570 280 5 1 1 104 0 0 0 93 -1 4 aaaarucavcccccccccccccccccccccccccccccccwccccccccccccccccccccgcnccccccccccccccccccccccccccclcccutycasvab
+571 382 2 1 1 100 0 0 0 93 -1 5 rucavcccccccccccccccccccccucccccccccccccccccccccccccvcccckcccccccccchcccccccccccccccccccfccutycasvab
+572 1 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccutycasvab
+573 329 2 1 1 101 0 0 0 93 -1 4 rucavcccccccccgccccccccccccccccccqccucccccccccccccccccccccccccccccccqccccqccccccccccciccccccutycasvab
+574 1 2 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccccccctcccccccccccutycasvab
+575 161 1 1 1 101 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccrccccccccccccccccccccccccccccccccccccccccccccccccccccccccctcutycasvab
+576 1 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccycccccccccccccccccccccccccccccutycasvab
+577 469 1 1 1 101 0 0 0 93 -1 5 rucavcccccccccccceqcccccnmccjcicccccccccccccccccccccccccccccncccccchzcccccccccccccccccccccccutycasvab
+578 383 1 1 1 100 0 0 0 93 -1 4 rucavcccccccecccceqcccccccccjcccccccccccccccccnccccccccccccccccccccccccccccccccccccccccccccutycasvab
+579 329 2 1 1 100 0 0 0 94 -1 4 rucavccccccccycccccccccccccccccccqccucccccncccccccccccccccccccccccccqccccqcccccccccccccccccutycasvab
+580 223 26 1 1 100 0 0 0 100 -1 2 cccccccccccccccccccccccccccccccccccccccccutytasvabrucavccccccccccccccccccccccccccccccccccccccccccccc
Added: development/tests/demes_clique_repl/expected/data/dominant.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/dominant.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/dominant.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Fri Apr 27 10:46:46 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 100 0 0 0 0 0 1 100-aaaaa
+20 97 389 0.249357 0.00257069 100 100 97 145 0 0 0 0 0.249357 1 100-aaaaa
+30 97 389 0.249357 0.00257069 100 100 97 206 0 0 0 0 0.250646 1 100-aaaaa
+40 97 389 0.249357 0.00257069 100 100 97 39 0 0 0 0 0.250646 1 100-aaaaa
+50 97 389 0.249357 0.00257069 100 100 97 39 0 0 0 0 0.250646 1 100-aaaaa
+60 97 389 0.249357 0.00257069 100 100 97 58 0 0 0 0 0.251948 1 100-aaaaa
+70 97 389 0.249357 0.00257069 100 100 97 84 0 0 0 0 0.252632 1 100-aaaaa
+80 97 389 0.249357 0.00257069 100 100 97 26 0 0 0 0 0.253927 1 100-aaaaa
+90 97 389 0.249357 0.00257069 100 100 97 26 0 0 0 0 0.253927 1 100-aaaaa
+100 97 389 0.249357 0.00257069 100 100 97 36 0 0 0 0 0.253927 1 100-aaaaa
Added: development/tests/demes_clique_repl/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_clique_repl/expected/data/historic-100.pop (rev 0)
+++ development/tests/demes_clique_repl/expected/data/historic-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,46 @@
+#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
+
+180 86 1 0 3 100 97 387 0.250646 38 79 2 rucavccccccccccccccccccccccccccccqcccccccccccccccccccccccccccccccccccccccqcccccccccccccccccutycasvab
+17 1 1 0 8 100 97 388 0.25 13 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccvcccccccccccccccccccccccccccccutycasvab
+231 17 3 0 3 100 97 386 0.251295 51 79 2 rucavcccccccccccccccccccccccccccccccccccccmccccccccicccccccccvcccccccccccchccccccccccccccccutycasvab
+341 1 1 0 1 100 0 0 0 66 79 1 rucavcccccccccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+2 1 1 0 28 99 96 385 0.249351 12 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+270 1 1 0 1 100 97 388 0.25 53 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccwcccccccccccccutycasvab
+128 1 2 0 4 100 97 385 0.251948 27 79 1 rucavctcccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+59 22 1 0 3 100 97 387 0.250646 25 79 2 rucavccccccccccccccccccccccccccccccccwcccccccccccccccccccccncccccccccccccccccccccccccccccccutycasvab
+119 1 1 0 7 100 97 388 0.25 27 79 1 rucavccccccccccccccccccccccccfcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+232 128 1 0 1 100 97 385 0.251948 52 79 2 rucavctcccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccccacccccccccccccccccccccutycasvab
+41 1 1 0 8 100 97 388 0.25 14 79 1 rucavcccccccccccccccccccccccccccccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+275 91 1 0 1 99 0 0 0 54 79 2 rucavccccccccccnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+255 1 4 0 1 100 97 384 0.252604 52 79 1 rucavcccbcccccccccccccccccccccccccccccgcctccccccccccccccccccccccccccccccccccccccccccccxccccutycasvab
+56 1 1 0 4 100 97 388 0.25 25 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccpccccccccccccccccccccccccccccccutycasvab
+242 41 1 0 2 100 97 388 0.25 52 79 2 rucavcccccccccccccccccccccccccccccccccccjcccccccccccccccccccccccccccccccccccccccccccccccccqutycasvab
+239 1 1 0 2 100 97 389 0.249357 52 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchutycasvab
+144 36 2 0 9 100 96 387 0.248062 28 79 2 rucavcccccccccccceqcccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+315 144 1 0 1 100 0 0 0 65 79 3 rucavcccccccccccceqcccccccccjcccccccccccccccccccccccccccccccnccccccccccccccccccccccccccccccutycasvab
+233 216 1 0 3 100 97 387 0.250646 52 79 3 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccckcccccccccchcccccccccccccccccccfccutycasvab
+216 15 1 0 4 100 97 388 0.25 39 79 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccckcccccccccchccccccccccccccccccccccutycasvab
+267 59 5 0 1 103 100 396 0.252525 53 79 3 aarucavccccccccccccccccccccccccccccccccwccccmccccccccccpccccccncccccceccccccccccccccccccccccccutycasvab
+48 1 3 0 1 100 0 0 0 15 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccmcjccccccccccccrccccccccccutycasvab
+86 1 1 0 1 100 0 0 0 26 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccccccccccccutycasvab
+3 1 2 0 1 100 0 0 0 12 39 1 rucavcccccccccccccccccccccuccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutyxasvab
+36 1 1 0 1 100 0 0 0 14 39 1 rucavcccccccccccccccccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+25 1 1 0 3 100 97 388 0.25 14 39 1 rucavcccccmccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+105 1 2 0 1 100 0 0 0 27 39 1 rucavcccccccccccccccccccccccccccccccccccccccxccccccpcccccccccccccccccccccccccccccccccccccccutycasvab
+15 1 1 0 1 100 97 389 0.249357 13 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccccccccutycasvab
+22 1 1 0 2 100 97 388 0.25 13 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccncccccccccccccccccccccccccccccccutycasvab
Added: development/tests/demes_clique_repl/expected/data/resource.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/resource.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/resource.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Fri Apr 27 10:46:46 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_clique_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/stats.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/stats.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Fri Apr 27 10:46:46 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.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0
+20 2.44249e-15 0.56231 0.562358 0.826245 0.826353 0 1.66246 0 0 0 0
+30 0.0112117 0.562277 0.562358 0.826168 0.826353 0 3.04105 0 0 0 0
+40 0.00834928 0.562358 0.562358 0.826353 0.826353 -190 2.83844 0 0 0 0
+50 0.0243085 0.562358 0.562358 0.826353 0.826353 1 2.87929 0 0 0 0
+60 0.0135479 0.562391 0.562358 0.826428 0.826353 1 3.62204 0 0 0 0
+70 0.0109569 0.563311 0.562358 0.828535 0.826353 0 4.34853 0 0 0 0
+80 0.0171464 0.562706 0.562358 0.827149 0.826353 -288 3.34218 0 0 0 0
+90 0.0171464 0.562706 0.562358 0.827149 0.826353 0 3.34218 0 0 0 0
+100 0.0125471 0.562812 0.562358 0.827393 0.826353 1 4.12978 0 0 0 0
Added: development/tests/demes_clique_repl/expected/data/tasks.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/tasks.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/tasks.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Fri Apr 27 10:46:46 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_clique_repl/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/tasks_exe.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/tasks_exe.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Fri Apr 27 10:46:46 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_clique_repl/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/tasks_quality.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Fri Apr 27 10:46:46 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_clique_repl/expected/data/time.dat
===================================================================
--- development/tests/demes_clique_repl/expected/data/time.dat (rev 0)
+++ development/tests/demes_clique_repl/expected/data/time.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,18 @@
+# Avida time data
+# Fri Apr 27 10:46:46 2007
+# 1: update
+# 2: avida time
+# 3: average generation
+# 4: num_executed?
+
+0 0.000000 0.000000 30
+10 0.0927835 0 3000
+20 0.195876 1 6000
+30 0.299886 1.97698 11730
+40 0.40449 2.38 3000
+50 0.5087 2.43137 3000
+60 0.613802 3.36788 5760
+70 0.718839 4.33425 10950
+80 0.823656 5.02 3000
+90 0.929219 5.02 3000
+100 1.03419 6.05851 5610
Added: development/tests/demes_clique_repl/test_list
===================================================================
--- development/tests/demes_clique_repl/test_list (rev 0)
+++ development/tests/demes_clique_repl/test_list 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_germline/config/avida.cfg
===================================================================
--- development/tests/demes_germline/config/avida.cfg (rev 0)
+++ development/tests/demes_germline/config/avida.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,257 @@
+#############################################################################
+# 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
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+ # 3 = Experimental CPU
+ # 4 = Gene Expression CPU
+
+### 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
+
+### DEME_GROUP ###
+# Demes and Germlines
+NUM_DEMES 100 # Number of independent groups in the population.
+DEMES_USE_GERMLINE 1 # Whether demes use a distinct germline; 0=off
+DEMES_HAVE_MERIT 0 # Whether demes have merit; 0=no
+GERMLINE_COPY_MUT 0.0075 # Prob. of copy mutations occuring during
+ # germline replication.
+GERMLINE_REPLACES_SOURCE 0 # Whether the source germline is updated
+ # on replication; 0=no.
+GERMLINE_RANDOM_PLACEMENT 0 # Whether the seed for a germline is placed
+ # randomly within the deme; 0=no.
+MAX_DEME_AGE 40 # The maximum age of a deme (in updates) to be
+ # used for age-based replication (default=500).
+
+### 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)
+ # 9 = Largest energy used in entire population
+ # 10 = Largest energy used in neighborhood
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
+ALLOW_PARENT 1 # Allow births to replace the parent organism?
+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)
+META_COPY_MUT 0.0 # Prob. of copy mutation rate changing (per gen)
+META_STD_DEV 0.0 # Standard deviation of meta mutation size.
+MUT_RATE_SOURCE 1 # 1 = Mutation rates determined by environment.
+ # 2 = Mutation rates inherited from parent.
+
+### 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
+ # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
+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?
+MERIT_BONUS_INST 0 # in BASE_MERIT_METHOD 6, this sets which instruction counts (-1=none, 0= 1st in INST_SET.)
+MERIT_BONUS_EFFECT 0 # in BASE_MERIT_METHOD 6, this sets how much merit is earned per INST (-1=penalty, 0= no effect.)
+FITNESS_VALLEY 0 # in BASE_MERIT_METHOD 6, this creates valleys from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP (0= off, 1=on)
+FITNESS_VALLEY_START 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+FITNESS_VALLEY_STOP 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+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.
+
+### PROMOTER_GROUP ###
+# Promoters
+PROMOTERS_ENABLED 0 # Use the promoter/terminator execution scheme.
+ # Certain instructions must also be included.
+PROMOTER_PROCESSIVITY 1.0 # Chance of not terminating after each cpu cycle.
+PROMOTER_PROCESSIVITY_INST 1.0 # Chance of not terminating after each instruction.
+PROMOTER_BG_STRENGTH 0 # Probability of positions that are not promoter
+ # instructions initiating execution (promoters are 1).
+REGULATION_STRENGTH 1 # Strength added or subtracted to a promoter by regulation.
+REGULATION_DECAY_FRAC 0.1 # Fraction of regulation that decays away.
+ # Max regulation = 2^(REGULATION_STRENGTH/REGULATION_DECAY_FRAC)
+
+### 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_germline/config/default-classic.org
===================================================================
--- development/tests/demes_germline/config/default-classic.org (rev 0)
+++ development/tests/demes_germline/config/default-classic.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_germline/config/environment.cfg
===================================================================
--- development/tests/demes_germline/config/environment.cfg (rev 0)
+++ development/tests/demes_germline/config/environment.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_germline/config/events.cfg
===================================================================
--- development/tests/demes_germline/config/events.cfg (rev 0)
+++ development/tests/demes_germline/config/events.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,19 @@
+# Print all of the standard data files...
+u 0 InjectDemes
+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
+
+u 1:1:end ReplicateDemes deme-age
+
+# 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_germline/config/instset-classic.cfg
===================================================================
--- development/tests/demes_germline/config/instset-classic.cfg (rev 0)
+++ development/tests/demes_germline/config/instset-classic.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_germline/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_germline/expected/data/archive/100-aaaaa.org (rev 0)
+++ development/tests/demes_germline/expected/data/archive/100-aaaaa.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,134 @@
+# Fri Apr 27 10:56: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_germline/expected/data/average.dat
===================================================================
--- development/tests/demes_germline/expected/data/average.dat (rev 0)
+++ development/tests/demes_germline/expected/data/average.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Fri Apr 27 10:56:49 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 101.000000 101.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 97 389 0 0 100 100 97 0 0 0 0 0 0 0 0
+20 97 389 0.249357 0 100.015 100 97 3.57143 0 0 0.285 1 0.128671 0 0
+30 95.7848 387.223 0.247028 0 100.005 99.4987 95.7848 2.2067 0 0 0.594937 1.98734 0.123768 0 0
+40 96.51 364.63 0 0 100 100 96.51 3.125 0 0 0.01 0 0 -1 0
+50 96.51 364.63 0 0 100 100 96.51 3.125 0 0 0.01 0 0 -1 0
+60 96.6477 376.104 0.240143 0 100.01 100 96.6477 2.29762 0 0 0.279793 0.963731 -0.0994681 -1 0
+70 95.587 379.742 0.242971 0 100 99.4538 95.587 2.06742 0 0 0.521739 1.92935 -0.0806159 -1 0
+80 96.78 341.19 0 0 100 100 96.78 2.27273 0 0 0 0 0 -1 0
+90 96.78 341.19 0 0 100 100 96.78 2.27273 0 0 0 0 0 -1 0
+100 96.5745 362.968 0.232594 0 100.016 100 96.5745 2 0 0 0.265957 0.93617 -0.0339842 -1 0
Added: development/tests/demes_germline/expected/data/count.dat
===================================================================
--- development/tests/demes_germline/expected/data/count.dat (rev 0)
+++ development/tests/demes_germline/expected/data/count.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida count data
+# Fri Apr 27 10:56:49 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 101 1 101 1 1 1 0 0
+10 3000 100 1 1 0 0 0 0 0 0 100 100 100 0 0
+20 6000 200 56 2 0 0 0 0 0 0 143 100 200 0 0
+30 11850 395 179 2 0 0 0 0 0 0 212 200 395 0 0
+40 3000 100 32 1 0 0 0 0 0 0 100 100 100 0 0
+50 3000 100 32 1 0 0 0 0 0 0 100 100 100 0 0
+60 5790 193 84 1 0 0 0 0 0 0 140 100 193 0 0
+70 11040 368 178 6 0 0 0 0 0 0 219 193 368 0 0
+80 3000 100 44 2 0 0 0 0 0 0 100 100 100 0 0
+90 3000 100 44 2 0 0 0 0 0 0 100 100 100 0 0
+100 5640 188 94 5 0 0 0 0 0 0 137 100 188 0 0
Added: development/tests/demes_germline/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_germline/expected/data/detail-100.pop (rev 0)
+++ development/tests/demes_germline/expected/data/detail-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,111 @@
+#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 72 551 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+590 -1 -1 4 4 100 87 377 0.230769 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccyccccccccccccccccutycasvab
+623 -1 -1 4 4 100 97 388 0.25 79 -1 0 rucavccccccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+620 -1 -1 3 3 100 97 388 0.25 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccutycasvab
+571 -1 -1 2 2 100 0 0 0 79 -1 0 ruyavcccccccccccccsccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccutycasvab
+613 -1 -1 2 2 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccoccccccccccutycasvab
+577 -1 -1 2 3 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccpcccccccscccccccccccccccccccccccccccccccccccccccccutycasvab
+584 -1 -1 2 2 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccczcccccctccutycasvab
+585 -1 -1 2 2 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccczcrcccctccutycasvab
+598 -1 -1 2 2 100 0 0 0 79 -1 0 rucavccccccccccccccccccqccccccccccccccccccccccccccccccccccccccccccccccccccccccccczcccccccccutycasvab
+604 -1 -1 2 2 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfccccccccccccccccccccccutycasvab
+612 -1 -1 2 2 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccoccccccccccccccccccccccccccccccccccccccccccccccccccccccccmbcccccutycasvab
+611 -1 -1 2 2 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccoccccccccccccccccccccccccccccccccccccccccccccccccccccccccmccccccutycasvab
+605 -1 -1 2 2 100 0 0 0 79 -1 0 rucavcccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccfccccccucccccccccccccccutycasvab
+603 -1 -1 2 2 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+609 -1 -1 2 2 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccocccccutycasvab
+587 -1 -1 2 2 100 0 0 0 79 -1 0 rucavccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+591 -1 -1 2 2 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccycccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+615 -1 -1 2 2 100 0 0 0 79 -1 0 rucavccccccccccccucccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+573 -1 -1 1 1 100 0 0 0 79 -1 0 rucavcccccccccccccccuccccccccccccccccncccccccccccccccccccdcccccccccccccccccccccccccccccccccutycasvab
+574 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccciccccccccccccutycasvab
+575 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccqcccccccccccccccccccccccccecccccccccccccccccccccccccciccccccccccccutycasvab
+579 -1 -1 1 1 100 0 0 0 79 -1 0 hucavcccccccccccccccccccccccxccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+580 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccncccccccccccutycasvab
+581 -1 -1 1 1 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccccutycasvab
+583 -1 -1 1 1 100 0 0 0 79 -1 0 rucabcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclcccccutycasvab
+588 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccdcccjcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccstycasvab
+589 -1 -1 1 1 100 0 0 0 79 -1 0 rucavcccwccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+592 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccccccccccutycasvab
+593 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccclccccccutycasvab
+594 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccchccccccccccccccccccccccccccccccccccccccccccccccccccccccckccutycasveb
+597 -1 -1 1 1 100 0 0 0 79 -1 0 rupavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+602 -1 -1 1 1 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccxcccccccccccccccccccccccutycasvab
+586 -1 -1 1 2 100 0 0 0 79 -1 0 rucavccccccccccccccgccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+606 -1 -1 1 1 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccczcccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+607 -1 -1 1 1 100 0 0 0 79 -1 0 rqcavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+608 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccutycasvab
+610 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccocccccutybasvab
+617 -1 -1 1 1 100 0 0 0 79 -1 0 rucavcccccnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+256 -1 -1 1 4 100 0 0 0 39 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycaswab
+619 -1 -1 1 1 100 0 0 0 79 -1 0 rucavcccccccccccccccccccccccccccccccccccccctcccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+621 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccncccccccccccccccccccccccccccccutycasvab
+614 -1 -1 1 2 100 0 0 0 79 -1 0 rxcavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+622 -1 -1 1 1 100 0 0 0 79 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvtb
+624 586 1 1 1 100 0 0 0 91 -1 1 rucavccccccccccccccgccycgccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+625 1 1 1 1 100 0 0 0 91 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchcccccccutycasvab
+626 581 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccucccccccccccutycasvab
+627 608 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccueycasvab
+628 1 2 1 1 99 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccutycasvab
+629 1 2 1 1 100 0 0 0 92 -1 1 rucavccccckccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasval
+630 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+631 606 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccczccccccccccccccccccccccchcccccccccccccccccccccccccutycasvab
+632 1 3 1 1 99 0 0 0 92 -1 1 rucavccccccccdccccccvcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+633 1 1 1 1 101 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfccccccccccccccccccccccutycasvab
+634 580 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccncccccccccccutylasvab
+635 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccvccccccccccccccccutycasvab
+636 587 1 1 1 99 0 0 0 92 -1 1 rucavccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+637 1 2 1 1 100 0 0 0 92 -1 1 rucavccczccccccccccccccccccccccccccccccccccccqcccccccccccccccccccccccccccccccccccccccccccccutycasvab
+638 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclccccccccccccccccccccccutycasvab
+639 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccaccccccccccccccccccutycasvab
+640 1 1 1 1 101 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccccccccccccccccccccutycasvab
+641 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccutycasvab
+642 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccctcccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+643 1 2 1 1 101 0 0 0 92 -1 1 rucavccccccccccchcccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccutycasvab
+644 574 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccctcccccccccccccccecccccccccccccccccccccccccciccccccccccccutycasvab
+645 617 1 1 1 100 0 0 0 92 -1 1 rucavcccccnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccutycasvab
+646 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccutycasvab
+647 621 4 1 1 99 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccgccccccccccccccccccccscccccnccccccccccccccyccccccccccccccutycasva
+648 1 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccutycasvab
+649 575 2 1 1 100 0 0 0 93 -1 1 zucavccccccccccccccccccccqcccccccccccccccccccccccccecccccccccccciccccccccccccciccccccccccccutycasvab
+650 1 2 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccucccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+651 620 1 1 1 101 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccutycasvab
+652 1 1 1 1 100 0 0 0 93 -1 1 rucavccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+653 1 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccccccccccccccccjcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+654 1 1 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccckcccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+655 1 2 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccctccutycasvab
+656 619 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccccccpccccccccccccccccccctcccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+657 1 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+658 1 1 1 1 100 0 0 0 93 -1 1 rucavccccicccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+659 1 2 1 1 100 0 0 0 93 -1 1 rucavcccccccccccrccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcutycasvab
+660 1 3 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccocccccmccccccccccccccccccutyccsvab
+661 1 1 1 1 101 0 0 0 93 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccutycasvab
+662 602 1 1 1 100 0 0 0 93 -1 1 rucadcccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccxcccccccccccccccccccccccutycasvab
+663 1 1 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccuccccccccccccccccccccccccccccccccccccccccccutycasvab
+664 1 3 1 1 100 0 0 0 93 -1 1 rucavcpcccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutkcasvab
+665 592 2 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccoccccccccccccfcccccccccccccccccccccccccccccccciccccccccccccccccccccutycasvab
+666 593 1 1 1 100 0 0 0 93 -1 1 rucafccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccclccccccutycasvab
+667 1 2 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccccccutycajvab
+668 589 4 1 1 102 0 0 0 93 -1 1 aarucavccuwccccccccccccccccpcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+669 573 1 1 1 100 0 0 0 94 -1 1 rucavcccccccccccccccuccccccccccccccccncccccccccccccccccccdcccccccccccccccccccccccciccccccccutycasvab
+670 1 1 1 1 100 0 0 0 94 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccvccccccccccccccccccccutycasvab
+671 1 1 1 1 100 0 0 0 94 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycayvab
+672 1 1 1 1 100 0 0 0 94 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccxccccutycasvab
+673 1 2 1 1 100 0 0 0 94 -1 1 kucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccoccccccccccutycasvab
Added: development/tests/demes_germline/expected/data/dominant.dat
===================================================================
--- development/tests/demes_germline/expected/data/dominant.dat (rev 0)
+++ development/tests/demes_germline/expected/data/dominant.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Fri Apr 27 10:56:49 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 100 0 0 0 0 0 1 100-aaaaa
+20 97 389 0.249357 0.00257069 100 100 97 143 0 0 0 0 0.249357 1 100-aaaaa
+30 97 389 0.249357 0.00257069 100 100 97 194 0 0 0 0 0.251295 1 100-aaaaa
+40 97 389 0.249357 0.00257069 100 100 97 69 0 0 0 0 0 1 100-aaaaa
+50 97 389 0.249357 0.00257069 100 100 97 69 0 0 0 0 0 1 100-aaaaa
+60 97 389 0.249357 0.00257069 100 100 97 102 0 0 0 0 0.251948 1 100-aaaaa
+70 97 389 0.249357 0.00257069 100 100 97 152 0 0 0 0 0.251948 1 100-aaaaa
+80 97 389 0.249357 0.00257069 100 100 97 53 0 0 0 0 0 1 100-aaaaa
+90 97 389 0.249357 0.00257069 100 100 97 53 0 0 0 0 0 1 100-aaaaa
+100 97 389 0.249357 0.00257069 100 100 97 72 0 0 0 0 0.251948 1 100-aaaaa
Added: development/tests/demes_germline/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_germline/expected/data/historic-100.pop (rev 0)
+++ development/tests/demes_germline/expected/data/historic-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_germline/expected/data/resource.dat
===================================================================
--- development/tests/demes_germline/expected/data/resource.dat (rev 0)
+++ development/tests/demes_germline/expected/data/resource.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Fri Apr 27 10:56:49 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_germline/expected/data/stats.dat
===================================================================
--- development/tests/demes_germline/expected/data/stats.dat (rev 0)
+++ development/tests/demes_germline/expected/data/stats.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Fri Apr 27 10:56:49 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.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0
+20 2.44249e-15 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0
+30 0.0093872 0.562374 0.562358 0.82639 0.826353 0 3.29336 0 0 0 0
+40 0 0.562358 0.562358 0.826353 0.826353 -217 1.68364 0 0 0 0
+50 0 0.562358 0.562358 0.826353 0.826353 0 1.68364 0 0 0 0
+60 0.0376539 0.562391 0.562358 0.826428 0.826353 0 2.76094 0 0 0 0
+70 0.0259437 0.562358 0.562358 0.826353 0.826353 0 3.67898 0 0 0 0
+80 0 0.562358 0.562358 0.826353 0.826353 -271 2.44546 0 0 0 0
+90 0 0.562358 0.562358 0.826353 0.826353 0 2.44546 0 0 0 0
+100 0.0695927 0.562408 0.562358 0.826469 0.826353 0 3.41144 0 0 0 0
Added: development/tests/demes_germline/expected/data/tasks.dat
===================================================================
--- development/tests/demes_germline/expected/data/tasks.dat (rev 0)
+++ development/tests/demes_germline/expected/data/tasks.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Fri Apr 27 10:56:49 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_germline/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_germline/expected/data/tasks_exe.dat (rev 0)
+++ development/tests/demes_germline/expected/data/tasks_exe.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Fri Apr 27 10:56:49 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_germline/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_germline/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/demes_germline/expected/data/tasks_quality.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Fri Apr 27 10:56:49 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_germline/expected/data/time.dat
===================================================================
--- development/tests/demes_germline/expected/data/time.dat (rev 0)
+++ development/tests/demes_germline/expected/data/time.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,18 @@
+# Avida time data
+# Fri Apr 27 10:56:49 2007
+# 1: update
+# 2: avida time
+# 3: average generation
+# 4: num_executed?
+
+0 0.000000 0.000000 30
+10 0.0927835 0 3000
+20 0.195876 1 6000
+30 0.299977 1.98734 11850
+40 0.404502 0 3000
+50 0.508118 0 3000
+60 0.611607 0.963731 5790
+70 0.71603 1.92935 11040
+80 0.820832 0 3000
+90 0.924159 0 3000
+100 1.02761 0.93617 5640
Added: development/tests/demes_germline/test_list
===================================================================
--- development/tests/demes_germline/test_list (rev 0)
+++ development/tests/demes_germline/test_list 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_grid_repl/config/avida.cfg
===================================================================
--- development/tests/demes_grid_repl/config/avida.cfg (rev 0)
+++ development/tests/demes_grid_repl/config/avida.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,257 @@
+#############################################################################
+# 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
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+ # 3 = Experimental CPU
+ # 4 = Gene Expression CPU
+
+### 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
+
+### DEME_GROUP ###
+# Demes and Germlines
+NUM_DEMES 100 # Number of independent groups in the population.
+DEMES_USE_GERMLINE 0 # Whether demes use a distinct germline; 0=off
+DEMES_HAVE_MERIT 0 # Whether demes have merit; 0=no
+GERMLINE_COPY_MUT 0.0075 # Prob. of copy mutations occuring during
+ # germline replication.
+GERMLINE_REPLACES_SOURCE 0 # Whether the source germline is updated
+ # on replication; 0=no.
+GERMLINE_RANDOM_PLACEMENT 0 # Whether the seed for a germline is placed
+ # randomly within the deme; 0=no.
+MAX_DEME_AGE 40 # The maximum age of a deme (in updates) to be
+ # used for age-based replication (default=500).
+
+### 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)
+ # 9 = Largest energy used in entire population
+ # 10 = Largest energy used in neighborhood
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
+ALLOW_PARENT 1 # Allow births to replace the parent organism?
+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)
+META_COPY_MUT 0.0 # Prob. of copy mutation rate changing (per gen)
+META_STD_DEV 0.0 # Standard deviation of meta mutation size.
+MUT_RATE_SOURCE 1 # 1 = Mutation rates determined by environment.
+ # 2 = Mutation rates inherited from parent.
+
+### 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
+ # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
+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?
+MERIT_BONUS_INST 0 # in BASE_MERIT_METHOD 6, this sets which instruction counts (-1=none, 0= 1st in INST_SET.)
+MERIT_BONUS_EFFECT 0 # in BASE_MERIT_METHOD 6, this sets how much merit is earned per INST (-1=penalty, 0= no effect.)
+FITNESS_VALLEY 0 # in BASE_MERIT_METHOD 6, this creates valleys from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP (0= off, 1=on)
+FITNESS_VALLEY_START 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+FITNESS_VALLEY_STOP 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+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.
+
+### PROMOTER_GROUP ###
+# Promoters
+PROMOTERS_ENABLED 0 # Use the promoter/terminator execution scheme.
+ # Certain instructions must also be included.
+PROMOTER_PROCESSIVITY 1.0 # Chance of not terminating after each cpu cycle.
+PROMOTER_PROCESSIVITY_INST 1.0 # Chance of not terminating after each instruction.
+PROMOTER_BG_STRENGTH 0 # Probability of positions that are not promoter
+ # instructions initiating execution (promoters are 1).
+REGULATION_STRENGTH 1 # Strength added or subtracted to a promoter by regulation.
+REGULATION_DECAY_FRAC 0.1 # Fraction of regulation that decays away.
+ # Max regulation = 2^(REGULATION_STRENGTH/REGULATION_DECAY_FRAC)
+
+### 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_grid_repl/config/default-classic.org
===================================================================
--- development/tests/demes_grid_repl/config/default-classic.org (rev 0)
+++ development/tests/demes_grid_repl/config/default-classic.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_grid_repl/config/environment.cfg
===================================================================
--- development/tests/demes_grid_repl/config/environment.cfg (rev 0)
+++ development/tests/demes_grid_repl/config/environment.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_grid_repl/config/events.cfg
===================================================================
--- development/tests/demes_grid_repl/config/events.cfg (rev 0)
+++ development/tests/demes_grid_repl/config/events.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,19 @@
+# Print all of the standard data files...
+u 0 InjectDemes
+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
+
+u 1:1:end ReplicateDemes deme-age
+
+# 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_grid_repl/config/instset-classic.cfg
===================================================================
--- development/tests/demes_grid_repl/config/instset-classic.cfg (rev 0)
+++ development/tests/demes_grid_repl/config/instset-classic.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_grid_repl/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_grid_repl/expected/data/archive/100-aaaaa.org (rev 0)
+++ development/tests/demes_grid_repl/expected/data/archive/100-aaaaa.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,134 @@
+# Fri Apr 27 10:46:15 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_grid_repl/expected/data/average.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/average.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/average.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Fri Apr 27 10:46:14 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 101.000000 101.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 97 389 0 0 100 100 97 0 0 0 0 0 0 0 0
+20 97 389 0.249357 0 100.015 100 97 3.57143 0 0 0.285 1 0.128671 0 0
+30 95.7848 387.223 0.247028 0 100.005 99.4987 95.7848 2.2067 0 0 0.594937 1.98734 0.123768 0 0
+40 95.06 387.56 0.245003 0 100.06 98.96 95.06 2.94118 0 0 0.69 2.35 -0.309449 -1 0
+50 93.2157 385.549 0.241012 0 100.059 98 93.2157 2.83333 0.00980392 0 0.715686 2.40196 -0.30434 -1 0
+60 94.9947 387.021 0.245019 0 100.059 98.9305 94.9947 2.14943 0 0 0.914439 3.26738 -0.284372 -1 0
+70 94.7845 386.101 0.244936 0 100.078 98.7414 94.7845 2.02326 0 0 1.10632 4.20115 -0.278358 -1 0
+80 93.5 384.06 0.242536 0 102 97.54 93.5 2.08333 0 0 1.36 4.94 -0.642984 -1 0
+90 91.6863 380.157 0.239586 0 101.961 96.6078 91.6863 2.04 0 0 1.37255 4.98039 -0.608086 -1 0
+100 93.0843 381.73 0.242681 0 102.275 97.5112 93.0843 1.91398 0.00561798 0 1.57303 5.92697 -0.760924 -1 0
Added: development/tests/demes_grid_repl/expected/data/count.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/count.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/count.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida count data
+# Fri Apr 27 10:46:14 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 101 1 101 1 1 1 0 0
+10 3000 100 1 1 0 0 0 0 0 0 100 100 100 0 0
+20 6000 200 56 2 0 0 0 0 0 0 143 100 200 0 0
+30 11850 395 179 2 0 0 0 0 0 0 212 200 395 0 0
+40 3000 100 34 13 0 0 0 0 0 0 15 100 100 0 0
+50 3030 102 36 13 0 0 0 1 0 0 15 100 102 0 0
+60 5610 187 87 21 0 0 0 0 0 0 49 100 187 0 0
+70 10440 348 172 23 0 0 0 0 0 0 124 185 348 0 0
+80 3000 100 48 28 0 0 0 0 0 0 8 100 100 0 0
+90 3060 102 50 28 0 0 0 0 0 0 8 100 102 0 0
+100 5310 178 93 36 0 0 0 1 0 0 40 100 178 0 0
Added: development/tests/demes_grid_repl/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_grid_repl/expected/data/detail-100.pop (rev 0)
+++ development/tests/demes_grid_repl/expected/data/detail-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,110 @@
+#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 32 415 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+493 1 2 4 5 100 97 387 0.250646 78 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccicccccccccccccccccccccccccccccccccicccutycasvab
+525 340 2 4 5 100 97 386 0.251295 79 -1 2 rucavccfccccccccccccccccccccccccckcdcccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+258 176 2 4 6 101 98 390 0.251282 51 -1 2 rucavcccccccgcccccccccccccccccccccpcccccccccccqcccccccccccccccccccccccccccccccccccccccccccccutycasvab
+519 204 2 4 5 100 97 387 0.250646 79 -1 3 rucavcccccccccccccclccccccccmzcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+482 327 1 4 5 100 87 374 0.23262 78 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccctycccccccccccccccccccoccccccccccccccccccccutycasvab
+125 1 3 3 7 100 0 0 0 27 -1 1 rucavccccccccclccccccccccccccwccccccccccccccccccccccccccccccccccccccccccccccccccccyccccccccutycasvab
+381 44 2 3 4 100 97 387 0.250646 67 -1 2 rucavcccccccccccccccccccccccccccccccccccjcccccccccccccccnccccccccccccccccchccccccccccccccccutycasvab
+74 1 1 3 13 101 98 393 0.249364 26 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccchcccccccccccccccccccccccccccccccccccccccutycasvab
+324 1 1 3 5 101 98 393 0.249364 64 -1 1 qrucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+300 176 1 3 4 100 97 385 0.251948 53 -1 2 rucavcctcccccccccccccccccccccccccpcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+554 1 1 3 4 100 97 388 0.25 79 -1 1 rucavcccccccccccccccccccccccccccccccccfccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+273 44 2 3 6 100 97 386 0.251295 52 -1 2 rucavccccccccccccccccccccmccccccccccccccjccccccccccccccccccccccccccccccccccccccwcccccccccccutycasvab
+422 177 1 3 4 99 96 385 0.249351 77 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccchcccccccccccccccccccccccccccccccutycasvab
+113 1 2 3 10 100 97 387 0.250646 27 -1 1 rucavccfccccccccccccccccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccutycasvab
+338 296 1 2 3 100 97 386 0.251295 65 -1 3 rucavccccccccmccccccccjccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccutycasvab
+476 367 1 2 3 101 98 388 0.252577 78 -1 3 rucavccfccgcccccccccccccccxccccccccccccccccccccccccccccccccccccclcccccacccccccccccccdcccccccutycasvab
+310 264 29 2 3 100 0 0 0 63 -1 2 cccccccccccccccccccccccccccccbcccccccccccutyeasvabrucavcccccccccccccccccccmccccccccccccfcccccccccccc
+372 1 1 2 3 100 0 0 0 66 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccuzycasvab
+346 1 1 2 3 99 0 0 0 65 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutyasvab
+363 122 1 2 3 100 97 388 0.25 66 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfccccccccccbccccccccccutycasvab
+359 34 1 2 3 99 96 385 0.249351 66 -1 2 rucavccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+375 92 1 2 3 100 97 388 0.25 66 -1 2 rucavcccccccccccccqcccccccccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccccccccutycasvab
+356 1 3 2 3 99 0 0 0 66 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccucccccccccccccccccccccccccutycabvab
+424 1 2 2 3 100 49 287 0.170732 77 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccmccccccccccccccccccccccccutycmsvab
+431 347 102 2 3 201 0 0 0 77 -1 4 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarucavcccccccccccccchcccccccccccccceccccccccccccccccccciccchccccwcccccccccccccccccccccccccccutycamsvab
+268 1 1 2 3 99 0 0 0 52 -1 1 rucvccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+430 4 3 2 3 101 0 0 0 77 -1 2 rucavcccccccccccccccccccccccccccccccccccccicccccccccccnccccccccccccccccccccccccccccccctcccccutycaevab
+297 1 1 2 3 100 49 288 0.170139 53 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycosvab
+394 142 2 2 3 100 97 385 0.251948 76 -1 2 rucavcccccccccmcciccccccccccwccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccutycasvab
+557 1 1 2 3 100 97 389 0.249357 79 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccutycasvab
+400 263 1 2 4 100 0 0 0 76 -1 3 rucavccccccccccccccccccccccccccccccccccccccccccdcycccccccccccccdcccccccccccccccccccccccccccutycasvab
+277 39 2 2 5 99 96 384 0.25 52 -1 2 rucavcccccccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdutycasvab
+415 54 1 2 4 100 0 0 0 77 -1 2 rucavccccccccccccccccccccccccccccccccccccccccvcccccccclccccccccccccccccccccccccccccccccccccutycasvab
+545 1 2 2 4 100 0 0 0 79 -1 1 rucavchcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccutycasvab
+604 297 24 2 2 100 0 0 0 98 -1 2 cccccccccccccccccccccccccccccccccccccccccutycosvabrucavccccccccccccccccccccccccccccccccccccccccccccc
+443 1 2 1 3 100 0 0 0 77 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccczccccccccccccccccccccccccccccccccccwccccccutycasvab
+267 1 1 1 4 100 97 388 0.25 52 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqccccutycasvab
+541 1 1 1 3 100 0 0 0 79 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccccccccccccccutycasvab
+385 305 1 1 3 99 0 0 0 67 -1 3 ruchvcccccccccccccqccctcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+413 30 3 1 3 100 0 0 0 77 -1 2 rucavcccccccccccccqccccccccccccccccccccccccccccccccccccccccccccccccchccccgcccccccccccccccccutycakvab
+523 274 2 1 3 100 0 0 0 79 -1 2 rucavcccccccccccccvcccccccccccccccccccccccccccccccccyccccccccccccccccccccccccccccccccccdcccutycasvab
+362 1 1 1 3 100 97 388 0.25 66 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccqccccccccccccccccccccccccccccutycasvab
+508 284 1 1 3 100 0 0 0 78 -1 2 rucavccccccccccccccceccccccccccccscccccccccccccccccccccccccccccccpcccccccccccccccccccccccccutycasvab
+386 107 1 1 4 100 97 386 0.251295 67 -1 3 rucavcccccccccccccccccccccccccpccccccccccclccccccpcccccccccccccccccccccccccccccccccccccccccutycasvab
+349 5 27 1 3 100 0 0 0 65 -1 2 cccccccccccccccccccccccccccccccccccccpcccutrcasvabrgcavccccccccccccccccccccccccccccecccccccccccccccc
+198 120 26 1 5 100 0 0 0 38 -1 2 cccccccccccccccccccccccccccccccccccccccccuticasvabrucavcccccccccccccccccccccccccccccccccczcccccccccc
+11 1 1 1 8 100 97 388 0.25 13 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccutycasvab
+255 221 28 1 3 100 0 0 0 49 -1 2 cccccccccccccccccccccccccccccccccccccccccutypasvabrucavcccccccccccccccccccccccccdccccccccccccccccccc
+560 424 26 1 1 100 0 0 0 88 -1 2 ccccccccccccccccmccccccccccccccccccccccccutycmsvabrucavccccccccccccccccccccccccccccccccccccccccccccc
+561 424 26 1 1 100 0 0 0 89 -1 2 ccccccccccccccccmccccccccccccccccccccccccutycmsvabrucavccccccccccccccccccccccccccccccccccccqcccccccc
+562 508 1 1 1 100 0 0 0 91 -1 3 rucavccccccccccccccceccccccccccccscccccccccccccccccccccccccccccccpcccccccccccccccccccccccccutycaqvab
+563 375 2 1 1 100 0 0 0 91 -1 3 rucavcccccccccccccqccccccccccccccccccccccgccccccccccccccrccccccccccccccccccccccccccccccccccotycasvab
+564 363 1 1 1 100 0 0 0 91 -1 3 rucavcccccccccccccccccccnccccccccccccccccccccccccccccccccccccccccccccfccccccccccbccccccccccutycasvab
+565 476 2 1 1 101 0 0 0 91 -1 4 rucavccfccgcccccccccccccccxccccccccccccccccccccccccccccccccccccclcccccacccrcccocccccdcccccccutycasvab
+566 1 2 1 1 100 0 0 0 91 -1 1 ruhavccccccccccccccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccutycasvab
+567 1 1 1 1 100 0 0 0 91 -1 1 rucavcccccccccccccccccccccccnccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+568 394 100 1 1 200 0 0 0 91 -1 3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarucavcccccccccmcciccccccccccwccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccutycasvab
+569 338 1 1 1 100 0 0 0 91 -1 4 rucavccccccccmccccccccjccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccutycasvao
+570 359 2 1 1 100 0 0 0 91 -1 3 rucavcccccccccccccccgccccccccccccbccccccccccccccccccccccccccccccccccccccccccccccccccccccccutlycasvab
+571 11 2 1 1 100 0 0 0 91 -1 2 rucavcccccccccccccccccccccccccccccccccccccoccccccccccccccccmcccccccccccccccccccccccccccccccutycasvaw
+572 557 2 1 1 100 0 0 0 91 -1 2 rucavcccaccacccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccutycasvab
+573 1 2 1 1 100 0 0 0 91 -1 1 rucavccccccccccccccccccceccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccwcccccutycasvab
+574 476 1 1 1 101 0 0 0 91 -1 4 rucavccfccgcccccccccccccccxccccccccccccccccccccccccccccccccccccclcccjcacccccccccccccdcccccccutycasvab
+575 300 2 1 1 100 0 0 0 92 -1 3 rucavmctcccccccccccccccccccccdcccpcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+576 1 2 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccfcccccccccccccccccccccpcccccccccccccccccccccccccccccccutycasvab
+577 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccfcccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+578 113 1 1 1 100 0 0 0 92 -1 2 rucavccfccccccccccccccccccccccccccccccccccccccccccccdcccccccccclcccccccccccccccccccccccccccutycasvab
+579 1 2 1 1 99 0 0 0 92 -1 1 rucvcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccckcccccccutycasvab
+580 267 2 1 1 100 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccxcccccccccccccccccccqccccutycasvab
+581 359 2 1 1 98 0 0 0 92 -1 3 rucavccccccccccccccccccccccccccccbccccccccccccccccccccccccccccccccccccccccycccccccccccccccuycasvab
+582 1 3 1 1 101 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccjcccccclcccccutycasqab
+583 523 2 1 1 100 0 0 0 92 -1 3 rucavcccccccccccccvcccckcccccccccccccxccccccccccccccyccccccccccccccccccccccccccccccccccdcccutycasvab
+584 422 1 1 1 100 0 0 0 92 -1 3 rucavcccccccccccccdcccccccccccccccccccccccccccccccccccccccchcccccccccccccccccccccccccccccccutycasvab
+585 74 3 1 1 101 0 0 0 92 -1 2 rucavccccccccccccdcccccccccccccccccccccccccccccccccxhccccccccccccccccccccckcccccccccccccccccutycasvab
+586 1 2 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccvccccccccccccccccccccccccccutycajvab
+587 557 2 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccccchccccccccmcccccccutycasvab
+588 394 101 1 1 200 0 0 0 92 -1 3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarucavcccccccccmcciccccccccccwccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccrcutycasvab
+589 273 1 1 1 100 0 0 0 92 -1 3 rucavccccccccccccccccccccmccccccccccccycjccccccccccccccccccccccccccccccccccccccwcccccccccccutycasvab
+590 554 2 1 1 101 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccccccfccccccccccccccccccccccccccccyccccccccccccccccvcccccccutycasvab
+591 1 1 1 1 100 0 0 0 92 -1 1 rjcavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+592 338 1 1 1 100 0 0 0 93 -1 4 rucavcccccccsmccccccccjccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccutycasvab
+593 324 3 1 1 101 0 0 0 93 -1 2 qruvavccccjcccccccccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccutycasvab
+594 1 1 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccpccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+595 1 1 1 1 100 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccoccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+596 375 1 1 1 100 0 0 0 93 -1 3 rucavcccccccccccccqcccccycccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccccccccutycasvab
+597 363 2 1 1 99 0 0 0 93 -1 3 rucavcccccccccccccccccccccccccccccccccccccccccscccccccccccccccccccccfccccccccccbccccccccccutycasvab
+598 381 1 1 1 100 0 0 0 93 -1 3 rucavcccccccccccccccccccccccccccccccccccjccccccccccccctcnccccccccccccccccchccccccccccccccccutycasvab
+599 362 1 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccqccccccccccccccccccacccccccccutycasvab
+600 386 1 1 1 100 0 0 0 93 -1 4 rucavcccccccccccccccccccccccccpccccccccccclccccccpcccycccccccccccccccccccccccccccccccccccccutycasvab
+601 443 3 1 1 102 0 0 0 93 -1 2 aarucavccccccccccccccccccccccccccccccccccxccccccccczccccccccccccccccccccccccccccccccccwccccccutycasvab
+602 541 1 1 1 99 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccccccccccccccutycasvab
+603 1 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccccccccccccchccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
Added: development/tests/demes_grid_repl/expected/data/dominant.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/dominant.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/dominant.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Fri Apr 27 10:46:14 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 100 0 0 0 0 0 1 100-aaaaa
+20 97 389 0.249357 0.00257069 100 100 97 143 0 0 0 0 0.249357 1 100-aaaaa
+30 97 389 0.249357 0.00257069 100 100 97 194 0 0 0 0 0.251295 1 100-aaaaa
+40 97 389 0.249357 0.00257069 100 100 97 44 0 0 0 0 0.251295 1 100-aaaaa
+50 97 389 0.249357 0.00257069 100 100 97 44 0 0 0 0 0.251295 1 100-aaaaa
+60 97 389 0.249357 0.00257069 100 100 97 63 0 0 0 0 0.251295 1 100-aaaaa
+70 97 389 0.249357 0.00257069 100 100 97 95 0 0 0 0 0.251969 1 100-aaaaa
+80 97 389 0.249357 0.00257069 100 100.002 97 22 0 0 0 0 0.252577 1 100-aaaaa
+90 97 389 0.249357 0.00257069 100 100.002 97 22 0 0 0 0 0.252577 1 100-aaaaa
+100 97 389 0.249357 0.00257069 100 100.002 97 32 0 0 0 0 0.252577 1 100-aaaaa
Added: development/tests/demes_grid_repl/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_grid_repl/expected/data/historic-100.pop (rev 0)
+++ development/tests/demes_grid_repl/expected/data/historic-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,48 @@
+#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
+
+204 2 1 0 6 100 97 388 0.25 39 79 2 rucavcccccccccccccclcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+142 1 2 0 7 100 97 387 0.250646 27 79 1 rucavcccccccccmccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccutycasvab
+327 1 2 0 1 100 0 0 0 64 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccycccccccccccccccccccoccccccccccccccccccccutycasvab
+44 1 1 0 5 100 97 388 0.25 14 79 1 rucavcccccccccccccccccccccccccccccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+4 1 1 0 4 101 98 392 0.25 13 79 1 rucavcccccccccccccccccccccccccccccccccccccicccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+340 1 1 0 1 100 0 0 0 65 79 1 rucavcccccccccccccccccccccccccccckcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+54 1 1 0 8 100 97 388 0.25 15 79 1 rucavccccccccccccccccccccccccccccccccccccccccvcccccccccccccccccccccccccccccccccccccccccccccutycasvab
+177 1 1 0 7 100 97 389 0.249357 29 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccccccccccccccccccutycasvab
+291 177 2 0 2 100 97 388 0.25 53 79 2 rucavcccccccccccccchcccccccccccccccccccccccccccccccccciccchccccccccccccccccccccccccccccccccutycasvab
+347 291 1 0 1 100 0 0 0 65 79 3 rucavcccccccccccccchcccccccccccccccccccccccccccccccccciccchccccwcccccccccccccccccccccccccccutycasvab
+107 37 1 0 8 100 97 387 0.250646 27 79 2 rucavcccccccccccccccccccccccccpccccccccccclccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+176 1 1 0 5 100 97 388 0.25 29 79 1 rucavccccccccccccccccccccccccccccpcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+92 1 1 0 4 100 97 388 0.25 26 79 1 rucavcccccccccccccqccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+34 1 1 0 6 100 97 389 0.249357 14 79 1 rucavccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+221 1 2 0 3 100 49 337 0.145401 39 79 1 rucavcccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutypasvab
+52 1 1 0 6 100 97 388 0.25 14 79 1 rucavccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+122 1 1 0 6 100 97 388 0.25 27 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccutycasvab
+5 1 2 0 3 100 49 387 0.126615 13 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccutrcasvab
+264 1 2 0 1 100 0 0 0 52 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccutyeasvab
+367 113 3 0 1 101 0 0 0 66 79 2 rucavccfccgcccccccccccccccxccccccccccccccccccccccccccccccccccccclcccccccccccccccccccdcccccccutycasvab
+28 1 1 0 7 100 97 388 0.25 14 79 1 rucavccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccutycasvab
+39 1 1 0 4 100 97 389 0.249357 14 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdutycasvab
+274 1 1 0 3 100 97 388 0.25 52 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccutycasvab
+296 52 1 0 1 100 97 387 0.250646 53 79 2 rucavccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccutycasvab
+305 92 2 0 2 99 96 381 0.251969 54 79 2 rucavcccccccccccccqccctcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+284 1 2 0 2 100 97 388 0.25 52 79 1 rucavccccccccccccccceccccccccccccscccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+263 28 1 0 3 100 97 387 0.250646 52 79 2 rucavccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccdcccccccccccccccccccccccccccutycasvab
+30 1 1 0 8 100 97 389 0.249357 14 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccccccccutycasvab
+2 1 1 0 9 99 96 385 0.249351 12 39 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+37 1 1 0 1 100 0 0 0 14 39 1 rucavcccccccccccccccccccccccccpccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+120 1 2 0 1 100 0 0 0 27 39 1 rucavcccccccccccccccccccccccccccccccccczcccccccccccccccccccccccccccccccccccccccccccccccccccuticasvab
Added: development/tests/demes_grid_repl/expected/data/resource.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/resource.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/resource.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Fri Apr 27 10:46:14 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_grid_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/stats.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/stats.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Fri Apr 27 10:46:14 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.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0
+20 2.44249e-15 0.562405 0.562358 0.826462 0.826353 0 1.7334 0 0 0 0
+30 0.0093872 0.562374 0.562358 0.82639 0.826353 0 3.29336 0 0 0 0
+40 0.0176158 0.562548 0.562358 0.826788 0.826353 -215 2.62128 0 0 0 0
+50 0.034041 0.562544 0.562358 0.826779 0.826353 1 2.67998 0 0 0 0
+60 0.0175526 0.562544 0.562358 0.826779 0.826353 0 3.51637 0 0 0 0
+70 0.0178911 0.562603 0.562358 0.826915 0.826353 0 4.20269 0 0 0 0
+80 0.027737 0.568647 0.562358 0.840829 0.826353 -291 3.49016 0 0 0 0
+90 0.039973 0.568525 0.562358 0.840545 0.826353 0 3.53182 0 0 0 0
+100 0.0271387 0.569506 0.562358 0.842821 0.826353 0 4.07277 0 0 0 0
Added: development/tests/demes_grid_repl/expected/data/tasks.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/tasks.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/tasks.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Fri Apr 27 10:46:14 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_grid_repl/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/tasks_exe.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/tasks_exe.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Fri Apr 27 10:46:14 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_grid_repl/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/tasks_quality.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Fri Apr 27 10:46:14 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_grid_repl/expected/data/time.dat
===================================================================
--- development/tests/demes_grid_repl/expected/data/time.dat (rev 0)
+++ development/tests/demes_grid_repl/expected/data/time.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,18 @@
+# Avida time data
+# Fri Apr 27 10:46:14 2007
+# 1: update
+# 2: avida time
+# 3: average generation
+# 4: num_executed?
+
+0 0.000000 0.000000 30
+10 0.0927835 0 3000
+20 0.195876 1 6000
+30 0.299977 1.98734 11850
+40 0.404502 2.35 3000
+50 0.509803 2.40196 3030
+60 0.615477 3.26738 5610
+70 0.72128 4.20115 10440
+80 0.826659 4.94 3000
+90 0.933928 4.98039 3060
+100 1.04122 5.92697 5310
Added: development/tests/demes_grid_repl/test_list
===================================================================
--- development/tests/demes_grid_repl/test_list (rev 0)
+++ development/tests/demes_grid_repl/test_list 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_torus_repl/config/avida.cfg
===================================================================
--- development/tests/demes_torus_repl/config/avida.cfg (rev 0)
+++ development/tests/demes_torus_repl/config/avida.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,257 @@
+#############################################################################
+# 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
+RANDOM_SEED 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New SMT CPUs
+ # 2 = Transitional SMT
+ # 3 = Experimental CPU
+ # 4 = Gene Expression CPU
+
+### 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
+
+### DEME_GROUP ###
+# Demes and Germlines
+NUM_DEMES 100 # Number of independent groups in the population.
+DEMES_USE_GERMLINE 0 # Whether demes use a distinct germline; 0=off
+DEMES_HAVE_MERIT 0 # Whether demes have merit; 0=no
+GERMLINE_COPY_MUT 0.0075 # Prob. of copy mutations occuring during
+ # germline replication.
+GERMLINE_REPLACES_SOURCE 0 # Whether the source germline is updated
+ # on replication; 0=no.
+GERMLINE_RANDOM_PLACEMENT 0 # Whether the seed for a germline is placed
+ # randomly within the deme; 0=no.
+MAX_DEME_AGE 40 # The maximum age of a deme (in updates) to be
+ # used for age-based replication (default=500).
+
+### 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)
+ # 9 = Largest energy used in entire population
+ # 10 = Largest energy used in neighborhood
+PREFER_EMPTY 1 # Give empty cells preference in offsping placement?
+ALLOW_PARENT 1 # Allow births to replace the parent organism?
+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)
+META_COPY_MUT 0.0 # Prob. of copy mutation rate changing (per gen)
+META_STD_DEV 0.0 # Standard deviation of meta mutation size.
+MUT_RATE_SOURCE 1 # 1 = Mutation rates determined by environment.
+ # 2 = Mutation rates inherited from parent.
+
+### 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
+ # 6 = Merit prop. to num times MERIT_BONUS_INST is in genome.
+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?
+MERIT_BONUS_INST 0 # in BASE_MERIT_METHOD 6, this sets which instruction counts (-1=none, 0= 1st in INST_SET.)
+MERIT_BONUS_EFFECT 0 # in BASE_MERIT_METHOD 6, this sets how much merit is earned per INST (-1=penalty, 0= no effect.)
+FITNESS_VALLEY 0 # in BASE_MERIT_METHOD 6, this creates valleys from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP (0= off, 1=on)
+FITNESS_VALLEY_START 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+FITNESS_VALLEY_STOP 0 # if FITNESS_VALLEY =1, orgs with num_key_instructions from FITNESS_VALLEY_START to FITNESS_VALLEY_STOP get fitness 1 (lowest)
+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.
+
+### PROMOTER_GROUP ###
+# Promoters
+PROMOTERS_ENABLED 0 # Use the promoter/terminator execution scheme.
+ # Certain instructions must also be included.
+PROMOTER_PROCESSIVITY 1.0 # Chance of not terminating after each cpu cycle.
+PROMOTER_PROCESSIVITY_INST 1.0 # Chance of not terminating after each instruction.
+PROMOTER_BG_STRENGTH 0 # Probability of positions that are not promoter
+ # instructions initiating execution (promoters are 1).
+REGULATION_STRENGTH 1 # Strength added or subtracted to a promoter by regulation.
+REGULATION_DECAY_FRAC 0.1 # Fraction of regulation that decays away.
+ # Max regulation = 2^(REGULATION_STRENGTH/REGULATION_DECAY_FRAC)
+
+### 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_torus_repl/config/default-classic.org
===================================================================
--- development/tests/demes_torus_repl/config/default-classic.org (rev 0)
+++ development/tests/demes_torus_repl/config/default-classic.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_torus_repl/config/environment.cfg
===================================================================
--- development/tests/demes_torus_repl/config/environment.cfg (rev 0)
+++ development/tests/demes_torus_repl/config/environment.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_torus_repl/config/events.cfg
===================================================================
--- development/tests/demes_torus_repl/config/events.cfg (rev 0)
+++ development/tests/demes_torus_repl/config/events.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,19 @@
+# Print all of the standard data files...
+u 0 InjectDemes
+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
+
+u 1:1:end ReplicateDemes deme-age
+
+# 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_torus_repl/config/instset-classic.cfg
===================================================================
--- development/tests/demes_torus_repl/config/instset-classic.cfg (rev 0)
+++ development/tests/demes_torus_repl/config/instset-classic.cfg 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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_torus_repl/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_torus_repl/expected/data/archive/100-aaaaa.org (rev 0)
+++ development/tests/demes_torus_repl/expected/data/archive/100-aaaaa.org 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,134 @@
+# Fri Apr 27 10:46:33 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_torus_repl/expected/data/average.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/average.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/average.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Fri Apr 27 10:46:31 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 101.000000 101.000000 0.000000 0.000000 0.000000 0.000000 0.000000
+10 97 389 0 0 100 100 97 0 0 0 0 0 0 0 0
+20 97 389 0.249357 0 99.98 100 97 3.77358 0 0 0.275 1 -0.105943 0 0
+30 95.198 386.345 0.245841 0 99.9848 99.2335 95.198 2.31765 0.00253807 0 0.563452 1.98477 -0.0392749 0 0
+40 94.77 386.25 0.244708 0 100.02 100 94.77 2.43902 0 0 0.79 2.36 0.226467 -1 0
+50 92.9706 382.461 0.241759 0 100.049 99.0392 92.9706 2.37209 0 0 0.813725 2.41176 0.219865 -1 0
+60 94.5376 384.731 0.244961 0 100.532 99.4677 94.5376 2 0 0 1.04301 3.31183 0.165284 -1 0
+70 94.0974 384.542 0.243897 0 100.865 98.7049 94.0974 1.94972 0 0 1.26074 4.28367 0.126918 -1 0
+80 93.18 383.28 0.242062 0 102 97.5 93.18 1.88679 0 0 1.4 4.74 -0.502487 -1 0
+90 93.2178 383.277 0.242173 0 101.98 97.5248 93.2178 1.90566 0.00990099 0.00990099 1.42574 4.76238 -0.571038 -1 0
+100 94.1353 383.794 0.244428 0 102.353 97.9471 94.1353 1.78947 0 0 1.6 5.83529 -0.535698 -1 0
Added: development/tests/demes_torus_repl/expected/data/count.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/count.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/count.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida count data
+# Fri Apr 27 10:46:31 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 101 1 101 1 1 1 0 0
+10 3000 100 1 1 0 0 0 0 0 0 100 100 100 0 0
+20 6000 200 53 2 0 0 0 0 0 0 145 100 200 0 0
+30 11790 394 170 2 0 0 0 1 0 0 221 200 394 0 0
+40 3000 100 41 11 0 0 0 0 0 0 14 100 100 0 0
+50 3060 102 43 11 0 0 0 0 0 0 14 100 102 0 0
+60 5580 186 93 16 0 0 0 0 0 0 46 100 186 0 0
+70 10470 349 179 23 0 0 0 0 0 0 119 184 349 0 0
+80 3000 100 53 35 0 0 0 0 0 0 8 100 100 0 0
+90 3000 101 53 36 0 0 0 1 0 1 9 100 101 0 0
+100 5100 170 95 41 0 0 0 0 0 0 34 100 170 0 0
Added: development/tests/demes_torus_repl/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_torus_repl/expected/data/detail-100.pop (rev 0)
+++ development/tests/demes_torus_repl/expected/data/detail-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,112 @@
+#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 18 375 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+48 1 2 4 7 99 0 0 0 14 -1 1 rucavgccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+298 162 28 4 6 100 0 0 0 61 -1 2 cccccccccccccccccccccccccccccccccccccccccutyhasvabrucavccccccccccccccxcccccccccccccccccccccccccccccc
+151 1 1 4 10 100 97 388 0.25 28 -1 1 rucavcccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+241 1 1 4 14 100 97 389 0.249357 39 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccccccccccccutycasvab
+259 166 1 4 6 99 96 385 0.249351 52 -1 3 rucavccccccccccccccccccccccccccccccccccccccccbccccccccccccccccccccchccccccccccccccccccccccutycasvab
+161 1 1 4 8 100 97 388 0.25 28 -1 1 rucavccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+413 344 3 3 4 100 97 385 0.251948 77 -1 4 rucavccccccccccccccccccccccacccccgccccccccccccccccjcccceccfmcccccccccccccccccccccccccccccccutycasvab
+513 1 1 3 4 100 97 388 0.25 79 -1 1 rucavcccccccccccccccccccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+389 30 1 3 4 100 97 387 0.250646 76 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccvcccccccccccccpcccccccccccccrcutycasvab
+45 1 1 3 11 100 97 388 0.25 14 -1 1 rucavcccccccccccccccccccccccccccccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+279 1 1 3 4 100 97 388 0.25 52 -1 1 rucavccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+269 126 1 3 6 99 96 385 0.249351 52 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccutycasvab
+475 1 1 3 4 100 97 388 0.25 78 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpccccccccccccccccccutycasvab
+350 13 1 3 4 100 97 386 0.251295 65 -1 2 rucavcccccccccqcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclccccccccqccutycasvab
+8 1 1 2 5 100 0 0 0 13 -1 1 rucfvccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+21 1 1 2 5 100 0 0 0 13 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccumycasvab
+312 13 1 2 3 100 97 386 0.251295 64 -1 2 rucavcccccccccqccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfccccclcccccccccccutycasvab
+313 1 1 2 3 100 0 0 0 64 -1 1 rucavscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+486 296 103 2 3 202 0 0 0 78 -1 3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarucavcccccccccccclccccccccccccccccccccccccccvccxcccccccccccccccccccccwccccccccccccccccccccccutycnsvab
+22 1 1 2 8 100 97 389 0.249357 13 -1 1 rucavccccccccccccccccccccccccccccccccccccccccscccccccccccccccccccccccccccccccccccccccccccccutycasvab
+230 1 3 2 5 100 50 291 0.171821 39 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccwccccccccccccscccccccccccccccccccutycosvab
+539 1 2 2 3 99 96 384 0.25 79 -1 1 rucavcccccccccccccccccccccocccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+340 1 1 2 4 100 97 388 0.25 65 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccjccccccccccccccccccccccccccccccccutycasvab
+78 6 5 2 7 102 0 0 0 26 -1 2 aarucavcccccgccccccccccccccccccwcccccccccccccccccccccccccccccccccccccccccccccccccccccccccczccutycaivab
+443 285 1 2 3 100 0 0 0 78 -1 3 rncavccccccccccccccccccccccccccccccccccccccccccccccccccccycccccccccccccccccccdcccccccccccccutycasvab
+24 1 1 2 9 100 97 388 0.25 13 -1 1 rucavcccccmccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+421 1 1 2 3 100 0 0 0 77 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycapvab
+74 1 1 2 6 100 0 0 0 26 -1 1 rucevccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+207 20 4 2 5 102 99 394 0.251269 39 -1 2 aarucavcccccccccccccccccccccccgcccccccccccccacccccccccccccccccccccccccccccccccccccncwccccccccutycasvab
+268 1 1 2 5 100 97 388 0.25 52 -1 1 rucavccccccccccccccccccccccccccccccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+109 1 1 2 8 100 97 388 0.25 27 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccccccccccccccccccccutycasvab
+150 1 1 2 10 100 97 388 0.25 28 -1 1 rucavccccccccccccccccccccccccccckccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+557 207 98 2 2 200 0 0 0 92 -1 3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarucavcccccccccccccccccccccccgcccccccccccccacccccccccccccccccccccccccccccccccccccncwccccccccutycasvab
+120 1 2 2 8 100 97 387 0.250646 27 -1 1 rucavccccccccccccccccccccccccccccpcccccccdcccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+570 1 1 2 2 100 0 0 0 92 -1 1 rucajccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+374 1 1 2 5 100 97 388 0.25 66 -1 1 rucavccccccccccccccccdcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+478 2 1 2 4 99 0 0 0 78 -1 2 rucavcccccccccccccccccccccccccccccccccccccccfcccccccccccccccccccccccccccccccccccccccccccccutycasvab
+338 264 1 2 5 100 88 377 0.233422 65 -1 5 rucavccccccccccccccccccccccaccccccccccccccccccccccccccicccucccccccccccccccccckccccccccccgrcutycasvab
+277 1 3 1 4 99 96 384 0.25 52 -1 1 rucavcccccccccchccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcutycasvab
+451 329 1 1 3 101 0 0 0 78 -1 2 rucavcccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccccutycasvab
+297 1 1 1 4 100 97 388 0.25 54 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciccccutycasvab
+496 1 2 1 3 100 0 0 0 78 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccccsccccccccccutycasvab
+455 343 1 1 3 101 0 0 0 78 -1 4 rucavcccclccccccccccccccvcccccccccccccccccccccccccccccccccqccccccccccccpccccccdcccccccccccvcutycasvab
+65 1 2 1 10 100 97 388 0.25 26 -1 1 rucavccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsccccccccutycasvab
+263 166 3 1 3 98 0 0 0 52 -1 3 rucvcccccccccccccccccccczcccccccccccccccccccycccccccccccccccccaccchccccccccccccccccccccccutycasvab
+349 46 28 1 4 100 0 0 0 65 -1 2 cccccccccccccccccccccccccccccccccccccccccutynasvabrucavcccccccyccccccccccccccccccccccccccccccccccccc
+295 36 2 1 3 100 97 384 0.252604 54 -1 2 rucavcccccccccccccccccccccticccccccccccccccccccccccccdcccccccccccccccccccccccccccccccccccccutycasvab
+272 39 1 1 3 100 0 0 0 52 -1 2 rucavcccccccccccccckccccscccccccccccbccccccccccccccccccccccccccpcccccccccccccccccccccccccccvtycasvab
+249 151 1 1 4 100 97 387 0.250646 51 -1 2 rucavccvccccccccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+188 1 1 1 9 100 97 388 0.25 38 -1 1 rucavcccccccccccccccccccccccccoccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+437 290 1 1 3 99 0 0 0 77 -1 3 rucavccccccccccceccccccccccccccccccccccccccccccbcccccccccccccccccqcccccccccccccccccccccccccutyasvab
+273 1 3 1 5 101 98 388 0.252577 52 -1 1 rucavccccccccccctccccccccccccccccccccccccccccccccccgcccdccccccccccccccccccccccccccccccccccccutycasvab
+378 183 3 1 3 100 0 0 0 67 -1 2 rucavccccccccccccccccccccccccccfccccccccccccccccccccmcccccccccccccccccccccccccccccccccccclcutycasdab
+149 52 3 1 5 100 0 0 0 28 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccfcccccccccccccdcccccccutycasvpb
+544 1 1 1 1 100 0 0 0 91 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycaqvab
+545 451 1 1 1 101 0 0 0 91 -1 3 rucavcccccccccmcccccccccccccccccccccccccccccccccccccccccccxcccccccccccpcccccccccccccccccccccutycasvab
+546 273 1 1 1 101 0 0 0 91 -1 2 rucavccccccccccctccccccccccccccccccccccccccccccccccdcccdccccccccccccccccccccccccccccccccccccutycasvab
+547 268 1 1 1 100 0 0 0 91 -1 2 rucavcccccccccccnccccccccccccccccccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+548 413 2 1 1 100 0 0 0 91 -1 5 rucavccccccccccccccccccccccacccccgccccccccccccccccscccceccfmccccccccccccccccccccyccccccccccutycasvab
+549 475 1 1 1 100 0 0 0 91 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqccccccccpccccccccccccccccccutycasvab
+550 279 2 1 1 100 0 0 0 91 -1 2 rucavccccccccccccccccccccccccccccccegccfcccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+551 297 1 1 1 100 0 0 0 91 -1 2 sucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciccccutycasvab
+552 1 1 1 1 100 0 0 0 91 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccccccccccccccccutycasvab
+553 496 1 1 1 100 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccccscuccccccccutycasvab
+554 269 1 1 1 99 0 0 0 92 -1 3 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccvccccccccccbcccccccccutycasvab
+555 340 1 1 1 100 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccjcjccccccccccccccccccccccccccccccutycasvab
+556 268 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccuyycasvab
+558 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvzb
+559 22 6 1 1 101 0 0 0 92 -1 2 ruhvvcccccgccccccccccccccccccccccccccccccccccsccccccccccccccccccccccccccccccccccccccccfcccccutycarvaj
+560 1 1 1 1 99 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+561 241 2 1 1 100 0 0 0 92 -1 2 ruaavcccccccccccccccccccccccccccccccccccccccccccccccrccccccccccccccccccccccccccccccccccccccutyqasvab
+562 45 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccoccccccccccjccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+563 539 1 1 1 99 0 0 0 92 -1 2 rucavccccccccyccccccccccccocccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+564 312 2 1 1 101 0 0 0 92 -1 3 rucavcccccccccqcccccccccccccccccpccccccccccccccccccccccccccccrccccccccccccfccccclcccccccccccutycasvab
+565 539 1 1 1 99 0 0 0 92 -1 2 rucavcccccccccccccccccccccoccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccwutycasvab
+566 65 2 1 1 100 0 0 0 92 -1 2 rucavccccdcccccccccccccccccccccccccchccccccccccccccccccccccccccccxccccccccccccccccsccccccccutycasvab
+567 277 1 1 1 99 0 0 0 92 -1 2 rucavcccccccccchccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclccccccccdcutycasvab
+568 312 2 1 1 100 0 0 0 92 -1 3 rucavcccccccccqcccccdccccccccccccccccccccccccccccccccccccccccccccccccccccfccccclvccccccccccutycasvab
+569 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccecccccccccccccccccccccccccccccccccccccccccutycasvab
+571 1 2 1 1 101 0 0 0 92 -1 1 rucavccccccccccccccccccccccccfccccucccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+572 513 1 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccncccccccccccccccccccccgccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+573 188 1 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccocccccccccccccccccccccccccccccccccccccccccccccnccccccccccccccutycasvab
+574 350 1 1 1 100 0 0 0 93 -1 3 rucavcccccccccqcccccccccccccccccccccccccccccccscccccccccccccccccccccccccccccccclccccccccqccutycasvab
+575 389 2 1 1 100 0 0 0 93 -1 3 rucavqcccccccccccccccccccccccccccccccccccccccccccccccccccccccvccccoccccccccpcccccccccccccrcutycasvab
+576 340 2 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccjccccccccccccccccccocccccccocccccutycasvab
+577 22 3 1 1 99 0 0 0 93 -1 2 mucavccccccccccccccccccccccccceccccccccccccccsccccccccccccccccccccccccccccccccccccccccccccutycasvab
+578 241 1 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccrcccccccccccccccccccccccccccccccccccccmutycasvab
+579 295 3 1 1 100 0 0 0 93 -1 3 vucavkccccccccccccccccccccticccccccccccccccccccccccccdccccccccccccccccccccckcccccccccccccccutycasvab
+580 455 1 1 1 100 0 0 0 93 -1 5 rucavcccclcccccccccccccvcccccccccccccccccccccccccccccccccqccccccccccccpccccccdcccccccccccvcutycasvab
+581 24 3 1 1 100 0 0 0 93 -1 2 rucavcccccmcccccccccccccccccccxcccccccccccccccyccccccccccccccccccccccccccccwcccccccccccccccutycasvab
+582 24 1 1 1 100 0 0 0 93 -1 2 rucavcccccmccccccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccccccccccccccccutycasvab
+583 249 3 1 1 100 0 0 0 93 -1 3 rucavccvccccccccccccxcccfcccccccccgccccccccccccccccccccccccccccccccccccccccccccccccclccccccutycasvab
+584 230 31 1 1 103 0 0 0 98 -1 2 cccccccwccccccccccccscccccccccccccccccccutycosvabaarucxavcccccccccccccccccccccccccccccccccccccccccccccc
+585 230 30 1 1 102 0 0 0 99 -1 2 cccccccwccccccccccccscccccccccccccccccccutycosvabaarucavccccctcccccccccccccccccccccccccccccccccccccccc
Added: development/tests/demes_torus_repl/expected/data/dominant.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/dominant.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/dominant.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Fri Apr 27 10:46:31 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 100 0 0 0 0 0 1 100-aaaaa
+20 97 389 0.249357 0.00257069 100 100 97 145 0 0 0 0 0.249357 1 100-aaaaa
+30 97 389 0.249357 0.00257069 100 100 97 209 1 0 0 0 0.250653 1 100-aaaaa
+40 97 389 0.249357 0.00257069 100 100 97 33 0 0 0 0 0.252604 1 100-aaaaa
+50 97 389 0.249357 0.00257069 100 100 97 33 0 0 0 0 0.252604 1 100-aaaaa
+60 97 389 0.249357 0.00257069 100 100 97 50 0 0 0 0 0.252604 1 100-aaaaa
+70 97 389 0.249357 0.00257069 100 100 97 76 0 0 0 0 0.252604 1 100-aaaaa
+80 97 389 0.249357 0.00257069 100 100 97 13 0 0 0 0 0.252604 1 100-aaaaa
+90 97 389 0.249357 0.00257069 100 100 97 13 0 0 0 0 0.252604 1 100-aaaaa
+100 97 389 0.249357 0.00257069 100 100 97 18 0 0 0 0 0.25323 1 100-aaaaa
Added: development/tests/demes_torus_repl/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_torus_repl/expected/data/historic-100.pop (rev 0)
+++ development/tests/demes_torus_repl/expected/data/historic-100.pop 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,46 @@
+#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
+
+108 12 1 0 6 100 97 387 0.250646 27 79 2 rucavcccccccccccccccccccccccccccccccccccccccccccccjccccccccmcccccccccccccccccccccccccccccccutycasvab
+344 108 1 0 1 100 0 0 0 65 79 3 rucavcccccccccccccccccccccccccccccccccccccccccccccjcccccccfmcccccccccccccccccccccccccccccccutycasvab
+162 1 2 0 3 100 49 341 0.143695 28 79 1 rucavccccccccccccccxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutyhasvab
+2 1 1 0 21 99 96 385 0.249351 12 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+194 1 2 0 5 100 97 387 0.250646 38 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccqcccccccccccccccccccdcccccccccccccutycasvab
+285 194 1 0 3 100 87 377 0.230769 53 79 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccycccccccccccccccccccdcccccccccccccutycasvab
+290 109 2 0 2 100 97 387 0.250646 53 79 2 rucavccccccccccceccccccccccccccccccccccccccccccbcccccccccccccccccqcccccccccccccccccccccccccutycasvab
+13 1 2 0 10 100 97 387 0.250646 13 79 1 rucavcccccccccqcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclcccccccccccutycasvab
+296 116 1 0 1 101 98 390 0.251282 54 79 2 rucavcccccccccccclcccccccccccccccccccccccccccccxcccccccccccccccccccccwccccccccccccccccccccccutycasvab
+116 1 2 0 3 101 98 391 0.250639 27 79 1 rucavcccccccccccclcccccccccccccccccccccccccccccxccccccccccccccccccccccccccccccccccccccccccccutycasvab
+36 1 1 0 6 100 97 388 0.25 14 79 1 rucavccccccccccccccccccccccicccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+30 1 2 0 6 100 97 388 0.25 14 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccvcccccccccccccccccccccccccccrcutycasvab
+46 1 2 0 3 100 39 327 0.119266 14 79 1 rucavcccccccyccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutynasvab
+183 1 1 0 4 100 97 388 0.25 38 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccclcutycasvab
+126 1 1 0 7 100 97 389 0.249357 27 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccbccccccccccutycasvab
+343 266 2 0 1 101 0 0 0 65 79 3 rucavcccclccccccccccccccvcccccccccccccccccccccccccccccccccqcccccccccccccccccccdcccccccccccvcutycasvab
+266 194 1 0 1 100 97 386 0.251295 52 79 2 rucavcccclcccccccccccccccccccccccccccccccccccccccccccccccqcccccccccccccccccccdcccccccccccccutycasvab
+39 1 4 0 6 100 97 387 0.250646 14 79 1 rucavcccccccccccccckccccscccccccccccbccccccccccccccccccccccccccpcccccccccccccccccccccccccccutycasvab
+264 220 1 0 2 100 97 387 0.250646 52 79 4 rucavccccccccccccccccccccccaccccccccccccccccccccccccccicccccccccccccccccccccckccccccccccgrcutycasvab
+220 136 1 0 3 100 97 388 0.25 39 79 3 rucavccccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccckccccccccccgrcutycasvab
+166 25 2 0 7 99 86 374 0.229947 29 79 2 rucavccccccccccccccccccccccccccccccccccccccccyccccccccccccccccccccchccccccccccccccccccccccutycasvab
+329 1 1 0 1 100 0 0 0 65 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccccutycasvab
+52 1 1 0 1 100 0 0 0 15 39 1 rucavcccccccccccccccccccccccccccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccutycasvab
+20 1 2 0 1 100 97 387 0.250646 13 39 1 rucavcccccccccccccccccccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccccwccccccccutycasvab
+23 1 1 0 1 100 0 0 0 13 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccrcutycasvab
+136 23 2 0 1 100 0 0 0 27 39 2 rucavccccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccgrcutycasvab
+12 1 1 0 1 100 0 0 0 13 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccutycasvab
+6 1 1 0 1 100 0 0 0 13 39 1 rucavccccccccccccccccccccccccwcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab
+25 1 1 0 1 100 0 0 0 13 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccccccccutycasvab
Added: development/tests/demes_torus_repl/expected/data/resource.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/resource.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/resource.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Fri Apr 27 10:46:31 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_torus_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/stats.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/stats.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Fri Apr 27 10:46:31 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.562358 0.562358 0.826353 0.826353 0 0 0 0 0 0
+20 2.44249e-15 0.562294 0.562358 0.826209 0.826353 0 1.66677 0 0 0 0
+30 0.0142025 0.562309 0.562358 0.826243 0.826353 0 3.07983 0 0 0 0
+40 0.0188194 0.562421 0.562358 0.826498 0.826353 -204 3.07702 0 0 0 0
+50 0.0309456 0.562513 0.562358 0.826708 0.826353 0 3.12679 0 0 0 0
+60 0.0177898 0.56404 0.562358 0.830206 0.826353 0 3.81159 0 0 0 0
+70 0.0221409 0.56509 0.562358 0.832616 0.826353 0 4.4371 0 0 0 0
+80 0.0296929 0.568647 0.562358 0.840829 0.826353 -286 3.75357 0 0 0 0
+90 0.0292354 0.568585 0.562358 0.840685 0.826353 0 3.75304 0 0 0 0
+100 0.0199679 0.569748 0.562358 0.843383 0.826353 0 4.28324 0 0 0 0
Added: development/tests/demes_torus_repl/expected/data/tasks.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/tasks.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/tasks.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Fri Apr 27 10:46:31 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_torus_repl/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/tasks_exe.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/tasks_exe.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Fri Apr 27 10:46:31 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_torus_repl/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/tasks_quality.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/tasks_quality.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Fri Apr 27 10:46:31 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_torus_repl/expected/data/time.dat
===================================================================
--- development/tests/demes_torus_repl/expected/data/time.dat (rev 0)
+++ development/tests/demes_torus_repl/expected/data/time.dat 2007-04-27 15:12:52 UTC (rev 1506)
@@ -0,0 +1,18 @@
+# Avida time data
+# Fri Apr 27 10:46:31 2007
+# 1: update
+# 2: avida time
+# 3: average generation
+# 4: num_executed?
+
+0 0.000000 0.000000 30
+10 0.0927835 0 3000
+20 0.195876 1 6000
+30 0.300628 1.98477 11790
+40 0.405783 2.36 3000
+50 0.511506 2.41176 3060
+60 0.617654 3.31183 5580
+70 0.72411 4.28367 10470
+80 0.830312 4.74 3000
+90 0.937631 4.76238 3000
+100 1.04365 5.83529 5100
Added: development/tests/demes_torus_repl/test_list
===================================================================
--- development/tests/demes_torus_repl/test_list (rev 0)
+++ development/tests/demes_torus_repl/test_list 2007-04-27 15:12:52 UTC (rev 1506)
@@ -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