[Avida-SVN] r1641 - in development/tests: . sex sex/config sex/expected sex/expected/data sex-asex sex-asex/config sex-asex/expected sex-asex/expected/data sex-modular sex-modular/config sex-modular/expected sex-modular/expected/data

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Tue Jun 5 13:12:41 PDT 2007


Author: beckma24
Date: 2007-06-05 16:12:40 -0400 (Tue, 05 Jun 2007)
New Revision: 1641

Added:
   development/tests/sex-asex/
   development/tests/sex-asex/config/
   development/tests/sex-asex/config/avida.cfg
   development/tests/sex-asex/config/environment.cfg
   development/tests/sex-asex/config/events.cfg
   development/tests/sex-asex/config/inst_set.sex.asex
   development/tests/sex-asex/config/organism.50.asex
   development/tests/sex-asex/config/organism.50.sex
   development/tests/sex-asex/expected/
   development/tests/sex-asex/expected/data/
   development/tests/sex-asex/expected/data/average.dat
   development/tests/sex-asex/expected/data/count.dat
   development/tests/sex-asex/expected/data/dominant.dat
   development/tests/sex-asex/expected/data/resource.dat
   development/tests/sex-asex/expected/data/stats.dat
   development/tests/sex-asex/expected/data/tasks.dat
   development/tests/sex-asex/expected/data/time.dat
   development/tests/sex-asex/test_list
   development/tests/sex-modular/
   development/tests/sex-modular/config/
   development/tests/sex-modular/config/avida.cfg
   development/tests/sex-modular/config/environment.cfg
   development/tests/sex-modular/config/events.cfg
   development/tests/sex-modular/config/inst_set.sex
   development/tests/sex-modular/config/organism.50.asex
   development/tests/sex-modular/config/organism.50.sex
   development/tests/sex-modular/expected/
   development/tests/sex-modular/expected/data/
   development/tests/sex-modular/expected/data/average.dat
   development/tests/sex-modular/expected/data/count.dat
   development/tests/sex-modular/expected/data/dominant.dat
   development/tests/sex-modular/expected/data/resource.dat
   development/tests/sex-modular/expected/data/stats.dat
   development/tests/sex-modular/expected/data/tasks.dat
   development/tests/sex-modular/expected/data/time.dat
   development/tests/sex-modular/test_list
   development/tests/sex/
   development/tests/sex/config/
   development/tests/sex/config/avida.cfg
   development/tests/sex/config/environment.cfg
   development/tests/sex/config/events.cfg
   development/tests/sex/config/inst_set.sex
   development/tests/sex/config/organism.50.asex
   development/tests/sex/config/organism.50.sex
   development/tests/sex/expected/
   development/tests/sex/expected/data/
   development/tests/sex/expected/data/average.dat
   development/tests/sex/expected/data/count.dat
   development/tests/sex/expected/data/dominant.dat
   development/tests/sex/expected/data/resource.dat
   development/tests/sex/expected/data/stats.dat
   development/tests/sex/expected/data/tasks.dat
   development/tests/sex/expected/data/time.dat
   development/tests/sex/test_list
Log:
Added sexual replication consistency tests from Dule.

Added: development/tests/sex/config/avida.cfg
===================================================================
--- development/tests/sex/config/avida.cfg	                        (rev 0)
+++ development/tests/sex/config/avida.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,206 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.6.0   # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0    # 0 = Disabled
+                  # 1 = Enabled
+                  # 2 = Interactive
+VIEW_MODE 0       # Initial viewer screen
+CLONE_FILE -      # Clone file to load
+MT_CONCURRENCY 1  # Number of concurrent analyze threads
+VERBOSITY 1       # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 60       # Width of the Avida world
+WORLD_Y 60       # Height of the Avida world
+WORLD_GEOMETRY 2  # 1 = Bounded Grid
+                  # 2 = Torus
+NUM_DEMES 0       # Number of independed groups in the population; 0=off
+RANDOM_SEED 7     # Random number seed (0 for based on time)
+HARDWARE_TYPE 0   # 0 = Original CPUs
+                  # 1 = New SMT CPUs
+                  # 2 = Transitional SMT
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data                     # Directory in which config files are found
+INST_SET inst_set.sex              # 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 organism.50.sex    # Organism to seed the soup
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 4           # 0 = Replace random organism in neighborhood
+                         # 1 = Replace oldest organism in neighborhood
+                         # 2 = Replace largest Age/Merit in neighborhood
+                         # 3 = Place only in empty cells in neighborhood
+                         # 4 = Replace random from population (Mass Action)
+                         # 5 = Replace oldest in entire population (like Tierra)
+                         # 6 = Replace random within deme
+PREFER_EMPTY 1           # Give empty cells preference in offsping placement?
+DEATH_METHOD 2           # 0 = Never die of old age.
+                         # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+                         # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20             # Modifies DEATH_METHOD
+AGE_DEVIATION 0          # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0           # (Orignal CPU Only)
+                         # 0 = Allocated space is set to default instruction.
+                         # 1 = Set to section of dead genome (Necrophilia)
+                         # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1          # 0 = Divide leaves state of mother untouched.
+                         # 1 = Divide resets state of mother
+                         #     (after the divide, we have 2 children)
+                         # 2 = Divide resets state of current thread only
+                         #     (does not touch possible parasite threads)
+GENERATION_INC_METHOD 1  # 0 = Only the generation of the child is
+                         #     increased on divide.
+                         # 1 = Both the generation of the mother and child are
+                         #     increased on divide (good with DIVIDE_METHOD 1).
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0            # number of modules in the genome
+CONT_REC_REGS 1         # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1    # are (modular) recombination regions swapped randomly
+                        #  or with corresponding positions?
+TWO_FOLD_COST_SEX 0     # 1 = only one recombined offspring is born.
+                        # 2 = both offspring are born
+SAME_LENGTH_SEX 0       # 0 = recombine with any genome
+                        # 1 = only recombine w/ same length
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 1.0  # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.95  # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.05     # 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.
+DIE_PROB 0.0          # probability of death when 'die' instruction is executed
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0    # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0     # 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.003    # Mutation rate (per site, applied on divide)
+DIVIDE_MUT_PROB 0.0   # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.0   # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.0   # Deletion rate (per divide)
+PARENT_MUT_PROB 0.0   # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1   # If this is >= 0, ONLY this line is mutated
+INJECT_INS_PROB 0.0   # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0   # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0   # Mutation rate (per site, applied on inject)
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0           # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0     #   0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0         # 
+REVERT_BENEFICIAL 0.0      # 
+STERILIZE_FATAL 0.0        # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0  # 
+STERILIZE_NEUTRAL 0.0      # 
+STERILIZE_BENEFICIAL 0.0   # 
+FAIL_IMPLICIT 0            # Should copies that failed *not* due to mutations
+                           # be eliminated?
+NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30        # Ave number of insts per org per update
+SLICING_METHOD 2         # 0 = CONSTANT: all organisms get default...
+                         # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+                         # 2 = INTEGRATED: Perfectly integrated deterministic.
+SIZE_MERIT_METHOD 4      # 0 = off (merit is 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
+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
+BASE_SIZE_MERIT 100      # Base merit when size is *not* used
+DEFAULT_BONUS 1.0        # The bonus an organism gets before any tasks
+MERIT_GIVEN 0.0          # Amount of merit donated with 'donate' command
+MERIT_RECEIVED 0.0       # Amount of merit given with 'donate' command
+MAX_DONATE_KIN_DIST -1   # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1  # Limit on edit distance for donate; -1=no max
+MAX_DONATES 1000000      # Limit on number of donates organisms are allowed.
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1  # Keep all ancestors of the active population?
+                      # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3           # Number of organisms in a genotype needed for it
+                      #   to be considered viable.
+GENOTYPE_PRINT 0      # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0  # Print out a genotype if it stays dominant for
+                      #   this many updates. (0 = off)
+SPECIES_THRESHOLD 2   # max failure count for organisms to be same species
+SPECIES_RECORDING 0   # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0       # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0  # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0  # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0  # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0    # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are.  Works only when LOG_LINEAGES is set to 1.
+#   0 = manual creation (on inject, use successive integers as lineage labels).
+#   1 = when a child's (potential) fitness is higher than that of its parent.
+#   2 = when a child's (potential) fitness is higher than max in population.
+#   3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+#   4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+#   5 = same as child's (potential) fitness is higher than that of the
+#       currently dominant organism, and also than that of any organism
+#       currently in the same lineage.
+#   6 = when a child's (potential) fitness is higher than any organism
+#       currently in the same lineage.
+#   7 = when a child's (potential) fitness is higher than that of any
+#       organism in its line of descent
+LOG_LINEAGES 0             # 
+LINEAGE_CREATION_METHOD 0  # 
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0      # Enable Network Communication Support
+NET_DROP_PROB 0.0  # Message drop rate
+NET_MUT_PROB 0.0   # Message corruption probability
+NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0      # price offered by organisms attempting to buy
+SELL_PRICE 0     # price offered by organisms attempting to sell

