[Avida-SVN] r1511 - in development: Avida.xcodeproj source/main source/tools tests tests/demes_hex_repl tests/demes_hex_repl/config tests/demes_hex_repl/expected tests/demes_hex_repl/expected/data tests/demes_hex_repl/expected/data/archive

dknoester at myxo.css.msu.edu dknoester at myxo.css.msu.edu
Tue May 1 06:31:29 PDT 2007


Author: dknoester
Date: 2007-05-01 09:31:29 -0400 (Tue, 01 May 2007)
New Revision: 1511

Added:
   development/tests/demes_hex_repl/
   development/tests/demes_hex_repl/config/
   development/tests/demes_hex_repl/config/avida.cfg
   development/tests/demes_hex_repl/config/default-classic.org
   development/tests/demes_hex_repl/config/environment.cfg
   development/tests/demes_hex_repl/config/events.cfg
   development/tests/demes_hex_repl/config/instset-classic.cfg
   development/tests/demes_hex_repl/expected/
   development/tests/demes_hex_repl/expected/data/
   development/tests/demes_hex_repl/expected/data/archive/
   development/tests/demes_hex_repl/expected/data/archive/100-aaaaa.org
   development/tests/demes_hex_repl/expected/data/average.dat
   development/tests/demes_hex_repl/expected/data/count.dat
   development/tests/demes_hex_repl/expected/data/detail-100.pop
   development/tests/demes_hex_repl/expected/data/dominant.dat
   development/tests/demes_hex_repl/expected/data/historic-100.pop
   development/tests/demes_hex_repl/expected/data/resource.dat
   development/tests/demes_hex_repl/expected/data/stats.dat
   development/tests/demes_hex_repl/expected/data/tasks.dat
   development/tests/demes_hex_repl/expected/data/tasks_exe.dat
   development/tests/demes_hex_repl/expected/data/tasks_quality.dat
   development/tests/demes_hex_repl/expected/data/time.dat
   development/tests/demes_hex_repl/test_list
Modified:
   development/Avida.xcodeproj/project.pbxproj
   development/source/main/cPopulation.cc
   development/source/main/nGeometry.h
   development/source/tools/cTopology.h
Log:
Added a hexagonal (6-neighbor) grid topology, and deme-based test for same.

Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj	2007-05-01 12:49:29 UTC (rev 1510)
+++ development/Avida.xcodeproj/project.pbxproj	2007-05-01 13:31:29 UTC (rev 1511)
@@ -10,10 +10,13 @@
 		1097463F0AE9606E00929ED6 /* cDeme.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1097463D0AE9606E00929ED6 /* cDeme.cc */; };
 		109746410AE9606E00929ED6 /* cDeme.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1097463D0AE9606E00929ED6 /* cDeme.cc */; };
 		109746430AE9606E00929ED6 /* cDeme.cc in Sources */ = {isa = PBXBuildFile; fileRef = 1097463D0AE9606E00929ED6 /* cDeme.cc */; };
-		4201F39B0BE187F6006279B9 /* cTopology.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 4201F39A0BE187F6006279B9 /* cTopology.h */; };
 		4233358A0BC067E3000DF681 /* cHardwareGX.cc in Sources */ = {isa = PBXBuildFile; fileRef = 423335880BC067E3000DF681 /* cHardwareGX.cc */; };
-		4233358B0BC067E3000DF681 /* cHardwareGX.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 423335890BC067E3000DF681 /* cHardwareGX.h */; };
-		42490F000BE2472800318058 /* cGermline.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 42490EFE0BE2472800318058 /* cGermline.h */; };
+		427E798D0BE6A2E80083B133 /* cCliqueTopology.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42829ADB0BE631A500F6BF8F /* cCliqueTopology.cc */; };
+		427E798E0BE6A2EB0083B133 /* cGridTopology.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42829AE00BE631A500F6BF8F /* cGridTopology.cc */; };
+		427E798F0BE6A2EC0083B133 /* cHexTopology.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42829AE20BE631A500F6BF8F /* cHexTopology.cc */; };
+		427E79900BE6A2EE0083B133 /* cTorusTopology.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42829AE40BE631A500F6BF8F /* cTorusTopology.cc */; };
+		427E79910BE6A2EF0083B133 /* iTopology.cc in Sources */ = {isa = PBXBuildFile; fileRef = 42829AE60BE631A500F6BF8F /* iTopology.cc */; };
+		427E79C40BE6A7D40083B133 /* CMakeLists.txt in CopyFiles */ = {isa = PBXBuildFile; fileRef = 427E79C30BE6A7D40083B133 /* CMakeLists.txt */; };
 		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 */; };
@@ -427,9 +430,7 @@
 				7049F3730A66AD7E00640512 /* default-transsmt.org in CopyFiles */,
 				70B1A7430B7E3FFD00067486 /* instset-experimental.cfg in CopyFiles */,
 				70B1A75A0B7E431F00067486 /* experimental.org in CopyFiles */,
