[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