Added: development/tests/sex/config/environment.cfg
===================================================================
--- development/tests/sex/config/environment.cfg	                        (rev 0)
+++ development/tests/sex/config/environment.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,23 @@
+##############################################################################
+#
+# This is the setup file for the task/resource system.  From here, you can
+# setup the available resources (including their inflow and outflow rates) as
+# well as the reactions that the organisms can trigger by performing tasks.
+#
+# This file is currently setup to reward 9 tasks, all of which use the
+# "infinite" resource, which is undepletable.
+#
+# For information on how to use this file, see:  doc/environment.html
+# For other sample environments, see:  source/support/config/ 
+#
+##############################################################################
+
+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/sex/config/events.cfg
===================================================================
--- development/tests/sex/config/events.cfg	                        (rev 0)
+++ development/tests/sex/config/events.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,39 @@
+##############################################################################
+#
+# This is the setup file for the events system.  From here, you can
+# configure any actions that you want to have happen during the course of
+# an experiment, including setting the times for data collection.
+#
+# basic syntax: [trigger] [start:interval:stop] [action/event] [arguments...]
+#
+# This file is currently setup to record key information every 100 updates.
+#
+# For information on how to use this file, see:  doc/events.html
+# For other sample event configurations, see:  support/config/
+#
+##############################################################################
+
+# Print all of the standard data files...
+u 0:100:end PrintAverageData       # Save info about they average genotypes
+u 0:100:end PrintDominantData      # Save info about most abundant genotypes
+u 0:100:end PrintStatsData         # Collect satistics about entire pop.
+u 0:100:end PrintCountData         # Count organisms, genotypes, species, etc.
+u 0:100:end PrintTasksData         # Save organisms counts for each task.
+u 0:100:end PrintTimeData          # Track time conversion (generations, etc.)
+u 0:100:end PrintResourceData      # Track resource abundance.
+
+# A few data files not printed by default
+# u 0:100 PrintDominantGenotype      # Save the most abundant genotypes
+# u 100:100:end PrintErrorData       # Std. Error on averages.
+# u 100:100:end PrintVarianceData    # Variance on averages.
+# u 100:100:end PrintTotalsData      # Total counts over entire run.
+# u 100:100:end PrintTasksExeData    # Num. times tasks have been executed.
+# u 100:100:end PrintTasksQualData   # Task quality information
+
+# Setup the exit time and full population data collection.
+u 50000:50000 SavePopulation         # Save current state of population.
+u 50000:50000 SaveHistoricPopulation # Save ancestors of current population.
+
+u 100000 PrintDominantGenotype
+
+u 100 exit                        # exit

Added: development/tests/sex/config/inst_set.sex
===================================================================
--- development/tests/sex/config/inst_set.sex	                        (rev 0)
+++ development/tests/sex/config/inst_set.sex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,52 @@
+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.
+div-sex   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? 
+
+#adv-head   1
+#jump-f     1
+#jump-b     1
+#call       1
+#return     1
+#if-bit-1   1
+#get        1
+#put        1
+#h-read     1
+#h-write    1
+#set-head   1
+#search-f   1
+#search-b   1
+
+
+# Works on multiple nops:  pop  push  inc  dec  IO  adv-head 
+
+# What if we add a new head.  Search will return the location of something,
+# and put the new head there.  Then set-head will move another head to that
+# point.  In the case of the copy loop, it only needs to be set once and
+# this will speed up the code quite a bit!
+
+# Search with no template returns current position (abs line number) in
+# genome.