-				4233358B0BC067E3000DF681 /* cHardwareGX.h in CopyFiles */,
-				4201F39B0BE187F6006279B9 /* cTopology.h in CopyFiles */,
-				42490F000BE2472800318058 /* cGermline.h in CopyFiles */,
+				427E79C40BE6A7D40083B133 /* CMakeLists.txt in CopyFiles */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -452,6 +453,18 @@
 		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>"; };
+		427E79C30BE6A7D40083B133 /* CMakeLists.txt */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; path = CMakeLists.txt; sourceTree = "<group>"; };
+		42829ADB0BE631A500F6BF8F /* cCliqueTopology.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cCliqueTopology.cc; sourceTree = "<group>"; };
+		42829ADC0BE631A500F6BF8F /* cCliqueTopology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cCliqueTopology.h; sourceTree = "<group>"; };
+		42829ADF0BE631A500F6BF8F /* cDiscreteTopology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cDiscreteTopology.h; sourceTree = "<group>"; };
+		42829AE00BE631A500F6BF8F /* cGridTopology.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cGridTopology.cc; sourceTree = "<group>"; };
+		42829AE10BE631A500F6BF8F /* cGridTopology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cGridTopology.h; sourceTree = "<group>"; };
+		42829AE20BE631A500F6BF8F /* cHexTopology.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cHexTopology.cc; sourceTree = "<group>"; };
+		42829AE30BE631A500F6BF8F /* cHexTopology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cHexTopology.h; sourceTree = "<group>"; };
+		42829AE40BE631A500F6BF8F /* cTorusTopology.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = cTorusTopology.cc; sourceTree = "<group>"; };
+		42829AE50BE631A500F6BF8F /* cTorusTopology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cTorusTopology.h; sourceTree = "<group>"; };
+		42829AE60BE631A500F6BF8F /* iTopology.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = iTopology.cc; sourceTree = "<group>"; };
+		42829AE70BE631A500F6BF8F /* iTopology.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = iTopology.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>"; };
@@ -935,7 +948,7 @@
 		DCC315CF076253A5008F7A48 /* Makefile */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
 		DCC315D0076253A5008F7A48 /* task_event_gen.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = task_event_gen.cc; sourceTree = "<group>"; };
 		DCC315D1076253A5008F7A48 /* task_event_gen.old.cc */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = task_event_gen.old.cc; sourceTree = "<group>"; };