Added: development/tests/sex/config/organism.50.asex
===================================================================
--- development/tests/sex/config/organism.50.asex	                        (rev 0)
+++ development/tests/sex/config/organism.50.asex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,50 @@
+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      #
+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      #
+div-asex   #    ...divide!
+mov-head   # Otherwise, loop back to the beginning of the copy loop.
+nop-A      # End label.
+nop-B      #

Added: development/tests/sex/config/organism.50.sex
===================================================================
--- development/tests/sex/config/organism.50.sex	                        (rev 0)
+++ development/tests/sex/config/organism.50.sex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,50 @@
+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      #
+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      #
+div-sex   #    ...divide!
+mov-head   # Otherwise, loop back to the beginning of the copy loop.
+nop-A      # End label.
+nop-B      #

Added: development/tests/sex/expected/data/average.dat
===================================================================
--- development/tests/sex/expected/data/average.dat	                        (rev 0)
+++ development/tests/sex/expected/data/average.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida Average Data
+# Tue Jun  5 16:07:48 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 47.000000 189.000000 0.000000 0.000000 50.000000 50.000000 47.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+100 46.9004 189.772 0.247666 0 50 50 46.8913 5.35022 0.00411692 0.00329354 0.551256 14.9621 1.62331 0 0 

Added: development/tests/sex/expected/data/count.dat
===================================================================
--- development/tests/sex/expected/data/count.dat	                        (rev 0)
+++ development/tests/sex/expected/data/count.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida count data
+# Tue Jun  5 16:07:48 2007
+#  1: update
+#  2: number of insts executed this update
+#  3: number of organisms
+#  4: number of different genotypes
+#  5: number of different threshold genotypes
+#  6: number of different species
+#  7: number of different threshold species
+#  8: number of different lineages
+#  9: number of births in this update
+# 10: number of deaths in this update
+# 11: number of breed true
+# 12: number of breed true organisms?
+# 13: number of no-birth organisms
+# 14: number of single-threaded organisms
+# 15: number of multi-threaded organisms
+# 16: number of modified organisms
+
+0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0 
+100 72780 2429 454 84 0 0 0 10 7 8 2120 1250 2429 0 0 

Added: development/tests/sex/expected/data/dominant.dat
===================================================================
--- development/tests/sex/expected/data/dominant.dat	                        (rev 0)
+++ development/tests/sex/expected/data/dominant.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida Dominant Data
+# Tue Jun  5 16:07:48 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 50 0.000000 0.000000 1 0 0 0 0 0.000000 1 050-aaaaa 
+100 47 189 0.248677 0.00529101 50 50 47 1561 0 0 0 1 0.255435 1 050-aaaaa 

Added: development/tests/sex/expected/data/resource.dat
===================================================================
--- development/tests/sex/expected/data/resource.dat	                        (rev 0)
+++ development/tests/sex/expected/data/resource.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,8 @@
+# Avida resource data
+# Tue Jun  5 16:07:48 2007
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+#  1: Update
+
+0 
+100 

Added: development/tests/sex/expected/data/stats.dat
===================================================================
--- development/tests/sex/expected/data/stats.dat	                        (rev 0)
+++ development/tests/sex/expected/data/stats.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,17 @@
+# Generic Statistics Data
+# Tue Jun  5 16:07:48 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.000000 0.000000 -0.000000 -0.000000 1 0.000000 0.000000 0 0 0 
+100 0.00407482 0 0 -0 -0 5 2.68083 0 0 0 0 

Added: development/tests/sex/expected/data/tasks.dat
===================================================================
--- development/tests/sex/expected/data/tasks.dat	                        (rev 0)
+++ development/tests/sex/expected/data/tasks.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,17 @@
+# Avida tasks data
+# Tue Jun  5 16:07:48 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 
+100 0 0 0 0 0 0 0 0 0 

Added: development/tests/sex/expected/data/time.dat
===================================================================
--- development/tests/sex/expected/data/time.dat	                        (rev 0)
+++ development/tests/sex/expected/data/time.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,9 @@
+# Avida time data
+# Tue Jun  5 16:07:48 2007
+#  1: update
+#  2: avida time
+#  3: average generation
+#  4: num_executed?
+
+0 0.000000 0.000000 30 
+100 2.12838 14.9621 72780 

Added: development/tests/sex/test_list
===================================================================
--- development/tests/sex/test_list	                        (rev 0)
+++ development/tests/sex/test_list	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,37 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+; Command line arguments to pass to the application
+args =                   
+
+app = %(default_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 = Ben Beckmann ; Who created the test
+email = beckma24 at 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.
+;
+; builddir 
+; cpus 
+; default_app 
+; mode 
+; perf_repeat 
+; perf_user_margin 
+; perf_wall_margin 
+; svn 
+; svnmetadir 
+; svnversion 
+; testdir 
+;--- End Test Configuration File ---

Added: development/tests/sex-asex/config/avida.cfg
===================================================================
--- development/tests/sex-asex/config/avida.cfg	                        (rev 0)
+++ development/tests/sex-asex/config/avida.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,206 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.6.0   # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0    # 0 = Disabled
+                  # 1 = Enabled
+                  # 2 = Interactive
+VIEW_MODE 0       # Initial viewer screen
+CLONE_FILE -      # Clone file to load
+MT_CONCURRENCY 1  # Number of concurrent analyze threads
+VERBOSITY 1       # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 60       # Width of the Avida world
+WORLD_Y 60       # Height of the Avida world
+WORLD_GEOMETRY 2  # 1 = Bounded Grid
+                  # 2 = Torus
+NUM_DEMES 0       # Number of independed groups in the population; 0=off
+RANDOM_SEED 7     # Random number seed (0 for based on time)
+HARDWARE_TYPE 0   # 0 = Original CPUs
+                  # 1 = New SMT CPUs
+                  # 2 = Transitional SMT
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data                     # Directory in which config files are found
+INST_SET inst_set.sex.asex              # 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 organism.50.sex    # Organism to seed the soup
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 4           # 0 = Replace random organism in neighborhood
+                         # 1 = Replace oldest organism in neighborhood
+                         # 2 = Replace largest Age/Merit in neighborhood
+                         # 3 = Place only in empty cells in neighborhood
+                         # 4 = Replace random from population (Mass Action)
+                         # 5 = Replace oldest in entire population (like Tierra)
+                         # 6 = Replace random within deme
+PREFER_EMPTY 1           # Give empty cells preference in offsping placement?
+DEATH_METHOD 2           # 0 = Never die of old age.
+                         # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+                         # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20             # Modifies DEATH_METHOD
+AGE_DEVIATION 0          # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0           # (Orignal CPU Only)
+                         # 0 = Allocated space is set to default instruction.
+                         # 1 = Set to section of dead genome (Necrophilia)
+                         # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1          # 0 = Divide leaves state of mother untouched.
+                         # 1 = Divide resets state of mother
+                         #     (after the divide, we have 2 children)
+                         # 2 = Divide resets state of current thread only
+                         #     (does not touch possible parasite threads)
+GENERATION_INC_METHOD 1  # 0 = Only the generation of the child is
+                         #     increased on divide.
+                         # 1 = Both the generation of the mother and child are
+                         #     increased on divide (good with DIVIDE_METHOD 1).
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
+MODULE_NUM 0            # number of modules in the genome
+CONT_REC_REGS 1         # are (modular) recombination regions continuous
+CORESPOND_REC_REGS 1    # are (modular) recombination regions swapped randomly
+                        #  or with corresponding positions?
+TWO_FOLD_COST_SEX 0     # 1 = only one recombined offspring is born.
+                        # 2 = both offspring are born
+SAME_LENGTH_SEX 0       # 0 = recombine with any genome
+                        # 1 = only recombine w/ same length
+
+### DIVIDE_GROUP ###
+# Divide Restrictions
+CHILD_SIZE_RANGE 1.0  # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.95  # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.05     # 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.
+DIE_PROB 0.0          # probability of death when 'die' instruction is executed
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0    # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0     # 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.003    # Mutation rate (per site, applied on divide)
+DIVIDE_MUT_PROB 0.0   # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.0   # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.0   # Deletion rate (per divide)
+PARENT_MUT_PROB 0.0   # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1   # If this is >= 0, ONLY this line is mutated
+INJECT_INS_PROB 0.0   # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0   # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0   # Mutation rate (per site, applied on inject)
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0           # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0     #   0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0         # 
+REVERT_BENEFICIAL 0.0      # 
+STERILIZE_FATAL 0.0        # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0  # 
+STERILIZE_NEUTRAL 0.0      # 
+STERILIZE_BENEFICIAL 0.0   # 
+FAIL_IMPLICIT 0            # Should copies that failed *not* due to mutations
+                           # be eliminated?
+NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30        # Ave number of insts per org per update
+SLICING_METHOD 2         # 0 = CONSTANT: all organisms get default...
+                         # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+                         # 2 = INTEGRATED: Perfectly integrated deterministic.
+SIZE_MERIT_METHOD 4      # 0 = off (merit is 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
+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
+BASE_SIZE_MERIT 100      # Base merit when size is *not* used
+DEFAULT_BONUS 1.0        # The bonus an organism gets before any tasks
+MERIT_GIVEN 0.0          # Amount of merit donated with 'donate' command
+MERIT_RECEIVED 0.0       # Amount of merit given with 'donate' command
+MAX_DONATE_KIN_DIST -1   # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1  # Limit on edit distance for donate; -1=no max
+MAX_DONATES 1000000      # Limit on number of donates organisms are allowed.
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1  # Keep all ancestors of the active population?
+                      # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3           # Number of organisms in a genotype needed for it
+                      #   to be considered viable.
+GENOTYPE_PRINT 0      # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0  # Print out a genotype if it stays dominant for
+                      #   this many updates. (0 = off)
+SPECIES_THRESHOLD 2   # max failure count for organisms to be same species
+SPECIES_RECORDING 0   # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0       # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0  # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0  # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0  # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0    # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are.  Works only when LOG_LINEAGES is set to 1.
+#   0 = manual creation (on inject, use successive integers as lineage labels).
+#   1 = when a child's (potential) fitness is higher than that of its parent.
+#   2 = when a child's (potential) fitness is higher than max in population.
+#   3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+#   4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+#   5 = same as child's (potential) fitness is higher than that of the
+#       currently dominant organism, and also than that of any organism
+#       currently in the same lineage.
+#   6 = when a child's (potential) fitness is higher than any organism
+#       currently in the same lineage.
+#   7 = when a child's (potential) fitness is higher than that of any
+#       organism in its line of descent
+LOG_LINEAGES 0             # 
+LINEAGE_CREATION_METHOD 0  # 
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0      # Enable Network Communication Support
+NET_DROP_PROB 0.0  # Message drop rate
+NET_MUT_PROB 0.0   # Message corruption probability
+NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0      # price offered by organisms attempting to buy
+SELL_PRICE 0     # price offered by organisms attempting to sell

Added: development/tests/sex-asex/config/environment.cfg
===================================================================
--- development/tests/sex-asex/config/environment.cfg	                        (rev 0)
+++ development/tests/sex-asex/config/environment.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,23 @@
+##############################################################################
+#
+# This is the setup file for the task/resource system.  From here, you can
+# setup the available resources (including their inflow and outflow rates) as
+# well as the reactions that the organisms can trigger by performing tasks.
+#
+# This file is currently setup to reward 9 tasks, all of which use the
+# "infinite" resource, which is undepletable.
+#
+# For information on how to use this file, see:  doc/environment.html
+# For other sample environments, see:  source/support/config/ 
+#
+##############################################################################
+
+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/sex-asex/config/events.cfg
===================================================================
--- development/tests/sex-asex/config/events.cfg	                        (rev 0)
+++ development/tests/sex-asex/config/events.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,42 @@
+##############################################################################
+#
+# This is the setup file for the events system.  From here, you can
+# configure any actions that you want to have happen during the course of
+# an experiment, including setting the times for data collection.
+#
+# basic syntax: [trigger] [start:interval:stop] [action/event] [arguments...]
+#
+# This file is currently setup to record key information every 100 updates.
+#
+# For information on how to use this file, see:  doc/events.html
+# For other sample event configurations, see:  support/config/
+#
+##############################################################################
+
+u 0 inject organism.50.asex 1 
+u 0 inject organism.50.asex 1800
+
+# Print all of the standard data files...
+u 0:100:end PrintAverageData       # Save info about they average genotypes
+u 0:100:end PrintDominantData      # Save info about most abundant genotypes
+u 0:100:end PrintStatsData         # Collect satistics about entire pop.
+u 0:100:end PrintCountData         # Count organisms, genotypes, species, etc.
+u 0:100:end PrintTasksData         # Save organisms counts for each task.
+u 0:100:end PrintTimeData          # Track time conversion (generations, etc.)
+u 0:100:end PrintResourceData      # Track resource abundance.
+
+# A few data files not printed by default
+# u 0:100 PrintDominantGenotype      # Save the most abundant genotypes
+# u 100:100:end PrintErrorData       # Std. Error on averages.
+# u 100:100:end PrintVarianceData    # Variance on averages.
+# u 100:100:end PrintTotalsData      # Total counts over entire run.
+# u 100:100:end PrintTasksExeData    # Num. times tasks have been executed.
+# u 100:100:end PrintTasksQualData   # Task quality information
+
+# Setup the exit time and full population data collection.
+u 50000:50000 SavePopulation         # Save current state of population.
+u 50000:50000 SaveHistoricPopulation # Save ancestors of current population.
+
+u 100000 PrintDominantGenotype
+
+u 100 exit                        # exit

Added: development/tests/sex-asex/config/inst_set.sex.asex
===================================================================
--- development/tests/sex-asex/config/inst_set.sex.asex	                        (rev 0)
+++ development/tests/sex-asex/config/inst_set.sex.asex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,53 @@
+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.
+div-asex   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? 
+div-sex   1   # A   Cuts off everything between the read and write heads
+
+#adv-head   1
+#jump-f     1
+#jump-b     1
+#call       1
+#return     1
+#if-bit-1   1
+#get        1
+#put        1
+#h-read     1
+#h-write    1
+#set-head   1
+#search-f   1
+#search-b   1
+
+
+# Works on multiple nops:  pop  push  inc  dec  IO  adv-head 
+
+# What if we add a new head.  Search will return the location of something,
+# and put the new head there.  Then set-head will move another head to that
+# point.  In the case of the copy loop, it only needs to be set once and
+# this will speed up the code quite a bit!
+
+# Search with no template returns current position (abs line number) in
+# genome.

Added: development/tests/sex-asex/config/organism.50.asex
===================================================================
--- development/tests/sex-asex/config/organism.50.asex	                        (rev 0)
+++ development/tests/sex-asex/config/organism.50.asex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,50 @@
+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      #
+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      #
+div-asex   #    ...divide!
+mov-head   # Otherwise, loop back to the beginning of the copy loop.
+nop-A      # End label.
+nop-B      #

Added: development/tests/sex-asex/config/organism.50.sex
===================================================================
--- development/tests/sex-asex/config/organism.50.sex	                        (rev 0)
+++ development/tests/sex-asex/config/organism.50.sex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,50 @@
+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      #
+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      #
+div-sex   #    ...divide!
+mov-head   # Otherwise, loop back to the beginning of the copy loop.
+nop-A      # End label.
+nop-B      #

Added: development/tests/sex-asex/expected/data/average.dat
===================================================================
--- development/tests/sex-asex/expected/data/average.dat	                        (rev 0)
+++ development/tests/sex-asex/expected/data/average.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida Average Data
+# Tue Jun  5 16:12:20 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 47.000000 189.000000 0.000000 0.000000 50.000000 50.000000 47.000000 1.000000 3.000000 3.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+100 46.8725 190.007 0.247201 0 50 50 46.8642 5.10045 0.00382128 0.00323339 0.651088 14.9065 1.01395 0 0 

Added: development/tests/sex-asex/expected/data/count.dat
===================================================================
--- development/tests/sex-asex/expected/data/count.dat	                        (rev 0)
+++ development/tests/sex-asex/expected/data/count.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida count data
+# Tue Jun  5 16:12:20 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 2 0 0 0 3 0 3 1 1 1 0 0 
+100 102060 3402 667 204 0 0 0 13 13 11 2914 1742 3402 0 0 

Added: development/tests/sex-asex/expected/data/dominant.dat
===================================================================
--- development/tests/sex-asex/expected/data/dominant.dat	                        (rev 0)
+++ development/tests/sex-asex/expected/data/dominant.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida Dominant Data
+# Tue Jun  5 16:12:20 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 50 0.000000 0.000000 1 0 0 0 0 0.000000 1 050-aaaaa 
+100 47 189 0.248677 0.00529101 50 50 47 1312 0 0 0 0 0.258242 2 050-aaaab 

Added: development/tests/sex-asex/expected/data/resource.dat
===================================================================
--- development/tests/sex-asex/expected/data/resource.dat	                        (rev 0)
+++ development/tests/sex-asex/expected/data/resource.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,8 @@
+# Avida resource data
+# Tue Jun  5 16:12:20 2007
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+#  1: Update
+
+0 
+100 

Added: development/tests/sex-asex/expected/data/stats.dat
===================================================================
--- development/tests/sex-asex/expected/data/stats.dat	                        (rev 0)
+++ development/tests/sex-asex/expected/data/stats.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,17 @@
+# Generic Statistics Data
+# Tue Jun  5 16:12:20 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.000000 0.000000 -0.000000 -0.000000 1 0.000000 0.000000 0 0 0 
+100 0.00595556 0 0 -0 -0 -1 3.69652 0 0 0 0 

Added: development/tests/sex-asex/expected/data/tasks.dat
===================================================================
--- development/tests/sex-asex/expected/data/tasks.dat	                        (rev 0)
+++ development/tests/sex-asex/expected/data/tasks.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,17 @@
+# Avida tasks data
+# Tue Jun  5 16:12:20 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 
+100 0 0 0 0 0 0 0 0 0 

Added: development/tests/sex-asex/expected/data/time.dat
===================================================================
--- development/tests/sex-asex/expected/data/time.dat	                        (rev 0)
+++ development/tests/sex-asex/expected/data/time.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,9 @@
+# Avida time data
+# Tue Jun  5 16:12:20 2007
+#  1: update
+#  2: avida time
+#  3: average generation
+#  4: num_executed?
+
+0 0.000000 0.000000 30 
+100 2.12901 14.9065 102060 

Added: development/tests/sex-asex/test_list
===================================================================
--- development/tests/sex-asex/test_list	                        (rev 0)
+++ development/tests/sex-asex/test_list	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,37 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+; Command line arguments to pass to the application
+args =                   
+
+app = %(default_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 = Ben Beckmann ; Who created the test
+email = beckma24 at 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.
+;
+; builddir 
+; cpus 
+; default_app 
+; mode 
+; perf_repeat 
+; perf_user_margin 
+; perf_wall_margin 
+; svn 
+; svnmetadir 
+; svnversion 
+; testdir 
+;--- End Test Configuration File ---

Added: development/tests/sex-modular/config/avida.cfg
===================================================================
--- development/tests/sex-modular/config/avida.cfg	                        (rev 0)
+++ development/tests/sex-modular/config/avida.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,206 @@
+#############################################################################
+# This file includes all the basic run-time defines for Avida.
+# For more information, see doc/config.html
+#############################################################################
+
+VERSION_ID 2.6.0   # Do not change this value.
+
+### GENERAL_GROUP ###
+# General Settings
+ANALYZE_MODE 0    # 0 = Disabled
+                  # 1 = Enabled
+                  # 2 = Interactive
+VIEW_MODE 0       # Initial viewer screen
+CLONE_FILE -      # Clone file to load
+MT_CONCURRENCY 1  # Number of concurrent analyze threads
+VERBOSITY 1       # Control output verbosity
+
+### ARCH_GROUP ###
+# Architecture Variables
+WORLD_X 60       # Width of the Avida world
+WORLD_Y 60       # Height of the Avida world
+WORLD_GEOMETRY 2  # 1 = Bounded Grid
+                  # 2 = Torus
+NUM_DEMES 0       # Number of independed groups in the population; 0=off
+RANDOM_SEED 7     # Random number seed (0 for based on time)
+HARDWARE_TYPE 0   # 0 = Original CPUs
+                  # 1 = New SMT CPUs
+                  # 2 = Transitional SMT
+
+### CONFIG_FILE_GROUP ###
+# Configuration Files
+DATA_DIR data                     # Directory in which config files are found
+INST_SET inst_set.sex              # 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 organism.50.sex    # Organism to seed the soup
+
+### REPRODUCTION_GROUP ###
+# Birth and Death
+BIRTH_METHOD 4           # 0 = Replace random organism in neighborhood
+                         # 1 = Replace oldest organism in neighborhood
+                         # 2 = Replace largest Age/Merit in neighborhood
+                         # 3 = Place only in empty cells in neighborhood
+                         # 4 = Replace random from population (Mass Action)
+                         # 5 = Replace oldest in entire population (like Tierra)
+                         # 6 = Replace random within deme
+PREFER_EMPTY 1           # Give empty cells preference in offsping placement?
+DEATH_METHOD 2           # 0 = Never die of old age.
+                         # 1 = Die when inst executed = AGE_LIMIT (+deviation)
+                         # 2 = Die when inst executed = length*AGE_LIMIT (+dev)
+AGE_LIMIT 20             # Modifies DEATH_METHOD
+AGE_DEVIATION 0          # Creates a distribution around AGE_LIMIT
+ALLOC_METHOD 0           # (Orignal CPU Only)
+                         # 0 = Allocated space is set to default instruction.
+                         # 1 = Set to section of dead genome (Necrophilia)
+                         # 2 = Allocated space is set to random instruction.
+DIVIDE_METHOD 1          # 0 = Divide leaves state of mother untouched.
+                         # 1 = Divide resets state of mother
+                         #     (after the divide, we have 2 children)
+                         # 2 = Divide resets state of current thread only
+                         #     (does not touch possible parasite threads)
+GENERATION_INC_METHOD 1  # 0 = Only the generation of the child is
+                         #     increased on divide.
+                         # 1 = Both the generation of the mother and child are
+                         #     increased on divide (good with DIVIDE_METHOD 1).
+
+### RECOMBINATION_GROUP ###
+# Sexual Recombination and Modularity
+RECOMBINATION_PROB 1.0  # probability of recombination in div-sex
+MAX_BIRTH_WAIT_TIME -1  # Updates incipiant orgs can wait for crossover
+MODULE_NUM 4            # 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 1.0  # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.95  # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.05     # 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.
+DIE_PROB 0.0          # probability of death when 'die' instruction is executed
+
+### MUTATION_GROUP ###
+# Mutations
+POINT_MUT_PROB 0.0    # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.0     # 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.003    # Mutation rate (per site, applied on divide)
+DIVIDE_MUT_PROB 0.0   # Mutation rate (per divide)
+DIVIDE_INS_PROB 0.0   # Insertion rate (per divide)
+DIVIDE_DEL_PROB 0.0   # Deletion rate (per divide)
+PARENT_MUT_PROB 0.0   # Per-site, in parent, on divide
+SPECIAL_MUT_LINE -1   # If this is >= 0, ONLY this line is mutated
+INJECT_INS_PROB 0.0   # Insertion rate (per site, applied on inject)
+INJECT_DEL_PROB 0.0   # Deletion rate (per site, applied on inject)
+INJECT_MUT_PROB 0.0   # Mutation rate (per site, applied on inject)
+
+### REVERSION_GROUP ###
+# Mutation Reversion
+# These slow down avida a lot, and should be set to 0.0 normally.
+REVERT_FATAL 0.0           # Should any mutations be reverted on birth?
+REVERT_DETRIMENTAL 0.0     #   0.0 to 1.0; Probability of reversion.
+REVERT_NEUTRAL 0.0         # 
+REVERT_BENEFICIAL 0.0      # 
+STERILIZE_FATAL 0.0        # Should any mutations clear (kill) the organism?
+STERILIZE_DETRIMENTAL 0.0  # 
+STERILIZE_NEUTRAL 0.0      # 
+STERILIZE_BENEFICIAL 0.0   # 
+FAIL_IMPLICIT 0            # Should copies that failed *not* due to mutations
+                           # be eliminated?
+NEUTRAL_MAX 0.0            # The percent benifical change from parent fitness to be considered neutral.
+NEUTRAL_MIN 0.0            # The percent deleterious change from parent fitness to be considered neutral.
+
+### TIME_GROUP ###
+# Time Slicing
+AVE_TIME_SLICE 30        # Ave number of insts per org per update
+SLICING_METHOD 2         # 0 = CONSTANT: all organisms get default...
+                         # 1 = PROBABILISTIC: Run _prob_ proportional to merit.
+                         # 2 = INTEGRATED: Perfectly integrated deterministic.
+SIZE_MERIT_METHOD 4      # 0 = off (merit is 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
+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
+BASE_SIZE_MERIT 100      # Base merit when size is *not* used
+DEFAULT_BONUS 1.0        # The bonus an organism gets before any tasks
+MERIT_GIVEN 0.0          # Amount of merit donated with 'donate' command
+MERIT_RECEIVED 0.0       # Amount of merit given with 'donate' command
+MAX_DONATE_KIN_DIST -1   # Limit on distance of relation for donate; -1=no max
+MAX_DONATE_EDIT_DIST -1  # Limit on edit distance for donate; -1=no max
+MAX_DONATES 1000000      # Limit on number of donates organisms are allowed.
+
+### GENEOLOGY_GROUP ###
+# Geneology
+TRACK_MAIN_LINEAGE 1  # Keep all ancestors of the active population?
+                      # 0=no, 1=yes, 2=yes,w/sexual population
+THRESHOLD 3           # Number of organisms in a genotype needed for it
+                      #   to be considered viable.
+GENOTYPE_PRINT 0      # 0/1 (off/on) Print out all threshold genotypes?
+GENOTYPE_PRINT_DOM 0  # Print out a genotype if it stays dominant for
+                      #   this many updates. (0 = off)
+SPECIES_THRESHOLD 2   # max failure count for organisms to be same species
+SPECIES_RECORDING 0   # 1 = full, 2 = limited search (parent only)
+SPECIES_PRINT 0       # 0/1 (off/on) Print out all species?
+TEST_CPU_TIME_MOD 20  # Time allocated in test CPUs (multiple of length)
+
+### LOG_GROUP ###
+# Log Files
+LOG_CREATURES 0  # 0/1 (off/on) toggle to print file.
+LOG_GENOTYPES 0  # 0 = off, 1 = print ALL, 2 = print threshold ONLY.
+LOG_THRESHOLD 0  # 0/1 (off/on) toggle to print file.
+LOG_SPECIES 0    # 0/1 (off/on) toggle to print file.
+
+### LINEAGE_GROUP ###
+# Lineage
+# NOTE: This should probably be called "Clade"
+# This one can slow down avida a lot. It is used to get an idea of how
+# often an advantageous mutation arises, and where it goes afterwards.
+# Lineage creation options are.  Works only when LOG_LINEAGES is set to 1.
+#   0 = manual creation (on inject, use successive integers as lineage labels).
+#   1 = when a child's (potential) fitness is higher than that of its parent.
+#   2 = when a child's (potential) fitness is higher than max in population.
+#   3 = when a child's (potential) fitness is higher than max in dom. lineage
+# *and* the child is in the dominant lineage, or (2)
+#   4 = when a child's (potential) fitness is higher than max in dom. lineage
+# (and that of its own lineage)
+#   5 = same as child's (potential) fitness is higher than that of the
+#       currently dominant organism, and also than that of any organism
+#       currently in the same lineage.
+#   6 = when a child's (potential) fitness is higher than any organism
+#       currently in the same lineage.
+#   7 = when a child's (potential) fitness is higher than that of any
+#       organism in its line of descent
+LOG_LINEAGES 0             # 
+LINEAGE_CREATION_METHOD 0  # 
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0      # Enable Network Communication Support
+NET_DROP_PROB 0.0  # Message drop rate
+NET_MUT_PROB 0.0   # Message corruption probability
+NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing
+
+### BUY_SELL_GROUP ###
+# Buying and Selling Parameters
+SAVE_RECEIVED 0  # Enable storage of all inputs bought from other orgs
+BUY_PRICE 0      # price offered by organisms attempting to buy
+SELL_PRICE 0     # price offered by organisms attempting to sell

Added: development/tests/sex-modular/config/environment.cfg
===================================================================
--- development/tests/sex-modular/config/environment.cfg	                        (rev 0)
+++ development/tests/sex-modular/config/environment.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,23 @@
+##############################################################################
+#
+# This is the setup file for the task/resource system.  From here, you can
+# setup the available resources (including their inflow and outflow rates) as
+# well as the reactions that the organisms can trigger by performing tasks.
+#
+# This file is currently setup to reward 9 tasks, all of which use the
+# "infinite" resource, which is undepletable.
+#
+# For information on how to use this file, see:  doc/environment.html
+# For other sample environments, see:  source/support/config/ 
+#
+##############################################################################
+
+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/sex-modular/config/events.cfg
===================================================================
--- development/tests/sex-modular/config/events.cfg	                        (rev 0)
+++ development/tests/sex-modular/config/events.cfg	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,39 @@
+##############################################################################
+#
+# This is the setup file for the events system.  From here, you can
+# configure any actions that you want to have happen during the course of
+# an experiment, including setting the times for data collection.
+#
+# basic syntax: [trigger] [start:interval:stop] [action/event] [arguments...]
+#
+# This file is currently setup to record key information every 100 updates.
+#
+# For information on how to use this file, see:  doc/events.html
+# For other sample event configurations, see:  support/config/
+#
+##############################################################################
+
+# Print all of the standard data files...
+u 0:100:end PrintAverageData       # Save info about they average genotypes
+u 0:100:end PrintDominantData      # Save info about most abundant genotypes
+u 0:100:end PrintStatsData         # Collect satistics about entire pop.
+u 0:100:end PrintCountData         # Count organisms, genotypes, species, etc.
+u 0:100:end PrintTasksData         # Save organisms counts for each task.
+u 0:100:end PrintTimeData          # Track time conversion (generations, etc.)
+u 0:100:end PrintResourceData      # Track resource abundance.
+
+# A few data files not printed by default
+# u 0:100 PrintDominantGenotype      # Save the most abundant genotypes
+# u 100:100:end PrintErrorData       # Std. Error on averages.
+# u 100:100:end PrintVarianceData    # Variance on averages.
+# u 100:100:end PrintTotalsData      # Total counts over entire run.
+# u 100:100:end PrintTasksExeData    # Num. times tasks have been executed.
+# u 100:100:end PrintTasksQualData   # Task quality information
+
+# Setup the exit time and full population data collection.
+u 50000:50000 SavePopulation         # Save current state of population.
+u 50000:50000 SaveHistoricPopulation # Save ancestors of current population.
+
+u 100000 PrintDominantGenotype
+
+u 100 exit                        # exit

Added: development/tests/sex-modular/config/inst_set.sex
===================================================================
--- development/tests/sex-modular/config/inst_set.sex	                        (rev 0)
+++ development/tests/sex-modular/config/inst_set.sex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,52 @@
+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.
+div-sex   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? 
+
+#adv-head   1
+#jump-f     1
+#jump-b     1
+#call       1
+#return     1
+#if-bit-1   1
+#get        1
+#put        1
+#h-read     1
+#h-write    1
+#set-head   1
+#search-f   1
+#search-b   1
+
+
+# Works on multiple nops:  pop  push  inc  dec  IO  adv-head 
+
+# What if we add a new head.  Search will return the location of something,
+# and put the new head there.  Then set-head will move another head to that
+# point.  In the case of the copy loop, it only needs to be set once and
+# this will speed up the code quite a bit!
+
+# Search with no template returns current position (abs line number) in
+# genome.

Added: development/tests/sex-modular/config/organism.50.asex
===================================================================
--- development/tests/sex-modular/config/organism.50.asex	                        (rev 0)
+++ development/tests/sex-modular/config/organism.50.asex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,50 @@
+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      #
+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      #
+div-asex   #    ...divide!
+mov-head   # Otherwise, loop back to the beginning of the copy loop.
+nop-A      # End label.
+nop-B      #

Added: development/tests/sex-modular/config/organism.50.sex
===================================================================
--- development/tests/sex-modular/config/organism.50.sex	                        (rev 0)
+++ development/tests/sex-modular/config/organism.50.sex	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,50 @@
+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      #
+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      #
+div-sex   #    ...divide!
+mov-head   # Otherwise, loop back to the beginning of the copy loop.
+nop-A      # End label.
+nop-B      #

Added: development/tests/sex-modular/expected/data/average.dat
===================================================================
--- development/tests/sex-modular/expected/data/average.dat	                        (rev 0)
+++ development/tests/sex-modular/expected/data/average.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida Average Data
+# Tue Jun  5 16:16:20 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 47.000000 189.000000 0.000000 0.000000 50.000000 50.000000 47.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 
+100 46.8339 189.559 0.247452 0 50 50 46.846 5.50661 0.0048 0.004 0.5444 14.9504 1.53069 0 0 

Added: development/tests/sex-modular/expected/data/count.dat
===================================================================
--- development/tests/sex-modular/expected/data/count.dat	                        (rev 0)
+++ development/tests/sex-modular/expected/data/count.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida count data
+# Tue Jun  5 16:16:20 2007
+#  1: update
+#  2: number of insts executed this update
+#  3: number of organisms
+#  4: number of different genotypes
+#  5: number of different threshold genotypes
+#  6: number of different species
+#  7: number of different threshold species
+#  8: number of different lineages
+#  9: number of births in this update
+# 10: number of deaths in this update
+# 11: number of breed true
+# 12: number of breed true organisms?
+# 13: number of no-birth organisms
+# 14: number of single-threaded organisms
+# 15: number of multi-threaded organisms
+# 16: number of modified organisms
+
+0 30 1 1 1 0 0 0 1 0 1 1 1 1 0 0 
+100 74940 2500 454 100 0 0 0 12 10 10 2141 1272 2500 0 0 

Added: development/tests/sex-modular/expected/data/dominant.dat
===================================================================
--- development/tests/sex-modular/expected/data/dominant.dat	                        (rev 0)
+++ development/tests/sex-modular/expected/data/dominant.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,21 @@
+# Avida Dominant Data
+# Tue Jun  5 16:16:20 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 50 0.000000 0.000000 1 0 0 0 0 0.000000 1 050-aaaaa 
+100 47 189 0.248677 0.00529101 50 50 47 1581 1 1 0 2 0.255435 1 050-aaaaa 

Added: development/tests/sex-modular/expected/data/resource.dat
===================================================================
--- development/tests/sex-modular/expected/data/resource.dat	                        (rev 0)
+++ development/tests/sex-modular/expected/data/resource.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,8 @@
+# Avida resource data
+# Tue Jun  5 16:16:20 2007
+# First column gives the current update, all further columns give the quantity
+# of the particular resource at that update.
+#  1: Update
+
+0 
+100 

Added: development/tests/sex-modular/expected/data/stats.dat
===================================================================
--- development/tests/sex-modular/expected/data/stats.dat	                        (rev 0)
+++ development/tests/sex-modular/expected/data/stats.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,17 @@
+# Generic Statistics Data
+# Tue Jun  5 16:16:20 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.000000 0.000000 -0.000000 -0.000000 1 0.000000 0.000000 0 0 0 
+100 0.00493756 0 0 -0 -0 4 2.71174 0 0 0 0 

Added: development/tests/sex-modular/expected/data/tasks.dat
===================================================================
--- development/tests/sex-modular/expected/data/tasks.dat	                        (rev 0)
+++ development/tests/sex-modular/expected/data/tasks.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,17 @@
+# Avida tasks data
+# Tue Jun  5 16:16:20 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 
+100 0 0 0 0 0 0 0 0 0 

Added: development/tests/sex-modular/expected/data/time.dat
===================================================================
--- development/tests/sex-modular/expected/data/time.dat	                        (rev 0)
+++ development/tests/sex-modular/expected/data/time.dat	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,9 @@
+# Avida time data
+# Tue Jun  5 16:16:20 2007
+#  1: update
+#  2: avida time
+#  3: average generation
+#  4: num_executed?
+
+0 0.000000 0.000000 30 
+100 2.13007 14.9504 74940 

Added: development/tests/sex-modular/test_list
===================================================================
--- development/tests/sex-modular/test_list	                        (rev 0)
+++ development/tests/sex-modular/test_list	2007-06-05 20:12:40 UTC (rev 1641)
@@ -0,0 +1,37 @@
+;--- Begin Test Configuration File (test_list) ---
+[main]
+; Command line arguments to pass to the application
+args =                   
+
+app = %(default_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 = Ben Beckmann ; Who created the test
+email = beckma24 at 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.
+;
+; builddir 
+; cpus 
+; default_app 
+; 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