-		DCC3164D07626CF3008F7A48 /* avida */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = avida; sourceTree = BUILT_PRODUCTS_DIR; };
+		DCC3164D07626CF3008F7A48 /* avida */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = avida; sourceTree = BUILT_PRODUCTS_DIR; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -972,6 +985,25 @@
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
+		42829ADA0BE631A500F6BF8F /* topology */ = {
+			isa = PBXGroup;
+			children = (
+				42829ADB0BE631A500F6BF8F /* cCliqueTopology.cc */,
+				42829ADC0BE631A500F6BF8F /* cCliqueTopology.h */,
+				42829ADF0BE631A500F6BF8F /* cDiscreteTopology.h */,
+				42829AE00BE631A500F6BF8F /* cGridTopology.cc */,
+				42829AE10BE631A500F6BF8F /* cGridTopology.h */,
+				42829AE20BE631A500F6BF8F /* cHexTopology.cc */,
+				42829AE30BE631A500F6BF8F /* cHexTopology.h */,
+				42829AE40BE631A500F6BF8F /* cTorusTopology.cc */,
+				42829AE50BE631A500F6BF8F /* cTorusTopology.h */,
+				42829AE60BE631A500F6BF8F /* iTopology.cc */,
+				42829AE70BE631A500F6BF8F /* iTopology.h */,
+				427E79C30BE6A7D40083B133 /* CMakeLists.txt */,
+			);
+			path = topology;
+			sourceTree = "<group>";
+		};
 		701D9115094B770B008B845F /* drivers */ = {
 			isa = PBXGroup;
 			children = (
@@ -1336,6 +1368,7 @@
 		DCC30C670762539A008F7A48 /* Main Source */ = {
 			isa = PBXGroup;
 			children = (
+				42829ADA0BE631A500F6BF8F /* topology */,
 				707AEEEE09E80699001AEA89 /* actions */,
 				70422A1B091B141000A5E67F /* analyze */,
 				70F7D8C8092546DC009E311D /* classification */,
@@ -2194,6 +2227,11 @@
 				70B1A6500B7E237F00067486 /* cHardwareExperimental.cc in Sources */,
 				706C6FFF0B83F265003174C1 /* cInstSet.cc in Sources */,
 				4233358A0BC067E3000DF681 /* cHardwareGX.cc in Sources */,
+				427E798D0BE6A2E80083B133 /* cCliqueTopology.cc in Sources */,
+				427E798E0BE6A2EB0083B133 /* cGridTopology.cc in Sources */,
+				427E798F0BE6A2EC0083B133 /* cHexTopology.cc in Sources */,
+				427E79900BE6A2EE0083B133 /* cTorusTopology.cc in Sources */,
+				427E79910BE6A2EF0083B133 /* iTopology.cc in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -2241,6 +2279,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				GCC_MODEL_CPU = G4;
+				HEADER_SEARCH_PATHS = /usr/local/boost;
 				OTHER_LDFLAGS = (
 					"-multiply_defined",
 					suppress,

Modified: development/source/main/cPopulation.cc
===================================================================
--- development/source/main/cPopulation.cc	2007-05-01 12:49:29 UTC (rev 1510)
+++ development/source/main/cPopulation.cc	2007-05-01 13:31:29 UTC (rev 1511)
@@ -91,6 +91,7 @@
       case nGeometry::GRID: { cout << "Geometry: Bounded grid" << endl;	break; }
 			case nGeometry::TORUS: { cout << "Geometry: Torus" << endl; break;	}
 			case nGeometry::CLIQUE: { cout << "Geometry: Clique" << endl; break; }
+      case nGeometry::HEX: { cout << "Geometry: Hex" << endl; break; }
 			default: {
         cout << "Unknown geometry!" << endl;
         assert(false);
@@ -111,7 +112,7 @@
 	cell_array.Resize(num_cells);
 	resource_count.ResizeSpatialGrids(world_x, world_y);
 	market.Resize(MARKET_SIZE);
-	
+  
   // Setup the cells.  Do things that are not dependent upon topology here.
 	for(int i=0; i<num_cells; ++i) {
 		cell_array[i].Setup(world, i, environment.GetMutRates());
@@ -161,6 +162,11 @@
                      deme_size_x, deme_size_y);
 				break;
 			}
+      case nGeometry::HEX: {
+				build_hex(&cell_array.begin()[i], &cell_array.begin()[i+deme_size], 
+                  deme_size_x, deme_size_y);
+				break;
+			}
 			default: {
 				assert(false);
 			}

Modified: development/source/main/nGeometry.h
===================================================================
--- development/source/main/nGeometry.h	2007-05-01 12:49:29 UTC (rev 1510)
+++ development/source/main/nGeometry.h	2007-05-01 13:31:29 UTC (rev 1511)
@@ -30,7 +30,8 @@
     GLOBAL = 0,
     GRID,
     TORUS,
-    CLIQUE
+    CLIQUE,
+    HEX
   };
 }
 

Modified: development/source/tools/cTopology.h
===================================================================
--- development/source/tools/cTopology.h	2007-05-01 12:49:29 UTC (rev 1510)
+++ development/source/tools/cTopology.h	2007-05-01 13:31:29 UTC (rev 1511)
@@ -10,6 +10,8 @@
 #ifndef _C_TOPOLOGY_H_
 #define _C_TOPOLOGY_H_
 
+#include "functions.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.
@@ -88,4 +90,21 @@
   }
 }
 
+
+/*! Builds a hexagonal grid topology out of the cells between the iterators.  In
+a hex grid, each cell has at most 6 neighbors, and connections do not wrap around
+edges.
+*/
+template< typename InputIterator >
+void build_hex(InputIterator begin, InputIterator end, unsigned int rowSize, unsigned int colSize) {
+  // Start with a grid:
+  build_grid(begin, end, rowSize, colSize);
+  int offset = begin->GetID();  
+  // ... and remove connections to the NE,SW:
+  for(InputIterator i=begin; i!=end; ++i) {
+    i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, 1, -1)]);
+    i->ConnectionList().Remove(&begin[GridNeighbor(i->GetID()-offset, colSize, rowSize, -1, 1)]);
+  }
+}
+
 #endif

Added: development/tests/demes_hex_repl/config/avida.cfg
===================================================================
--- development/tests/demes_hex_repl/config/avida.cfg	                        (rev 0)
+++ development/tests/demes_hex_repl/config/avida.cfg	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,258 @@
+#############################################################################
+# 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 4  # 1 = Bounded Grid
+                  # 2 = Torus
+                  # 3 = Clique
+                  # 4 = Hex
+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_hex_repl/config/default-classic.org
===================================================================
--- development/tests/demes_hex_repl/config/default-classic.org	                        (rev 0)
+++ development/tests/demes_hex_repl/config/default-classic.org	2007-05-01 13:31:29 UTC (rev 1511)
@@ -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_hex_repl/config/environment.cfg
===================================================================
--- development/tests/demes_hex_repl/config/environment.cfg	                        (rev 0)
+++ development/tests/demes_hex_repl/config/environment.cfg	2007-05-01 13:31:29 UTC (rev 1511)
@@ -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_hex_repl/config/events.cfg
===================================================================
--- development/tests/demes_hex_repl/config/events.cfg	                        (rev 0)
+++ development/tests/demes_hex_repl/config/events.cfg	2007-05-01 13:31:29 UTC (rev 1511)
@@ -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_hex_repl/config/instset-classic.cfg
===================================================================
--- development/tests/demes_hex_repl/config/instset-classic.cfg	                        (rev 0)
+++ development/tests/demes_hex_repl/config/instset-classic.cfg	2007-05-01 13:31:29 UTC (rev 1511)
@@ -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_hex_repl/expected/data/archive/100-aaaaa.org
===================================================================
--- development/tests/demes_hex_repl/expected/data/archive/100-aaaaa.org	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/archive/100-aaaaa.org	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,134 @@
+# Tue May  1 09:13:52 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_hex_repl/expected/data/average.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/average.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/average.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,30 @@
+# Avida Average Data
+# Tue May  1 09:13:50 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.02 99.4987 95.7848 2.2191 0 0 0.58481 1.98734 0.153769 0 0 
+40 96.43 389.72 0.247491 0 100.01 99.98 96.43 2.5641 0 0 0.62 2.37 0.324309 -1 0 
+50 96.43 389.72 0.247491 0 100.01 99.98 96.43 2.5641 0 0 0.62 2.37 0.324309 -1 0 
+60 96.4074 389.608 0.247507 0 100.063 99.7302 96.4074 2.25 0 0 0.825397 3.31746 0.202733 -1 0 
+70 95.915 388.272 0.246901 0 100.365 99.5949 95.915 2.04046 0 0 1.04533 4.27479 0.0911235 -1 0 
+80 94.2 389.04 0.241872 0 102.1 99.03 94.2 1.88679 0 0 1.29 4.77 -0.115848 -1 0 
+90 94.2 389.04 0.241872 0 102.1 99.03 94.2 1.88679 0 0 1.29 4.77 -0.115848 -1 0 
+100 94.4637 389.503 0.242441 0 101.324 98.9609 94.4637 1.72115 0.00558659 0 1.55866 5.82123 -0.255469 -1 0 

Added: development/tests/demes_hex_repl/expected/data/count.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/count.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/count.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,30 @@
+# Avida count data
+# Tue May  1 09:13:50 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 178 2 0 0 0 0 0 0 216 200 395 0 0 
+40 3000 100 39 6 0 0 0 0 0 0 11 100 100 0 0 
+50 3000 100 39 6 0 0 0 0 0 0 11 100 100 0 0 
+60 5670 189 84 15 0 0 0 0 0 0 54 100 189 0 0 
+70 10590 353 173 22 0 0 0 0 0 0 126 186 353 0 0 
+80 3000 100 53 28 0 0 0 0 0 0 6 100 100 0 0 
+90 3000 100 53 28 0 0 0 0 0 0 6 100 100 0 0 
+100 5340 179 104 31 0 0 0 1 0 0 33 100 179 0 0 

Added: development/tests/demes_hex_repl/expected/data/detail-100.pop
===================================================================
--- development/tests/demes_hex_repl/expected/data/detail-100.pop	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/detail-100.pop	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,121 @@
+#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 22 389 100 97 389 0.249357 -1 -1 0 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+171 1 2 5 14 99 96 384 0.25 28 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfcutycasvab 
+142 1 1 5 12 100 97 388 0.25 27 -1 1 rucavccccccccccccccccccxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+278 110 1 4 7 100 97 387 0.250646 52 -1 2 rucavccccccccccccccccccccccccccccccccccccccccqccccccccccccccccccmccccccccccccccccccccccccccutycasvab 
+339 1 1 4 6 100 97 389 0.249357 65 -1 1 rucavchccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+331 140 1 3 5 100 97 387 0.250646 65 -1 2 rucavcccccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccqccccccccccccccccccccccccutycasvab 
+96 1 1 3 8 100 97 388 0.25 26 -1 1 rucavccxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+313 1 1 3 5 100 97 388 0.25 64 -1 1 rucavccccccccccccccccccccccccccncccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+378 1 2 3 5 99 96 384 0.25 67 -1 1 rucavccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+389 154 1 3 5 99 96 384 0.25 67 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccccccccccccccccccccccccccutycasvab 
+533 345 3 3 4 100 87 375 0.232 79 -1 3 rucavccccxccccccccccccccccccccccczcccccgcccccccccccccccccchcccccccccccccccyccccccccccccccccutycasvab 
+273 1 3 3 6 101 98 392 0.25 52 -1 1 rucavcccccccccccccccccsccccsccccccccccccccccccccccccccccccccccccvcccccccccccccccccccccccccccutycasvab 
+406 326 2 3 4 100 91 379 0.240106 77 -1 3 rucavccccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccpcccccucccccccutycasvab 
+34 1 1 3 12 100 97 389 0.249357 14 -1 1 rucavccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+10 1 1 3 9 101 98 493 0.198783 13 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccuqtycasvab 
+358 296 3 2 3 102 99 395 0.250633 66 -1 2 aarucavccccccccccckcccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccccccccccccccutycasvab 
+486 370 101 2 3 200 0 0 0 79 -1 3 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarucavccccccccccccccccccccccccccccdcccccccccccccciccccccccccccccccccccccccccccccccccccwcccccutycasvab 
+90 1 2 2 5 100 0 0 0 26 -1 1 rucwavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+364 45 1 2 3 100 49 336 0.145833 66 -1 2 rucavcccccccclccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccccccccccutlcasvab 
+43 1 1 2 5 100 0 0 0 14 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasnab 
+128 1 2 2 5 99 0 0 0 27 -1 1 rucavcccccccccccccccccccccccccccccccccccccctcccccccccccccccccccccccccccccccccccccccccccccccutyasvab 
+422 1 1 2 3 100 0 0 0 77 -1 1 rucivccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+483 1 1 2 3 100 97 388 0.25 79 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccicccccccccccccccccccccccccccccccccutycasvab 
+304 10 2 2 4 101 98 492 0.199187 55 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpccccccccccccccccccccuktycasvab 
+472 140 2 2 3 100 0 0 0 78 -1 2 rucyvcccccccccccccccccccccccccccccmccccccccccccccccccccfcccccccccccccccccccccccccccccccccccutycasvab 
+254 1 2 2 5 100 0 0 0 39 -1 1 rucavccccccccccccccccccccccccccccccccccccczccccccccccccccccccccccccccccccccccccccccccccccccxtycasvab 
+316 184 4 2 3 103 100 399 0.250627 64 -1 2 aarucavcccccccccccccccccccccccacccccccccccccccccccccccccccccwccccwccccccccccccccccccccccccccccutycasvab 
+319 301 26 2 3 100 0 0 0 65 -1 2 cccccbcccccccccccccccccccccccccccccccccccutxcasvabrucavccccccccccccccccccccccccccccccccccccccccccccc 
+350 271 1 2 3 99 96 383 0.250653 66 -1 2 rucavccccccccccccccccckcccccgcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+435 1 3 2 4 100 0 0 0 77 -1 1 rucavccccccccccccccccccccccccccccccccccccvccccccccccccccccccccfccccccccccccctccccccccccccccutycasvab 
+2 1 1 2 31 99 96 385 0.249351 12 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+489 1 1 2 4 100 0 0 0 79 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccccccccccccccccccccccccccutycasvab 
+352 2 2 2 4 99 96 383 0.250653 66 -1 2 rucavccccccccccccccccccccccccccceccccccccccccccccccccccccccccccccccccccxccccccccccccccccccutycasvab 
+225 1 1 2 9 100 97 388 0.25 39 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccccccccccccccccutycasvab 
+321 270 2 2 5 100 87 375 0.232 65 -1 3 rucavccccccccycccccccccccccccccccccccccccccccccccccccccccgecdccccccccccccccczccccccccccccccutycasvab 
+160 1 2 1 5 100 0 0 0 28 -1 1 uucavcccccccccccccccccccccccccccxccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+363 264 1 1 3 100 78 367 0.212534 66 -1 3 rucavccccccccccccccccccyccccccccccccccccccccccpccccccccccccucccccccccccccccccccccccccccccccutycasvab 
+421 2 3 1 3 100 0 0 0 77 -1 2 rucavcccccccccccccccccccccccccccccccccxcccccccccccccccccccccccccccccccccoccccccccccccciccccutycasvab 
+15 1 1 1 7 100 88 379 0.23219 13 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccuccccccccccccccccutycasvab 
+534 300 1 1 3 100 0 0 0 79 -1 2 rucavcccccccccccccccqccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccutycasvab 
+328 1 1 1 4 100 97 388 0.25 65 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccfccccccccccccccccccccccccccccccutycasvab 
+458 1 2 1 3 100 0 0 0 78 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccvccccccccccccccccccccccccccccccocccccccccccutycasvab 
+428 346 2 1 3 104 0 0 0 77 -1 3 aaaarucavcccccccccccccccccccrccccvccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccutycasvab 
+158 1 1 1 8 101 98 392 0.25 28 -1 1 rucavccccccccccccccccccccccccccccccccccccnccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+336 96 1 1 4 100 97 387 0.250646 65 -1 2 rucavccxcccccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+281 1 1 1 3 101 98 393 0.249364 52 -1 1 rucavccccccccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+512 351 2 1 3 101 0 0 0 79 -1 3 rucavccccccccccccnccccccrccccccccccccccccccccccccccccccccccccqcccvccccccccccccccccccccccccccutycasvab 
+112 1 1 1 9 100 97 388 0.25 27 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccutycasvab 
+154 1 1 1 8 100 97 388 0.25 28 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccccccccccccccccccccccccccccutycasvab 
+125 11 1 1 5 101 0 0 0 27 -1 2 ruqcavccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccutycasvab 
+147 1 2 1 5 100 49 287 0.170732 27 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccoccccccccccccccccccccccccccccutycosvab 
+162 1 1 1 5 100 0 0 0 28 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycashab 
+204 1 2 1 5 100 0 0 0 39 -1 1 ruclvcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccyccccccccccccutycasvab 
+536 483 2 1 1 100 0 0 0 91 -1 2 rucavcccccccccccccccccccccccccccoccccccccccccccccccccccccicccccccccccccccccccccccccccccccccutyzasvab 
+537 389 1 1 1 99 0 0 0 91 -1 3 rucavcccccccccccccccccccccccccvcccccccccccccccceccccccccccccccccccccccccccccccccccccccccccutycasvab 
+538 1 1 1 1 100 0 0 0 91 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccytycasvab 
+539 313 2 1 1 100 0 0 0 91 -1 2 rucavccccccccccccccccccccccccccncccccccccccccccccccccccccccccccccccccccccccccccccccccccctccutycanvab 
+540 512 3 1 1 100 0 0 0 91 -1 4 rucavccccccccccccnccccccrccccccccccccccccccccqcccccccccccccrqcccvccccccccccccccccccccccccccutycasvab 
+541 1 1 1 1 100 0 0 0 91 -1 1 rucavcccccccccccccccccccpccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+542 112 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccwcccccccccccccccccciccccccccccccutycasvab 
+543 428 2 1 1 106 0 0 0 92 -1 4 aaaaaarucavcccccccccccccccccccrccccvccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccutycasvab 
+544 273 1 1 1 101 0 0 0 92 -1 2 rucavcccccccccccccccccsccccsccccccccccccccccccccccccccccccccccccvcccccccccccccccccccccpcccccutycasvab 
+545 34 2 1 1 100 0 0 0 92 -1 2 uucavccccccccccccccccccccccccccccbccccccccckcccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+546 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccwcccccccccccccccccccccccccccccccccutycasvab 
+547 154 2 1 1 100 0 0 0 92 -1 2 rucavcccccpcccccccccccccccccccccccccccccccccccccecccccoccccccccccccccccccccccccccccccccccccutycasvab 
+548 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasjab 
+549 336 2 1 1 99 0 0 0 92 -1 3 rucavccxcccccccccccccccccccccccccccccmccccccccccccccccczccccccccccccccccccccccccccccccccccutycasvab 
+550 406 2 1 1 100 0 0 0 92 -1 4 rucavcccdccccgcccccccccccccccccccccccccccccccccccccccccccccycccccciccccccccccpcccccucccccccutycasvab 
+551 316 5 1 1 107 0 0 0 92 -1 3 aaaaaarucavcccccccccccccccccccccccacccccccccccccccccncccccccccccwccccwccccccccccccccccccccccccccccutycasvab 
+552 142 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccxcccccccccccccccccccccvcccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+553 142 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccxccccccccccccccccccccccccccccccccccccccccccccccccxccccccccccccccccccutycasvab 
+554 358 4 1 1 106 0 0 0 92 -1 3 aaaaaarucavccccccccccckcccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccccccccccccccutycasvab 
+555 158 1 1 1 101 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccocnccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+556 142 2 1 1 100 0 0 0 92 -1 2 rucavcccccccsccccccccccxccccccccccccccccccccccccccccccccccccccccccccccccccccccccuccccccccccutycasvab 
+557 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccccccccccccuccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+558 2 2 1 1 99 0 0 0 92 -1 2 rucavcccccccccccccccccccccxccccccccccccclcccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+559 421 3 1 1 100 0 0 0 92 -1 3 recavcccccccccccccccccccccccccccccccccxcccccccccccccccccacccccccccccccccoccccccccccocciccccutycasvab 
+560 171 1 1 1 99 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccclccccccccccccccccccccccccccccccccccccfcutycasvab 
+561 96 1 1 1 100 0 0 0 92 -1 2 rucavccxcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccpcccccccccccccccccccccccutycasvab 
+562 171 1 1 1 99 0 0 0 92 -1 2 rucavcccccccccccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccccccccccccccccccfcutycasvab 
+563 1 1 1 1 100 0 0 0 92 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccwcccccutycasvab 
+564 350 1 1 1 99 0 0 0 92 -1 3 rucavccccccccccccccccckcccccgccccccccccwccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+565 1 1 1 1 100 0 0 0 92 -1 1 rucavcccccccccccccccccccccckcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+566 281 2 1 1 101 0 0 0 92 -1 2 rucavccccxcccccccccccccccccaccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccutycasvab 
+567 483 1 1 1 100 0 0 0 92 -1 2 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccicccccccecccccccccccccccccccccccccutycasvab 
+568 358 5 1 1 106 0 0 0 92 -1 3 aaaaaarucavccccccccqcckcccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccccccccccccccutycasvab 
+569 534 2 1 1 100 0 0 0 92 -1 3 rucavcccccccccccjcccqccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccutyfasvab 
+570 1 1 1 1 101 0 0 0 93 -1 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccscccccccccccccutycasvab 
+571 458 1 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccvccccccccycccccccccccccccccccccocccccccccccutycasvab 
+572 328 2 1 1 100 0 0 0 93 -1 2 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccfcccccccccccccccclcecccccccccccutycasvab 
+573 15 2 1 1 100 0 0 0 93 -1 2 rucavccccccccccccccccccccccccccccyccccccccccccccccccccccccccccccccccccccccuccccccccccceccccutycasvab 
+574 350 1 1 1 99 0 0 0 93 -1 3 rucavccccccccccccccccckcccccgccccccccccccccccccccccccccccccccccccccccjccccccccccccccccccccutycasvab 
+575 316 5 1 1 107 0 0 0 93 -1 3 aaaaaarucavcccccccccccccccccccccccaccccccccccccccccccccccccjccccwccccwccccccccccccccccccccccccccccutycasvab 
+576 533 1 1 1 100 0 0 0 93 -1 4 rucavccccxccccccccccccccccccccccczcccccgcccccccccccccccccchcccccccccccccccycccccccccctcccccutycasvab 
+577 171 2 1 1 99 0 0 0 93 -1 2 rucavcceccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccfcutycasvab 
+578 378 1 1 1 99 0 0 0 93 -1 2 rucavccccccccccccccccdccccccccccccccccccccccccccccccccccccccccccccccccccccccecccccccccccccutycasvab 
+579 331 1 1 1 100 0 0 0 93 -1 3 rucavcccccccceccccccccccccccccccccmcccccccccccccccccccccccccccccccqccccccccccccccccccccccccutycasvab 
+580 1 1 1 1 100 0 0 0 93 -1 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutynasvab 
+581 363 2 1 1 100 0 0 0 93 -1 4 rucavccccccsccccccyccccyccccccccccccccccccccccpccccccccccccucccccccccccccccccccccccccccccccutycasvab 
+582 10 2 1 1 101 0 0 0 95 -1 2 rucavcccctcccccccceccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccuqtycasvab 
+583 304 2 1 1 101 0 0 0 96 -1 3 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccacccccccmcccpccccccccccccccccccccuktycasvab 
+584 304 1 1 1 101 0 0 0 96 -1 3 rucavcccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccccccpccccccccccccccccccccuktycasvab 
+585 147 27 1 1 100 0 0 0 98 -1 2 ccccccccccccoccccccccccccccccccccccccccccutycosvabrucavcccccqccccccccccccccccccccccccccccccccccccccc 
+586 364 28 1 1 100 0 0 0 100 -1 3 ccccclcccccccccccccccccccccccccccccccccccutlcasvabrucavcccccccclcccccccccccccyccccccccccccccwccccccc 

Added: development/tests/demes_hex_repl/expected/data/dominant.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/dominant.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/dominant.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,30 @@
+# Avida Dominant Data
+# Tue May  1 09:13:50 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 196 0 0 0 0 0.251295 1 100-aaaaa 
+40 97 389 0.249357 0.00257069 100 100 97 45 0 0 0 0 0.251948 1 100-aaaaa 
+50 97 389 0.249357 0.00257069 100 100 97 45 0 0 0 0 0.251948 1 100-aaaaa 
+60 97 389 0.249357 0.00257069 100 100 97 67 0 0 0 0 0.251908 1 100-aaaaa 
+70 97 389 0.249357 0.00257069 100 100 97 98 0 0 0 0 0.251908 1 100-aaaaa 
+80 97 389 0.249357 0.00257069 100 100 97 16 0 0 0 0 0.250653 1 100-aaaaa 
+90 97 389 0.249357 0.00257069 100 100 97 16 0 0 0 0 0.250653 1 100-aaaaa 
+100 97 389 0.249357 0.00257069 100 100 97 22 0 0 0 0 0.252604 1 100-aaaaa 

Added: development/tests/demes_hex_repl/expected/data/historic-100.pop
===================================================================
--- development/tests/demes_hex_repl/expected/data/historic-100.pop	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/historic-100.pop	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,38 @@
+#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
+
+271 1 2 0 2 100 97 387 0.250646 52 79 1 rucavccccccccccccccccckccccccgcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+301 1 2 0 1 100 0 0 0 54 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccbcccccccccccccccccccccccccccccccccccutxcasvab 
+184 1 1 0 4 100 97 388 0.25 38 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccutycasvab 
+110 1 1 0 4 100 97 388 0.25 27 79 1 rucavccccccccccccccccccccccccccccccccccccccccqcccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+264 2 2 0 1 100 0 0 0 52 79 2 rucavccccccccccccccccccyccccccccccccccccccccccpccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+168 1 1 0 4 100 97 389 0.249357 28 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccccccccccccccccccutycasvab 
+345 168 1 0 1 100 0 0 0 65 79 2 rucavccccxcccccccccccccccccccccccccccccccccccccccccccccccchccccccccccccccccccccccccccccccccutycasvab 
+140 1 1 0 7 100 97 388 0.25 27 79 1 rucavcccccccccccccccccccccccccccccmccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+48 1 1 0 6 101 98 393 0.249364 14 79 1 rucavcccccccccccccccccccrcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+351 48 1 0 1 101 0 0 0 66 79 2 rucavcccccccccccccccccccrccccccccccccccccccccccccccccccccccccqccccccccccccccccccccccccccccccutycasvab 
+346 184 4 0 1 102 0 0 0 65 79 2 aarucavcccccccccccccccccccrccccvccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccutycasvab 
+45 1 2 0 6 100 97 387 0.250646 14 79 1 rucavcccccccclccccccccccccccccccccccccccccccccccccccccclcccccccccccccccccccccccccccccccccccutycasvab 
+135 1 1 0 7 100 97 388 0.25 27 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccczccccccccccccccutycasvab 
+270 135 2 0 1 100 87 376 0.231383 52 79 2 rucavccccccccycccccccccccccccccccccccccccccccccccccccccccceccccccccccccccccczccccccccccccccutycasvab 
+300 1 1 0 1 100 97 388 0.25 54 79 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccdcccccccccccccccccccccccutycasvab 
+148 1 1 0 4 100 97 388 0.25 28 79 1 rucavccccccccccccccccccccccccccccccccccccccccccciccccccccccccccccccccccccccccccccccccccccccutycasvab 
+370 148 1 0 1 100 0 0 0 66 79 2 rucavccccccccccccccccccccccccccccccccccccccccccciccccccccccccccccccccccccccccccccccccwcccccutycasvab 
+326 52 2 0 1 100 0 0 0 65 79 2 rucavccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccciccccccccccccccccucccccccutycasvab 
+52 1 1 0 5 100 97 388 0.25 14 79 1 rucavccccccccmcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccutycasvab 
+296 1 1 0 1 100 97 388 0.25 53 79 1 rucavcccccccccccccccccccccccccccccccccccccccccccccwccccccccccccccccccccccccccccccccccccccccutycasvab 
+11 1 1 0 1 100 0 0 0 13 39 1 rucavccccccccccccccccccccccccccccccccccccccccccccccccccccccmcccccccccccccccccccccccccccccccutycasvab 

Added: development/tests/demes_hex_repl/expected/data/resource.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/resource.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/resource.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,17 @@
+# Avida resource data
+# Tue May  1 09:13:50 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_hex_repl/expected/data/stats.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/stats.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/stats.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,26 @@
+# Generic Statistics Data
+# Tue May  1 09:13:50 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.562422 0.562358 0.8265 0.826353 0 3.27633 0 0 0 0 
+40 0.00751309 0.562389 0.562358 0.826426 0.826353 -217 2.64264 0 0 0 0 
+50 0.00751309 0.562389 0.562358 0.826426 0.826353 0 2.64264 0 0 0 0 
+60 0.00744606 0.562559 0.562358 0.826813 0.826353 0 3.39441 0 0 0 0 
+70 0.00990077 0.563514 0.562358 0.828998 0.826353 0 4.13243 0 0 0 0 
+80 0.0304772 0.568959 0.562358 0.841552 0.826353 -261 3.69022 0 0 0 0 
+90 0.0304772 0.568959 0.562358 0.841552 0.826353 0 3.69022 0 0 0 0 
+100 0.0281291 0.566532 0.562358 0.835936 0.826353 1 4.31659 0 0 0 0 

Added: development/tests/demes_hex_repl/expected/data/tasks.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/tasks.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/tasks.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,26 @@
+# Avida tasks data
+# Tue May  1 09:13:50 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_hex_repl/expected/data/tasks_exe.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/tasks_exe.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/tasks_exe.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,26 @@
+# Avida tasks execution data
+# Tue May  1 09:13:50 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_hex_repl/expected/data/tasks_quality.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/tasks_quality.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/tasks_quality.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,34 @@
+# Avida tasks quality data
+# Tue May  1 09:13:50 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_hex_repl/expected/data/time.dat
===================================================================
--- development/tests/demes_hex_repl/expected/data/time.dat	                        (rev 0)
+++ development/tests/demes_hex_repl/expected/data/time.dat	2007-05-01 13:31:29 UTC (rev 1511)
@@ -0,0 +1,18 @@
+# Avida time data
+# Tue May  1 09:13:50 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.299976 1.98734 11850 
+40 0.404392 2.37 3000 
+50 0.508094 2.37 3000 
+60 0.611667 3.31746 5670 
+70 0.715719 4.27479 10590 
+80 0.8203 4.77 3000 
+90 0.926457 4.77 3000 
+100 1.03195 5.82123 5340 

Added: development/tests/demes_hex_repl/test_list
===================================================================
--- development/tests/demes_hex_repl/test_list	                        (rev 0)
+++ development/tests/demes_hex_repl/test_list	2007-05-01 13:31:29 UTC (rev 1511)
@@ -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