[Avida-cvs] [avida-svn] r553 - in development: . consistencytests consistencytests/CMakeModules consistencytests/CMakeModules/Templates consistencytests/Doc consistencytests/Doc/html consistencytests/Support consistencytests/Support/python consistencytests/Support/python/avida_consistency_checks consistencytests/Tests consistencytests/Tests/Default consistencytests/Tests/Default/Seed_100 consistencytests/Tests/Default/Seed_101 consistencytests/Tests/Default/Seed_102 consistencytests/Tests/Default/Seed_103 consistencytests/Tests/Default/Seed_104 consistencytests/Tests/Researchers consistencytests/Tests/Researchers/dule consistencytests/Tests/Researchers/dule/LocalSex consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_100 consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_101 consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_102 consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_103 consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_1! 04 consistencytests/Tests/Researchers/dule/LocalSex/config consistencytests/Tests/Researchers/dule/modularity consistencytests/Tests/Researchers/goingssh consistencytests/Tests/Researchers/goingssh/Kazi consistencytests/Tests/Researchers/goingssh/Kazi/Seed_100 consistencytests/Tests/Researchers/goingssh/Kazi/Seed_101 consistencytests/Tests/Researchers/goingssh/Kazi/Seed_102 consistencytests/Tests/Researchers/goingssh/Kazi/Seed_103 consistencytests/Tests/Researchers/goingssh/Kazi/Seed_104 consistencytests/Tests/Researchers/goingssh/Kazi/testconfig
kaben@myxo.css.msu.edu
kaben at myxo.css.msu.edu
Mon Apr 3 14:30:52 PDT 2006
Author: kaben
Date: 2006-04-03 17:30:43 -0400 (Mon, 03 Apr 2006)
New Revision: 553
Added:
development/consistencytests/
development/consistencytests/CMakeLists.txt
development/consistencytests/CMakeModules/
development/consistencytests/CMakeModules/Templates/
development/consistencytests/CMakeModules/Templates/check_tails.py.in
development/consistencytests/CMakeModules/Templates/events.cfg.in
development/consistencytests/CMakeModules/Templates/generate_tails.py.in
development/consistencytests/Doc/
development/consistencytests/Doc/html/
development/consistencytests/Doc/html/ccmake.jpg
development/consistencytests/Doc/html/index.html
development/consistencytests/Doc/html/page01.html
development/consistencytests/Doc/html/page02.html
development/consistencytests/Doc/html/page03.html
development/consistencytests/Doc/html/page04.html
development/consistencytests/Doc/html/page06.html
development/consistencytests/Doc/html/page07.html
development/consistencytests/Support/
development/consistencytests/Support/python/
development/consistencytests/Support/python/avida_consistency_checks/
development/consistencytests/Support/python/avida_consistency_checks/TailChecker.py
development/consistencytests/Support/python/avida_consistency_checks/TailGenerator.py
development/consistencytests/Support/python/avida_consistency_checks/__init__.py
development/consistencytests/Tests/
development/consistencytests/Tests/CMakeLists.txt
development/consistencytests/Tests/Default/
development/consistencytests/Tests/Default/CMakeLists.txt
development/consistencytests/Tests/Default/Seed_100/
development/consistencytests/Tests/Default/Seed_100/detail_pop.500.expected_last_line
development/consistencytests/Tests/Default/Seed_101/
development/consistencytests/Tests/Default/Seed_101/detail_pop.500.expected_last_line
development/consistencytests/Tests/Default/Seed_102/
development/consistencytests/Tests/Default/Seed_102/detail_pop.500.expected_last_line
development/consistencytests/Tests/Default/Seed_103/
development/consistencytests/Tests/Default/Seed_103/detail_pop.500.expected_last_line
development/consistencytests/Tests/Default/Seed_104/
development/consistencytests/Tests/Default/Seed_104/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/
development/consistencytests/Tests/Researchers/CMakeLists.txt
development/consistencytests/Tests/Researchers/dule/
development/consistencytests/Tests/Researchers/dule/CMakeLists.txt
development/consistencytests/Tests/Researchers/dule/LocalSex/
development/consistencytests/Tests/Researchers/dule/LocalSex/CMakeLists.txt
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_100/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_100/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_101/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_101/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_102/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_102/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_103/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_103/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_104/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_104/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_105/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_106/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_107/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_108/
development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_109/
development/consistencytests/Tests/Researchers/dule/LocalSex/README
development/consistencytests/Tests/Researchers/dule/LocalSex/config/
development/consistencytests/Tests/Researchers/dule/LocalSex/config/creature.final.asex
development/consistencytests/Tests/Researchers/dule/LocalSex/config/environment.cfg
development/consistencytests/Tests/Researchers/dule/LocalSex/config/events.cfg
development/consistencytests/Tests/Researchers/dule/LocalSex/config/genesis
development/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.asex
development/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.sex
development/consistencytests/Tests/Researchers/dule/LocalSex/config/organism.100.sex
development/consistencytests/Tests/Researchers/dule/LocalSex/run_list.kaben
development/consistencytests/Tests/Researchers/dule/modularity/
development/consistencytests/Tests/Researchers/dule/modularity/CMakeLists.txt
development/consistencytests/Tests/Researchers/goingssh/
development/consistencytests/Tests/Researchers/goingssh/CMakeLists.txt
development/consistencytests/Tests/Researchers/goingssh/Kazi/
development/consistencytests/Tests/Researchers/goingssh/Kazi/CMakeLists.txt
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_100/
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_100/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_101/
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_101/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_102/
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_102/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_103/
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_103/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_104/
development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_104/detail_pop.500.expected_last_line
development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/
development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/analyze.cfg
development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/environment.cfg
development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/genesis
development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/inst_set.kazi
development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/kazi.org
development/test_avida
Log:
Added consistency tests to development branch of Avida.
Run these tests by typing './test_avida'.
Added: development/consistencytests/CMakeLists.txt
===================================================================
--- development/consistencytests/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,39 @@
+SET(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL
+"If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only."
+)
+
+PROJECT(AvidaConsistencyChecks)
+
+#SET(AvidaExePath "/Users/kaben/Projects/Software/Avida/branch.kaben/current--HEAD--cvs/build.cmake.dbg/bin/primitive")
+#SET(PythonExePath "/sw/bin/python")
+FIND_PROGRAM(_AvidaExePath
+ NAMES primitive
+ PATHS ${PROJECT_BINARY_DIR}
+ DOC "Where can the Avida executable 'primitive' be found ?"
+)
+IF(_AvidaExePath)
+ SET(AvidaExePath_FOUND TRUE)
+ENDIF(_AvidaExePath)
+
+FIND_PROGRAM(_PythonExePath
+ NAMES python python2.3 python2.4
+ DOC "Where can the Python executable be found ?"
+)
+IF(_PythonExePath)
+ SET(PythonExePath_FOUND TRUE)
+ENDIF(_PythonExePath)
+
+OPTION(AVD_CONSISTENCY_TEST_PRIMITIVE "Enable consistency check test suites." OFF)
+VARIABLE_REQUIRES(AVD_CONSISTENCY_TEST_PRIMITIVE ChecksExes_FOUND AvidaExePath_FOUND PythonExePath_FOUND)
+
+IF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+ ENABLE_TESTING()
+ #INCLUDE(${CMAKE_ROOT}/Modules/Dart.cmake)
+ENDIF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+
+SET(AvidaConsistencyChecksPythonSiteDir "${PROJECT_SOURCE_DIR}/Support/python")
+
+SUBDIRS(Tests)
+
+# Vim modeline to tell Vim that this is a configuration script.
+# vim: set ft=config:
Added: development/consistencytests/CMakeModules/Templates/check_tails.py.in
===================================================================
--- development/consistencytests/CMakeModules/Templates/check_tails.py.in 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/CMakeModules/Templates/check_tails.py.in 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,33 @@
+
+import sys
+import site
+site.addsitedir('@AvidaConsistencyChecksPythonSiteDir@')
+from avida_consistency_checks import *
+
+avida_exe_path = '@_AvidaExePath@'
+seed_set = @SeedSet@
+run_subdir_path_base = '@RunSubdirPathBase@'
+output_file_name = '@OutputFileName@'
+expectation_file_path_base = '@ExpectationFilePathBase@'
+expectation_file_name = '@ExpectationFileName@'
+genesis_file = '@GenesisFile@'
+avida_args = '@AvidaArgs@'
+
+tail_checker = TailChecker(
+ seed_set,
+ run_subdir_path_base,
+ genesis_file,
+ output_file_name,
+ expectation_file_path_base,
+ expectation_file_name,
+ avida_exe_path,
+ avida_args
+)
+tail_checker.check_tails()
+
+for seed, lines in tail_checker.failures_dict.iteritems():
+ print 'Seed', seed, 'produced unexpected last line in file', output_file_name, ':'
+ print lines[0], 'Expected last line in file', expectation_file_name, ':'
+ print lines[1]
+
+sys.exit(len(tail_checker.failures_dict))
Added: development/consistencytests/CMakeModules/Templates/events.cfg.in
===================================================================
--- development/consistencytests/CMakeModules/Templates/events.cfg.in 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/CMakeModules/Templates/events.cfg.in 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,17 @@
+##############################################################################
+#
+# 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] [event] [arguments...]
+#
+# For information on how to use this file, see: doc/events.html
+# For other sample event configurations, see: source/support/config/
+#
+##############################################################################
+
+# Setup the exit time and full population data collection.
+u @RunLength@:@RunLength@ detail_pop # Save current state of population.
+u @RunLength@ exit # exit
+
Added: development/consistencytests/CMakeModules/Templates/generate_tails.py.in
===================================================================
--- development/consistencytests/CMakeModules/Templates/generate_tails.py.in 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/CMakeModules/Templates/generate_tails.py.in 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,30 @@
+
+import site
+import sys
+import site
+site.addsitedir('@AvidaConsistencyChecksPythonSiteDir@')
+from avida_consistency_checks import *
+
+avida_exe_path = '@_AvidaExePath@'
+seed_set = @SeedSet@
+run_subdir_path_base = '@RunSubdirPathBase@'
+output_file_name = '@OutputFileName@'
+# The line below causes expectation files to be saved in the same place
+# as the rest of Avida's output files (specifically this should avoid
+# overwritin existing expectation files saved in the source tree.
+expectation_file_path_base = '@RunSubdirPathBase@'
+expectation_file_name = '@ExpectationFileName@'
+genesis_file = '@GenesisFile@'
+avida_args = '@AvidaArgs@'
+
+tail_generator = TailGenerator(
+ seed_set,
+ run_subdir_path_base,
+ genesis_file,
+ output_file_name,
+ expectation_file_path_base,
+ expectation_file_name,
+ avida_exe_path,
+ avida_args
+)
+tail_generator.generate_tails()
Added: development/consistencytests/Doc/html/ccmake.jpg
===================================================================
(Binary files differ)
Property changes on: development/consistencytests/Doc/html/ccmake.jpg
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: development/consistencytests/Doc/html/index.html
===================================================================
--- development/consistencytests/Doc/html/index.html 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Doc/html/index.html 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,31 @@
+<html>
+
+<head>
+<title>
+Avida consistency-checks project
+</title>
+</head>
+<body>
+<hr>
+The consistency-checks comprise short reproducible Avida runs. If any of
+their outcomes change, it should be on purpose. This collection of
+testsuites will be incorporated into our testing dashboard on toto, but
+will not be available to the public.
+<p>
+<a href="page01.html">Obtaining most recent version</a>
+<p>
+<a href="page02.html">Configuring the tests</a>
+<p>
+<a href="page03.html">Running the tests</a>
+<p>
+<a href="page04.html">Directory layout</a>
+<p>
+<a href="page06.html">Questions</a>
+<p>
+<a href="page07.html">ToDo</a>
+<p>
+Have fun -- Kaben Nanlohy
+</body>
+
+</html>
+
Added: development/consistencytests/Doc/html/page01.html
===================================================================
--- development/consistencytests/Doc/html/page01.html 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Doc/html/page01.html 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,15 @@
+<html>
+
+<head>
+<title>
+Avida consistency-checks project : Obtaining most recent version
+</title>
+</head>
+<body>
+<hr>
+Will be available through cvs on a private msu server (which one ?).
+<p>
+</body>
+
+</html>
+
Added: development/consistencytests/Doc/html/page02.html
===================================================================
--- development/consistencytests/Doc/html/page02.html 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Doc/html/page02.html 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,65 @@
+<html>
+
+<head>
+<title>
+Avida consistency-checks project : Configuring the tests
+</title>
+</head>
+<body>
+<hr>
+Obtaining cmake : see <a href="http://www.cmake.org">www.cmake.org</a>.
+<p>
+<hr>
+Documentation of cmake : see <a href="http://www.cmake.org/HTML/Documentation.html">www.cmake.org/HTML/Documentation.html</a>.
+<p>
+<hr>
+Running cmake (the concise way) :
+<code>
+$ pwd
+<p>
+/Users/kaben/Projects/Software/Avida/consistency-tests
+<p>
+$ ls
+<p>
+CMakeLists.txt CMakeModules Doc Support Tests
+<p>
+$ mkdir build
+<p>
+$ cd build
+<p>
+$ cmake -D_CONSISTENCY_TEST_PRIMITIVE:BOOL=ON ..
+</code>
+<p>
+<hr>
+Running cmake (the verbose way) :
+<p>
+<code>
+$ pwd
+<p>
+/Users/kaben/Projects/Software/Avida/consistency-tests
+<p>
+$ ls
+<p>
+CMakeLists.txt CMakeModules Doc Support Tests
+<p>
+$ mkdir build
+<p>
+$ cd build
+<p>
+$ ccmake ..
+</code>
+<p>
+<img src="ccmake.jpg">
+<p>
+Press 'h' for help; use up and down keys to navigate, 'return' to enter
+a field so you can change it; press 'c' to configure the makefiles, and
+'g' to generate the makefiles.
+<p>
+Fields which are marked with an asterisk represent changed and
+unsatisfied variable dependencies -- just keep pressing 'c' until the
+asterisks are all gone.
+</body>
+
+</html>
+
+
Added: development/consistencytests/Doc/html/page03.html
===================================================================
--- development/consistencytests/Doc/html/page03.html 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Doc/html/page03.html 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,57 @@
+<html>
+
+<head>
+<title>
+Avida consistency-checks project : Running the tests
+</title>
+</head>
+<body>
+<hr>
+<code>
+$ pwd
+<p>
+/Users/kaben/Projects/Software/Avida/consistency-tests
+<p>
+$ ls
+<p>
+CMakeLists.txt CMakeModules Doc Support Tests
+<p>
+$ cd build
+<p>
+$ make test
+<p>
+Building tests test...
+<p>
+/sw/bin/ctest
+<p>
+Test project
+<p>
+Changing directory into
+<p>
+/Users/kaben/Projects/Software/Avida/consistency-tests/build/Tests/Researchers/dule/LocalSex
+<p>
+Testing GlobalAsex Passed
+<p>
+Changing directory into
+<p>
+/Users/kaben/Projects/Software/Avida/consistency-tests/build/Tests/Researchers/goingssh/Kazi
+<p>
+Testing GlobalAsex ***Failed
+<p>
+Testing GlobalAsex ***Failed
+<p>
+33% tests passed, 2 tests failed out of 3
+<p>
+The following tests FAILED:
+<p>
+ GlobalAsex
+<p>
+ GlobalAsex
+<p>
+make: *** [test] Error 2
+</code>
+<p>
+</body>
+
+</html>
+
Added: development/consistencytests/Doc/html/page04.html
===================================================================
--- development/consistencytests/Doc/html/page04.html 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Doc/html/page04.html 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,27 @@
+<html>
+
+<head>
+<title>
+Avida consistency-checks project : Directory layout
+</title>
+</head>
+<body>
+<hr>
+<code>
+Tests:
+<p>
+Tests/Researchers:
+<p>
+brian/ charles/ dehua/ dule/ eliz/ gabe/ goingssh/ jeff/
+<p>
+Tests/Researchers/dule:
+<p>
+LocalSex/GlobalAsex_1??
+LocalSex/config
+</code>
+<p>
+</body>
+
+</html>
+
+
Added: development/consistencytests/Doc/html/page06.html
===================================================================
--- development/consistencytests/Doc/html/page06.html 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Doc/html/page06.html 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,23 @@
+<html>
+
+<head>
+<title>
+Avida consistency-checks project : Questions
+</title>
+</head>
+<body>
+<hr>
+Will be available through cvs on an msu server (which one ?).
+<p>
+Some researchers have many projects archived, e.g., Dule has
+2_fold_cost, epistasis, error_correction, group_error, local_sex, mattr,
+modularity paco, sex, some_sex, spatial. Would researchers like test
+suites for each of their archived projects ?
+<p>
+Is this a good directory layout ?
+<p>
+</body>
+
+</html>
+
+
Added: development/consistencytests/Doc/html/page07.html
===================================================================
--- development/consistencytests/Doc/html/page07.html 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Doc/html/page07.html 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,31 @@
+<html>
+
+<head>
+<title>
+Avida consistency-checks project : ToDo
+</title>
+</head>
+<body>
+<hr>
+Figure out where to host cvs repository.
+<p>
+Test suites for Brian, Charles, Dehua, Eliz, Gabe... Who else ?
+<p>
+Can't obtain a final organism for Dule's GlobalSex suite.
+<p>
+The Kazi suite can't be run without using a specially compiled version
+of Avida. Need to know hot to build this version.
+<p>
+Connect to test-results server on toto.
+<p>
+Integrate with 'current' Avida project (i.e., autodetect presence of
+consistency-tests when they're dropped into the 'current' directory).
+<p>
+Add default cmake variables so that people can just type 'cmake ..'.
+<p>
+</body>
+
+</html>
+
+
+
Added: development/consistencytests/Support/python/avida_consistency_checks/TailChecker.py
===================================================================
--- development/consistencytests/Support/python/avida_consistency_checks/TailChecker.py 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Support/python/avida_consistency_checks/TailChecker.py 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,88 @@
+"""
+Class that uses Avida and an Avida configuration to produce a set of
+last lines of Avida output files, and then compares them to a set of
+corresponding expected last lines that were generated by the companion
+class TailGenerator.
+"""
+
+import sys
+import os
+import shutil
+
+class TailChecker:
+
+ def __init__(self,
+ seed_set,
+ run_subdir_path_base,
+ genesis_file_path,
+ output_file_name,
+ expectation_file_path_base,
+ expectation_file_name,
+ avida_exe_path,
+ avida_args
+ ):
+ self.seed_set = seed_set
+ self.run_subdir_path_base = run_subdir_path_base
+ self.genesis_file_path = genesis_file_path
+ self.output_file_name = output_file_name
+ self.expectation_file_path_base = expectation_file_path_base
+ self.expectation_file_name = expectation_file_name
+ self.avida_exe_path = avida_exe_path
+ self.avida_args = avida_args
+
+ self.failures_dict = {}
+
+ def _check_tail(self, seed):
+ run_subdir = self.run_subdir_path_base + str(seed)
+ expectation_file_path = self.expectation_file_path_base + str(seed) + '/' + self.expectation_file_name
+ avida_command = self.avida_exe_path + ' ' + self.avida_args % seed
+
+ old_cwd = os.getcwd()
+
+ print "from run_subdir " + run_subdir + " : using command : " + avida_command + " :"
+
+ try:
+ shutil.rmtree(run_subdir, True)
+ except OSError:
+ print "couldn't remove run-subdirectory " + run_subdir + "; continuing."
+
+ try:
+ os.makedirs(run_subdir)
+ except OSError:
+ print "failed to make run-subdirectory " + run_subdir + "; continuing."
+
+ shutil.copy(self.genesis_file_path, run_subdir)
+ os.chdir(run_subdir)
+ avida_output_fd = os.popen(avida_command)
+ line = avida_output_fd.readline()
+ while line != "":
+ print line,
+ line = avida_output_fd.readline()
+ avida_output_fd.close()
+
+ detail_fd = file(self.output_file_name,"rU")
+ next_detail_line = detail_fd.readline()
+ while next_detail_line != "":
+ last_detail_line = next_detail_line
+ next_detail_line = detail_fd.readline()
+ detail_fd.close()
+
+ print "last line of output file \"" + self.output_file_name + "\" : "
+ print last_detail_line
+
+ expected_last_line_fd = file(expectation_file_path, "rU")
+ expected_last_detail_line = expected_last_line_fd.readline()
+ expected_last_line_fd.close()
+
+ if last_detail_line != expected_last_detail_line:
+ print "last line of output file doesn't match expected last line."
+ self.failures_dict[seed] = (last_detail_line, expected_last_detail_line)
+ else:
+ print "last line of output file matches expected last line."
+
+ os.chdir(old_cwd)
+
+ def check_tails(self):
+ for seed in self.seed_set:
+ self._check_tail(seed)
+
Added: development/consistencytests/Support/python/avida_consistency_checks/TailGenerator.py
===================================================================
--- development/consistencytests/Support/python/avida_consistency_checks/TailGenerator.py 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Support/python/avida_consistency_checks/TailGenerator.py 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,77 @@
+"""
+Class that uses Avida to generate a set of expected last lines of output
+files for a particular Avida configuration.
+
+The companion class TailChecker can subsequently use Avida with the same
+configuration to generate a set of actual last lines of corresponding
+output files, compare them to the expected last lines, and report the
+result.
+"""
+
+import sys
+import os
+import shutil
+
+class TailGenerator:
+
+ def __init__(self,
+ seed_set,
+ run_subdir_path_base,
+ genesis_file_path,
+ output_file_name,
+ expectation_file_path_base,
+ expectation_file_name,
+ avida_exe_path,
+ avida_args
+ ):
+ self.seed_set = seed_set
+ self.run_subdir_path_base = run_subdir_path_base
+ self.genesis_file_path = genesis_file_path
+ self.output_file_name = output_file_name
+ self.expectation_file_path_base = expectation_file_path_base
+ self.expectation_file_name = expectation_file_name
+ self.avida_exe_path = avida_exe_path
+ self.avida_args = avida_args
+
+ def _generate_tail(self, seed):
+ run_subdir = self.run_subdir_path_base + str(seed)
+ expectation_file_path = self.expectation_file_path_base + str(seed) + '/' + self.expectation_file_name
+ avida_command = self.avida_exe_path + ' ' + self.avida_args % seed
+
+ old_cwd = os.getcwd()
+
+ print "from run_subdir " + run_subdir + " : using command : " + avida_command + " :"
+
+ shutil.rmtree(run_subdir, True)
+ try:
+ os.makedirs(run_subdir)
+ except OSError:
+ pass
+ shutil.copy(self.genesis_file_path, run_subdir)
+ os.chdir(run_subdir)
+ avida_output_fd = os.popen(avida_command)
+ line = avida_output_fd.readline()
+ while line != "":
+ print line,
+ line = avida_output_fd.readline()
+ avida_output_fd.close()
+
+ detail_fd = file(self.output_file_name,"rU")
+ next_detail_line = detail_fd.readline()
+ while next_detail_line != "":
+ last_detail_line = next_detail_line
+ next_detail_line = detail_fd.readline()
+ detail_fd.close()
+
+ print "last line of output file \"" + self.output_file_name + "\" : "
+ print last_detail_line
+
+ expected_last_line_fd = file(expectation_file_path, "wU")
+ expected_last_line_fd.write(last_detail_line)
+ expected_last_line_fd.close()
+
+ os.chdir(old_cwd)
+
+ def generate_tails(self):
+ for seed in self.seed_set:
+ self._generate_tail(seed)
Added: development/consistencytests/Support/python/avida_consistency_checks/__init__.py
===================================================================
--- development/consistencytests/Support/python/avida_consistency_checks/__init__.py 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Support/python/avida_consistency_checks/__init__.py 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,13 @@
+"""
+avida_consistency_checks base package init. Contains classes to generate
+test data sets, and classes to verify test data sets.
+
+Public symbols :
+ * TailGenerator
+ * TailChecker
+"""
+
+__version__ = "0.1.1"
+
+from TailGenerator import TailGenerator
+from TailChecker import TailChecker
Added: development/consistencytests/Tests/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,2 @@
+SUBDIRS(Default)
+SUBDIRS(Researchers)
Added: development/consistencytests/Tests/Default/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/Default/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Default/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,86 @@
+
+# Note :
+#
+# ${CMAKE_CURRENT_SOURCE_DIR} points to the current source directory,
+# i.e., .../Tests/Default/.
+#
+# ${CMAKE_CURRENT_BINARY_DIR} points to the equivalent binary directory,
+# i.e., .../build/Tests/Default/.
+#
+
+SET(TestsName "default")
+
+#
+# Avida configuration
+
+# Number of updates per test
+SET(RunLength "500")
+# Event file generation. events.cfg.in uses the variable RunLength.
+SET(EventFileTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/events.cfg.in")
+SET(EventFile "${CMAKE_CURRENT_BINARY_DIR}/events.cfg")
+CONFIGURE_FILE(${EventFileTemplate} ${EventFile} IMMEDIATE)
+
+# Where to find default configure files.
+SET(ConfigDir "${AVIDA_SOURCE_DIR}/source/support")
+# Configure files (other than the event file, generated above).
+SET(GenesisFile "${ConfigDir}/genesis")
+SET(InstSetFile "${ConfigDir}/inst_set.default")
+SET(EnvironmentFile "${ConfigDir}/environment.cfg")
+SET(StartCreatureFile "${ConfigDir}/organism.default")
+# Command-line arguments passed to Avida.
+SET(AvidaArgs "-seed %d -set WORLD-X 40 -set WORLD-Y 40 -set INST_SET ${InstSetFile} -set EVENT_FILE ${EventFile} -set ENVIRONMENT_FILE ${EnvironmentFile} -set START_CREATURE ${StartCreatureFile}")
+
+#
+# Consistency checks configuration
+#
+SET(TestDirBaseName "Seed")
+
+# This is Python list of Avida random seeds.
+# E.g., "range(100,105)" is equivalent to the Python list "[100,101,102,103,104]".
+# I.e., SET(SeedSet "range(100,105)") is equivalent to SET(SeedSet "[100,101,102,103,104]").
+SET(SeedSet "range(100,105)")
+
+SET(OutputFileName "detail_pop.${RunLength}")
+# Similar to above, except that this tells the testing scripts where to find
+# expected last lines of detail_pop.${RunLength} files,
+# i.e., ${CMAKE_CURRENT_SOURCE_DIR}/Seed_100/detail_pop.500.expected_last_line, and so on.
+SET(ExpectationFileName "detail_pop.${RunLength}.expected_last_line")
+# Avida will be run in, and store output files in,
+# ${CMAKE_CURRENT_BINARY_DIR}/Seed_100, and so on.
+SET(ExpectationFilePathBase "${CMAKE_CURRENT_SOURCE_DIR}/${TestDirBaseName}_")
+SET(RunSubdirPathBase "${CMAKE_CURRENT_BINARY_DIR}/${TestDirBaseName}_")
+
+#
+# This generates the Python script that performs consistency checks.
+# Several of the variables defined above make their ways into the script.
+# See CMake's documentaton of the CONFIGURE_FILE command for details.
+SET(CheckTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/check_tails.py.in")
+SET(CheckTailsScript "${CMAKE_CURRENT_BINARY_DIR}/check_tails.py")
+CONFIGURE_FILE(${CheckTailsScriptTemplate} ${CheckTailsScript} IMMEDIATE)
+
+IF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+ ADD_TEST("Consistency-Check--${TestsName}" "${_PythonExePath}" "${CheckTailsScript}")
+ENDIF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+
+#
+# Generation of expected last lines of detail_pop files.
+#
+SET(GenerateTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/generate_tails.py.in")
+SET(GenerateTailsScript "${CMAKE_CURRENT_BINARY_DIR}/generate_tails.py")
+CONFIGURE_FILE(${GenerateTailsScriptTemplate} ${GenerateTailsScript} IMMEDIATE)
+#
+# To regenerate expected last lines of detail_pop files, use commands like the
+# following :
+# $ pushd ${CMAKE_CURRENT_BINARY_DIR} # i.e., cd .../build/consistencytests/Tests/Default/
+# $ python ./generate_tails.py
+# $ tar cvfz Tests.tgz `find . -name detail_pop.*.expected_last_line`
+# $ cd ${CMAKE_CURRENT_SOURCE_DIR}
+# $ tar xvfz ${CMAKE_CURRENT_BINARY_DIR}/Tests.tgz
+# $ popd
+#
+# I think it's safer to require that these steps be performed by hand in order
+# to reduce the chance of inadvertently clobbering existing consistency-check suites.
+#
+
+# Vim modeline to tell Vim that this is a configuration script.
+# vim: set ft=config:
Added: development/consistencytests/Tests/Default/Seed_100/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Default/Seed_100/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Default/Seed_100/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+15836 13999 1 1 1 100 0 0 0 500 -1 13 rucavckccccccccccccvcccccncccvcdccscccccgccccccccccccccctccccccocmjufccccucccccccccccceacccutycasvab
Added: development/consistencytests/Tests/Default/Seed_101/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Default/Seed_101/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Default/Seed_101/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+16614 16032 1 1 1 104 0 0 0 500 -1 15 rucavccncccjccceccecccccccccxfccjlccccccccciccccccicczclcccccccccccpcicccdccjcccfdcccccccccmcccutycasvab
Added: development/consistencytests/Tests/Default/Seed_102/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Default/Seed_102/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Default/Seed_102/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+13664 11667 1 1 2 99 0 0 0 478 -1 11 rucavccyccaccsccccccccccccccccccccccfccccciccccoccccxccccccccricccccccccccccccccmcczctrcccutycasvab
Added: development/consistencytests/Tests/Default/Seed_103/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Default/Seed_103/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Default/Seed_103/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+13874 12656 1 1 4 101 97 383 0.253264 449 -1 11 rucavccqccccccccccccccnpcdcgcbccccccccccccccccccbccckdccccccccdcccccccccccccccckqccccccgceccutycasvab
Added: development/consistencytests/Tests/Default/Seed_104/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Default/Seed_104/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Default/Seed_104/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+16164 13989 1 1 1 101 0 0 0 500 -1 11 rucavcccctcciccccccccccccccacccpccmcccmcccccccccccccccccxccccccbcncclccccccccccucccccctmccccutycasvab
Added: development/consistencytests/Tests/Researchers/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/Researchers/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,5 @@
+SUBDIRS(
+ dule
+ goingssh
+)
+
Added: development/consistencytests/Tests/Researchers/dule/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/Researchers/dule/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,2 @@
+SUBDIRS(LocalSex)
+#SUBDIRS(LocalSex modularity)
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,109 @@
+
+# Note :
+#
+# ${CMAKE_CURRENT_SOURCE_DIR} points to the current source directory,
+# i.e., .../Tests/Researchers/dule/LocalSex/.
+#
+# ${CMAKE_CURRENT_BINARY_DIR} points to the equivalent binary directory,
+# i.e., .../build/Tests/Researchers/dule/LocalSex/.
+#
+
+SET(TestsName "dule--GlobalSex")
+
+#
+# Avida configuration
+#
+SET(ConfigDir "${CMAKE_CURRENT_SOURCE_DIR}/config")
+SET(GenesisFile "${ConfigDir}/genesis")
+SET(InstSetFile "${ConfigDir}/inst_set.sex")
+SET(EventFile "${ConfigDir}/events.cfg")
+SET(EnvironmentFile "${ConfigDir}/environment.cfg")
+SET(StartCreatureFile "${ConfigDir}/organism.100.sex")
+SET(AvidaArgs "-seed %d -set INST_SET ${InstSetFile} -set EVENT_FILE ${EventFile} -set ENVIRONMENT_FILE ${EnvironmentFile} -set START_CREATURE ${StartCreatureFile} -set BIRTH_METHOD 4")
+
+#
+# Consistency checks configuration
+#
+
+# This is Python list of Avida random seeds.
+# E.g., "range(100,105)" is equivalent to the Python list "[100,101,102,103,104]".
+# I.e., SET(SeedSet "range(100,105)") is equivalent to SET(SeedSet "[100,101,102,103,104]").
+SET(SeedSet "range(100,105)")
+# Avida will be run in, and store output files in, ${CMAKE_CURRENT_BINARY_DIR}/Test_100, and so on.
+SET(RunSubdirPathBase "${CMAKE_CURRENT_BINARY_DIR}/GlobalSex_")
+# I've written ${ConfigDir}/events.cfg to stop Avida after 500 updates,
+# and to output a single detail-population file "detail_pop.500" per run,
+# i.e., ${CMAKE_CURRENT_SOURCE_DIR}/Test_100/detail_pop.500, and so on.
+SET(OutputFileName "detail_pop.500")
+# Similar to above, except that this tells the testing scripts where to find
+# expected last lines of detail_pop.500 files,
+# i.e., ${CMAKE_CURRENT_SOURCE_DIR}/Test_100/detail_pop.500.expected_last_line, and so on.
+SET(ExpectationFilePathBase "${CMAKE_CURRENT_SOURCE_DIR}/GlobalSex_")
+SET(ExpectationFileName "detail_pop.500.expected_last_line")
+
+#
+# This generates the Python script that performs consistency checks.
+# Several of the variables defined above make their ways into the script.
+# See CMake's documentaton of the CONFIGURE_FILE command for details.
+
+SET(CheckTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/check_tails.py.in")
+SET(CheckTailsScript "${CMAKE_CURRENT_BINARY_DIR}/sex_check_tails.py")
+CONFIGURE_FILE(${CheckTailsScriptTemplate} ${CheckTailsScript} IMMEDIATE)
+
+IF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+ #ADD_TEST("Consistency-Check--${TestsName}" "${_PythonExePath}" "${CheckTailsScript}")
+ENDIF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+
+#
+# Generation of expected last lines of detail_pop.500 files.
+#
+# To trigger this script, use commands like the following :
+# $ pushd ${CMAKE_CURRENT_BINARY_DIR} # i.e., cd .../build/Tests/Researchers/dule/LocalSex/
+# $ tar cvfz Tests.tgz `find . -name detail_pop.500.expected_last_line`
+# $ cd ${CMAKE_CURRENT_SOURCE_DIR}
+# $ tar xvfz ${CMAKE_CURRENT_BINARY_DIR}/Tests.tgz
+# $ popd
+#
+# I think it's safer to require that these steps be performed by hand in order
+# to reduce the chance of inadvertently clobbering existing consistency-check suites.
+#
+SET(GenerateTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/generate_tails.py.in")
+SET(GenerateTailsScript "${CMAKE_CURRENT_BINARY_DIR}/sex_generate_tails.py")
+CONFIGURE_FILE(${GenerateTailsScriptTemplate} ${GenerateTailsScript} IMMEDIATE)
+
+
+#
+# Reconfigure for GlobalAsex
+#
+
+SET(TestsName "dule--GlobalAsex")
+
+SET(ConfigDir "${CMAKE_CURRENT_SOURCE_DIR}/config")
+SET(GenesisFile "${ConfigDir}/genesis")
+SET(InstSetFile "${ConfigDir}/inst_set.asex")
+SET(EventFile "${ConfigDir}/events.cfg")
+SET(EnvironmentFile "${ConfigDir}/environment.cfg")
+#SET(StartCreatureFile "${ConfigDir}/organism.500.asex")
+SET(StartCreatureFile "${ConfigDir}/creature.final.asex")
+SET(AvidaArgs "-seed %d -set INST_SET ${InstSetFile} -set EVENT_FILE ${EventFile} -set ENVIRONMENT_FILE ${EnvironmentFile} -set START_CREATURE ${StartCreatureFile} -set BIRTH_METHOD 4")
+
+SET(SeedSet "range(100,105)")
+SET(RunSubdirPathBase "${CMAKE_CURRENT_BINARY_DIR}/GlobalAsex_")
+SET(OutputFileName "detail_pop.500")
+SET(ExpectationFilePathBase "${CMAKE_CURRENT_SOURCE_DIR}/GlobalAsex_")
+SET(ExpectationFileName "detail_pop.500.expected_last_line")
+
+SET(CheckTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/check_tails.py.in")
+SET(CheckTailsScript "${CMAKE_CURRENT_BINARY_DIR}/asex_check_tails.py")
+CONFIGURE_FILE(${CheckTailsScriptTemplate} ${CheckTailsScript} IMMEDIATE)
+
+IF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+ ADD_TEST("Consistency-Check--${TestsName}" "${_PythonExePath}" "${CheckTailsScript}")
+ENDIF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+
+SET(GenerateTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/generate_tails.py.in")
+SET(GenerateTailsScript "${CMAKE_CURRENT_BINARY_DIR}/asex_generate_tails.py")
+CONFIGURE_FILE(${GenerateTailsScriptTemplate} ${GenerateTailsScript} IMMEDIATE)
+
+# Vim modeline to tell Vim that this is a configuration script.
+# vim: set ft=config:
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_100/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_100/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_100/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+15993 1 1 1 2 112 0 0 0 493 -1 1 jrzavcwaujbiuzusgqipgpqpctfocqcrpqcnadkazpctpbeadckpbgcjoabcjfqplcagngdsancoasfqnqbyyqcqatttpqxbzbiuttycastttvab
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_101/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_101/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_101/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+16343 1 1 1 1 113 0 0 0 500 -1 1 jrzavcwaujbiuzusgqipgpqpctfocqcrpqcnadkazzpctpbeadcqpbgcjoabcjfqplcagngdsancoasfqnqbyyqcqatttpqxbzbiuttycastttvab
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_102/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_102/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_102/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+10014 8086 2 1 67 110 2.25663e+08 234 964373 341 -1 4 jrzavcwaujbiuzusgqipgpqpctfocqcrpqcnadkazpctpbeadcqpbgcepabcbfqplcagngdsancoasfqnqbyyqcqattpqxbzbiuttycasttvab
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_103/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_103/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_103/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+16386 9408 1 1 1 112 0 0 0 500 -1 5 jrzavcwaufniuzasgqipgpqpctfocqcrpqcnadkazpctpbeadcqpbgcjbabcjfqplcagngdsancoazfqnqbyyqcqatttpqxbzbiuttycastttvab
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_104/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_104/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/GlobalAsex_104/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+16361 12206 1 1 1 112 0 0 0 500 -1 2 jrzavcwaujbiuzusgqipgpqpccfocqcrpqcnadkazpctpbeadcqpygcjoabcjfqplcagngdsancoasfqnqbyyqcqatttpqxbzbiuttycastttvab
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/README
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/README 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/README 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,43 @@
+start date: 6/7/04
+
+dir name: /home/dule/data/local_sex/LocalSex
+
+code used: /home/dule/avida-source/current-5-26-04
+
+duration: 100,000 updates
+pop.size: 3600 organisms
+birth method: 0 (random local)
+
+death: on
+ DEATH_METHOD 2
+ # 2 = Die when inst executed = length * AGE_LIMIT (+ dev.)
+ AGE_LIMIT 20 # Modifies DEATH_METHOD
+
+ancestor: organism.100.sex
+
+env file: environment.cfg
+lineages: on
+
+fixed length: no
+ CHILD_SIZE_RANGE 2.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.
+
+mutations: INS_MUT_PROB 0.0005 # Insertion rate (per site, applied on divide).
+ DEL_MUT_PROB 0.0005 # Deletion rate (per site, applied on divide).
+ DIV_MUT_PROB 0.002 # Mutation rate (per site, applied on divide).
+
+run_list:
+
+100..149 LocalSex ./primitive -s $seed
+100..149 LocalAsex ./primitive -s $seed
+
+comments:
+
+Testing the effect of newly implemented local nature of sex, using local,
+random replacement as the birth method
+
+All the parameters in these runs are the same as sex-nature-new-mut
+(p. 150.1) other than the birth method.
+
+Also added the same treatment with asexuals, and repeated the mass action sex/asex runs.
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/config/creature.final.asex
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/config/creature.final.asex 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/config/creature.final.asex 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,143 @@
+# Filename........: creature.final
+# Update Output...: 100000
+# Is Viable.......: 1
+# Repro Cycle Size: 0
+# Depth to Viable.: 0
+# Update Created..: 99107
+# Genotype ID.....: 8095058
+# Parent Gen ID...: 8089738
+# Tree Depth......: 375
+# Parent Distance.: 1
+
+# Generation: 0
+# Merit...........: 2.2859e+08
+# Gestation Time..: 226
+# Fitness.........: 1.01146e+06
+# Errors..........: 4
+# Genome Size.....: 112
+# Copied Size.....: 112
+# Executed Size...: 109
+# Offspring.......: SELF
+
+# not 1
+# nand 1
+# and 1
+# orn 1
+# or 1
+# andn 1
+# nor 1
+# xor 0
+# equ 1
+
+shift-r
+h-alloc
+set-flow
+nop-A
+mov-head
+nop-C
+jmp-head
+nop-A
+h-search
+shift-r
+nop-B
+swap
+h-search
+set-flow
+h-search
+div-asex
+push
+IO
+swap
+nand
+push
+nand
+IO
+nand
+nop-C
+h-copy
+pop
+sub
+nop-C
+IO
+nop-C
+h-alloc
+nand
+IO
+nop-C
+add
+nop-A
+if-n-equ
+shift-l
+nop-A
+set-flow
+nand
+nop-C
+h-copy
+nand
+nop-B
+if-less
+nop-A
+if-n-equ
+nop-C
+IO
+nand
+nop-B
+push
+nop-C
+shift-r
+sub
+nop-A
+nop-B
+nop-C
+shift-r
+pop
+IO
+nand
+inc
+nop-C
+nop-A
+push
+add
+push
+if-n-equ
+div-asex
+nop-A
+add
+nop-C
+sub
+nop-A
+div-asex
+pop
+IO
+add
+IO
+nop-B
+if-label
+if-label
+IO
+nop-C
+IO
+nop-A
+h-copy
+h-copy
+h-copy
+nand
+IO
+get-head
+nop-B
+set-flow
+nop-B
+swap
+h-search
+h-copy
+h-copy
+if-label
+nop-C
+nop-A
+div-asex
+h-copy
+h-copy
+h-copy
+mov-head
+nop-A
+nop-B
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/config/environment.cfg
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/config/environment.cfg 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/config/environment.cfg 2006-04-03 21:30:43 UTC (rev 553)
@@ -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/consistencytests/Tests/Researchers/dule/LocalSex/config/events.cfg
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/config/events.cfg 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/config/events.cfg 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,48 @@
+##############################################################################
+#
+# 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] [event] [arguments...]
+#
+# This file is currently setup to start off a population full of the
+# starting organism specified in genesis, and then record key information
+# every 100 updates.
+#
+# For information on how to use this file, see: doc/events.html
+# For other sample event configurations, see: source/support/config/
+#
+##############################################################################
+#u 0 inject_all START_CREATURE # Inject all the begining
+
+# u 10:10:end print_instruction_data
+
+# Print all of the standard data files...
+#u 0:100 print_dom # Save the most abundant genotypes
+#u 0:100:end print_average_data # Save info about they average genotypes
+#u 0:100:end print_dominant_data # Save info about most abundant genotypes
+#u 0:100:end print_stats_data # Collect satistics about entire pop.
+#u 0:100:end print_count_data # Count organisms, genotypes, species, etc.
+#u 0:100:end print_tasks_data # Save organisms counts for each task.
+#u 0:100:end print_time_data # Track time conversion (generations, etc.)
+#u 0:100:end print_resource_data # Track resource abundance.
+#
+#u 100:100:end print_variance_data # Variance on averages.
+#u 100:100:end print_error_data # Std. Error on averages.
+
+# A few data files not printed by default
+# u 100:100:end print_totals_data # Total counts over entire run.
+# u 100:100:end print_tasks_exe_data # Num. times tasks have been executed.
+
+
+# Setup the exit time and full population data collection.
+#u 10000:10000 detail_pop # Save current state of population.
+#u 50000:50000 dump_historic_pop # Save ancestors of current population.
+
+#u 100000 print_dom creature.final
+
+u 500:500 detail_pop # Save current state of population.
+u 500 exit # exit
+
+
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/config/genesis
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/config/genesis 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/config/genesis 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,177 @@
+#############################################################################
+# This file includes all the basic run-time defines for avida.
+# For more information, see doc/genesis.html
+#############################################################################
+
+# blah
+
+#############################################################################
+# This file includes all the basic run-time defines for avida.
+# For more information, see doc/genesis.html
+#############################################################################
+
+VERSION_ID 2.4.3 # Do not change this value.
+
+### Architecture Variables ###
+MAX_UPDATES -1 # Maximum updates to run experiment (-1 = no limit)
+MAX_GENERATIONS -1 # Maximum generations to run experiment (-1 = no limit)
+END_CONDITION_MODE 0 # End run when ...
+ # 0 = MAX_UPDATES _OR_ MAX_GENERATIONS is reached
+ # 1 = MAX_UPDATES _AND_ MAX_GENERATIONS is reached
+WORLD-X 40 # Width of the Avida world
+WORLD-Y 40 # 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 0 # Random number seed (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New, Stack-based CPUs
+
+### Configuration Files ###
+DEFAULT_DIR ../work/ # Directory in which config files are found
+INST_SET inst_set.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.100.asex # Organism to seed the soup
+
+### Birth and Death ###
+BIRTH_METHOD 0 # 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 # Are empty cells given 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 # 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_PROB 1 # probability that recombination will happen when div-sex is used
+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 at random or with corresponding ones, by location
+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 Restrictions ###
+CHILD_SIZE_RANGE 2.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 # Is a an allocate required before a divide? (0/1)
+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 # probability of death when 'die' instruction is executed
+
+### 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.0005 # Insertion rate (per site, applied on divide)
+DEL_MUT_PROB 0.0005 # Deletion rate (per site, applied on divide)
+DIV_MUT_PROB 0.002 # 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
+
+### 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 # 0.0 to 1.0; Probability of reset.
+STERILIZE_NEUTRAL 0.0 #
+STERILIZE_BENEFICIAL 0.0 #
+FAIL_IMPLICIT 0 # Should copies that failed *not* due to mutations
+ # be eliminated?
+
+### 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
+TASK_MERIT_METHOD 1 # 0 = No task bonuses
+ # 1 = Bonus just equals the task bonus
+MAX_CPU_THREADS 1 # Number of Threads a CPU can spawn
+THREAD_SLICING_METHOD 0 # Formula for and organism's thread slicing -> 1 + (num_organism_threads-1) * THREAD_SLICING_METHOD.
+ # 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 # The bonus an organism gets before it has completed any tasks
+MERIT_TIME 1 # 0 = Merit Calculated when task completed
+ # 1 = Merit Calculated on Divide
+MERIT_GIVEN 0.0 # Fraction of merit donated with 'donate' command
+MERIT_RECEIVED 0.0 # Multiplier 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 genetic (edit) distance for donate; -1=no max
+MAX_DONATES 1000000 # Limit on number of donates organisms are allowed.
+
+### 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 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.
+LOG_LANDSCAPE 0 # 0/1 (off/on) toggle to print file.
+
+### Viewer Settings ###
+VIEW_MODE 0 # Initial viewer screen
+
+### 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 #
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.asex
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.asex 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.asex 2006-04-03 21:30:43 UTC (rev 553)
@@ -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-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?
+
+#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/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.sex
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.sex 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/config/inst_set.sex 2006-04-03 21:30:43 UTC (rev 553)
@@ -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/consistencytests/Tests/Researchers/dule/LocalSex/config/organism.100.sex
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/config/organism.100.sex 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/config/organism.100.sex 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,100 @@
+h-alloc # Allocate space for child
+h-search # Locate the end of the organism
+nop-C #
+nop-A #
+mov-head # Place write-head at beginning of offspring.
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+nop-C #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+div-sex # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
Added: development/consistencytests/Tests/Researchers/dule/LocalSex/run_list.kaben
===================================================================
--- development/consistencytests/Tests/Researchers/dule/LocalSex/run_list.kaben 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/LocalSex/run_list.kaben 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,32 @@
+set email dule at alife.org # User's e-mail address
+
+set freq_email job # Frequency status is e-mailed to you. Choices are:
+ # job -- when this job is completed (default)
+ # run -- when each run is completed
+ # crash -- when a run crashes
+ # never -- no e-mail is sent
+
+set priority 3 # Priority of the job. Normally an integer between 1
+ # (low priority) and 5 (high priority) where 3 is the
+ # default priority.
+
+set description sex local/global # Description of the job to run
+
+#set class_pref 4,3,2,1 # List in order of preference which class of computers
+ # you wish to run your programs on. Current classes:
+ # class GHz MB Description
+ # 1 0.50 64 Original Leviathan computers
+ # 2 1.40 512 Original Alice computers
+ # 3 2.40 512 Alice computers with newer CPUs
+ # 4 2.80 512 Single CPU Intel computers
+ # 201 0.50 128 Original Leviathan using both CPUs
+ # 202 1.40 1024 Original Alice using both CPUs
+ # 203 2.60 1024 New CPU Alice using both CPUs
+ # Default = 4,3,2,1
+
+set max_cpus 50 # Maximum number of CPUs that this job can run on
+ # default=20
+
+
+100..149 GlobalSex ./primitive -s $seed -set INST_SET inst_set.sex -set START_CREATURE organism.100.sex -set BIRTH_METHOD 4
+100..149 GlobalAsex ./primitive -s $seed -set INST_SET inst_set.asex -set START_CREATURE organism.100.asex -set BIRTH_METHOD 4
Added: development/consistencytests/Tests/Researchers/dule/modularity/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/Researchers/dule/modularity/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/dule/modularity/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,103 @@
+
+# Note :
+#
+# ${CMAKE_CURRENT_SOURCE_DIR} points to the current source directory,
+# i.e., .../Tests/Researchers/dule/LocalSex/.
+#
+# ${CMAKE_CURRENT_BINARY_DIR} points to the equivalent binary directory,
+# i.e., .../build/Tests/Researchers/dule/LocalSex/.
+#
+
+#
+# Avida configuration
+#
+SET(ConfigDir "${CMAKE_CURRENT_SOURCE_DIR}/config")
+SET(GenesisFile "${ConfigDir}/genesis")
+SET(InstSetFile "${ConfigDir}/inst_set.sex")
+SET(EventFile "${ConfigDir}/events.cfg")
+SET(EnvironmentFile "${ConfigDir}/environment.cfg")
+SET(StartCreatureFile "${ConfigDir}/organism.100.sex")
+SET(AvidaArgs "-seed %d -set INST_SET ${InstSetFile} -set EVENT_FILE ${EventFile} -set ENVIRONMENT_FILE ${EnvironmentFile} -set START_CREATURE ${StartCreatureFile} -set BIRTH_METHOD 4")
+
+#
+# Consistency checks configuration
+#
+
+# This is Python list of Avida random seeds.
+# E.g., "range(100,15)" is equivalent to the Python list "[100,101,102,103,104]".
+# I.e., SET(SeedSet "range(100,105)") is equivalent to SET(SeedSet "[100,101,102,103,104]").
+SET(SeedSet "range(100,110)")
+# Avida will be run in, and store output files in, ${CMAKE_CURRENT_BINARY_DIR}/Test_100, and so on.
+SET(RunSubdirPathBase "${CMAKE_CURRENT_BINARY_DIR}/GlobalSex_")
+# I've written ${ConfigDir}/events.cfg to stop Avida after 100 updates,
+# and to output a single detail-population file "detail_pop.100" per run,
+# i.e., ${CMAKE_CURRENT_SOURCE_DIR}/Test_100/detail_pop.100, and so on.
+SET(OutputFileName "detail_pop.100")
+# Similar to above, except that this tells the testing scripts where to find
+# expected last lines of detail_pop.100 files,
+# i.e., ${CMAKE_CURRENT_SOURCE_DIR}/Test_100/detail_pop.100.expected_last_line, and so on.
+SET(ExpectationFilePathBase "${CMAKE_CURRENT_SOURCE_DIR}/GlobalSex_")
+SET(ExpectationFileName "detail_pop.100.expected_last_line")
+
+#
+# This generates the Python script that performs consistency checks.
+# Several of the variables defined above make their ways into the script.
+# See CMake's documentaton of the CONFIGURE_FILE command for details.
+
+SET(CheckTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/check_tails.py.in")
+SET(CheckTailsScript "${CMAKE_CURRENT_BINARY_DIR}/sex_check_tails.py")
+CONFIGURE_FILE(${CheckTailsScriptTemplate} ${CheckTailsScript} IMMEDIATE)
+
+IF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+ #ADD_TEST("GlobalSex" "${_PythonExePath}" "${CheckTailsScript}")
+ENDIF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+
+#
+# Generation of expected last lines of detail_pop.100 files.
+#
+# To trigger this script, use commands like the following :
+# $ pushd ${CMAKE_CURRENT_BINARY_DIR} # i.e., cd .../build/Tests/Researchers/dule/LocalSex/
+# $ tar cvfz Tests.tgz `find . -name detail_pop.100.expected_last_line`
+# $ cd ${CMAKE_CURRENT_SOURCE_DIR}
+# $ tar xvfz ${CMAKE_CURRENT_BINARY_DIR}/Tests.tgz
+# $ popd
+#
+# I think it's safer to require that these steps be performed by hand in order
+# to reduce the chance of inadvertently clobbering existing consistency-check suites.
+#
+SET(GenerateTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/generate_tails.py.in")
+SET(GenerateTailsScript "${CMAKE_CURRENT_BINARY_DIR}/sex_generate_tails.py")
+CONFIGURE_FILE(${GenerateTailsScriptTemplate} ${GenerateTailsScript} IMMEDIATE)
+
+
+#
+# Reconfigure for GlobalAsex
+#
+
+SET(ConfigDir "${CMAKE_CURRENT_SOURCE_DIR}/config")
+SET(GenesisFile "${ConfigDir}/genesis")
+SET(InstSetFile "${ConfigDir}/inst_set.asex")
+SET(EventFile "${ConfigDir}/events.cfg")
+SET(EnvironmentFile "${ConfigDir}/environment.cfg")
+#SET(StartCreatureFile "${ConfigDir}/organism.100.asex")
+SET(StartCreatureFile "${ConfigDir}/creature.final.asex")
+SET(AvidaArgs "-seed %d -set INST_SET ${InstSetFile} -set EVENT_FILE ${EventFile} -set ENVIRONMENT_FILE ${EnvironmentFile} -set START_CREATURE ${StartCreatureFile} -set BIRTH_METHOD 4")
+
+SET(SeedSet "range(100,110)")
+SET(RunSubdirPathBase "${CMAKE_CURRENT_BINARY_DIR}/GlobalAsex_")
+SET(OutputFileName "detail_pop.100")
+SET(ExpectationFilePathBase "${CMAKE_CURRENT_SOURCE_DIR}/GlobalAsex_")
+SET(ExpectationFileName "detail_pop.100.expected_last_line")
+
+SET(CheckTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/check_tails.py.in")
+SET(CheckTailsScript "${CMAKE_CURRENT_BINARY_DIR}/asex_check_tails.py")
+CONFIGURE_FILE(${CheckTailsScriptTemplate} ${CheckTailsScript} IMMEDIATE)
+
+IF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+ ADD_TEST("GlobalAsex" "${_PythonExePath}" "${CheckTailsScript}")
+ENDIF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+
+SET(GenerateTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/generate_tails.py.in")
+SET(GenerateTailsScript "${CMAKE_CURRENT_BINARY_DIR}/asex_generate_tails.py")
+CONFIGURE_FILE(${GenerateTailsScriptTemplate} ${GenerateTailsScript} IMMEDIATE)
+
Added: development/consistencytests/Tests/Researchers/goingssh/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+SUBDIRS(Kazi)
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/CMakeLists.txt
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/CMakeLists.txt 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/CMakeLists.txt 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,86 @@
+
+# Note :
+#
+# ${CMAKE_CURRENT_SOURCE_DIR} points to the current source directory,
+# i.e., .../Tests/Default/.
+#
+# ${CMAKE_CURRENT_BINARY_DIR} points to the equivalent binary directory,
+# i.e., .../build/Tests/Default/.
+#
+
+SET(TestsName "goingssh--Kazi")
+
+#
+# Avida configuration
+#
+
+# Number of updates per test
+SET(RunLength "500")
+# Event file generation. events.cfg.in uses the variable RunLength.
+SET(EventFileTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/events.cfg.in")
+SET(EventFile "${CMAKE_CURRENT_BINARY_DIR}/events.cfg")
+CONFIGURE_FILE(${EventFileTemplate} ${EventFile} IMMEDIATE)
+
+# Where to find default configure files.
+SET(ConfigDir "${CMAKE_CURRENT_SOURCE_DIR}/testconfig")
+# Configure files (other than the event file, generated above).
+SET(GenesisFile "${ConfigDir}/genesis")
+SET(InstSetFile "${ConfigDir}/inst_set.kazi")
+SET(EnvironmentFile "${ConfigDir}/environment.cfg")
+SET(StartCreatureFile "${ConfigDir}/kazi.org")
+# Command-line arguments passed to Avida.
+SET(AvidaArgs "-seed %d -set WORLD-X 40 -set WORLD-Y 40 -set INST_SET ${InstSetFile} -set EVENT_FILE ${EventFile} -set ENVIRONMENT_FILE ${EnvironmentFile} -set START_CREATURE ${StartCreatureFile}")
+
+#
+# Consistency checks configuration
+#
+
+SET(TestDirBaseName "Seed")
+# This is Python list of Avida random seeds.
+# E.g., "range(100,105)" is equivalent to the Python list "[100,101,102,103,104]".
+# I.e., SET(SeedSet "range(100,105)") is equivalent to SET(SeedSet "[100,101,102,103,104]").
+SET(SeedSet "range(100,105)")
+SET(OutputFileName "detail_pop.${RunLength}")
+# Similar to above, except that this tells the testing scripts where to find
+# expected last lines of detail_pop.${RunLength} files,
+# i.e., ${CMAKE_CURRENT_SOURCE_DIR}/Seed_100/detail_pop.500.expected_last_line, and so on.
+SET(ExpectationFileName "detail_pop.${RunLength}.expected_last_line")
+# Avida will be run in, and store output files in,
+# ${CMAKE_CURRENT_BINARY_DIR}/Seed_100, and so on.
+SET(ExpectationFilePathBase "${CMAKE_CURRENT_SOURCE_DIR}/${TestDirBaseName}_")
+SET(RunSubdirPathBase "${CMAKE_CURRENT_BINARY_DIR}/${TestDirBaseName}_")
+
+#
+# This generates the Python script that performs consistency checks.
+# Several of the variables defined above make their ways into the script.
+# See CMake's documentaton of the CONFIGURE_FILE command for details.
+SET(CheckTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/check_tails.py.in")
+SET(CheckTailsScript "${CMAKE_CURRENT_BINARY_DIR}/check_tails.py")
+CONFIGURE_FILE(${CheckTailsScriptTemplate} ${CheckTailsScript} IMMEDIATE)
+
+IF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+ ADD_TEST("Consistency-Check--${TestsName}" "${_PythonExePath}" "${CheckTailsScript}")
+ENDIF(AVD_CONSISTENCY_TEST_PRIMITIVE)
+
+#
+# Generation of expected last lines of detail_pop files.
+#
+SET(GenerateTailsScriptTemplate "${PROJECT_SOURCE_DIR}/CMakeModules/Templates/generate_tails.py.in")
+SET(GenerateTailsScript "${CMAKE_CURRENT_BINARY_DIR}/generate_tails.py")
+CONFIGURE_FILE(${GenerateTailsScriptTemplate} ${GenerateTailsScript} IMMEDIATE)
+#
+# To regenerate expected last lines of detail_pop files, use commands like the
+# following :
+# $ pushd ${CMAKE_CURRENT_BINARY_DIR} # i.e., cd .../build/consistencytests/Tests/Default/
+# $ python ./generate_tails.py
+# $ tar cvfz Tests.tgz `find . -name detail_pop.*.expected_last_line`
+# $ cd ${CMAKE_CURRENT_SOURCE_DIR}
+# $ tar xvfz ${CMAKE_CURRENT_BINARY_DIR}/Tests.tgz
+# $ popd
+#
+# I think it's safer to require that these steps be performed by hand in order
+# to reduce the chance of inadvertently clobbering existing consistency-check suites.
+#
+
+# Vim modeline to tell Vim that this is a configuration script.
+# vim: set ft=config:
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_100/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_100/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_100/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+3558 3350 1 1 2 100 0 0 0 480 -1 2 rucavcBABBBulBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBButycasvab
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_101/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_101/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_101/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+3912 3673 1 1 1 100 0 0 0 499 -1 3 rucavcBABBBBBBBBBBBBBBBBBBBBBBBBBmBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBButymazvab
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_102/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_102/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_102/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+3857 3015 1 1 1 100 0 0 0 499 -1 3 rucavcBjBBBBBBBBBBBBBBBBBBBByBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBkBBBBBBBBBBBBBBBBBBBBBBBBBBBBBButyoasvab
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_103/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_103/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_103/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+3587 3377 1 1 2 100 0 0 0 480 -1 4 rucavcBABBBBBBBeBBBBBBiBBBBBBlBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBmBButycasvab
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_104/detail_pop.500.expected_last_line
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_104/detail_pop.500.expected_last_line 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/Seed_104/detail_pop.500.expected_last_line 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1 @@
+291 228 1 1 56 100 97 389 0.249357 207 -1 4 rucavcBABBBlBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBrBBxBBBsBBBBBBBBBBBBBBBBBBBButycasvab
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/analyze.cfg
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/analyze.cfg 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/analyze.cfg 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,9 @@
+#############################################################################
+# This file is used to setup avida when it is in analysis-only mode (by
+# running "avida -a". It allows variety of methods to load organisms
+# (specifying the type of each) and analyze them once loaded.
+#
+# See the documentation in doc/analyze_mode.html for usage, or the file
+# doc/analyze_samples.html for guidelines on writing programs.
+#
+#############################################################################
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/environment.cfg
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/environment.cfg 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/environment.cfg 2006-04-03 21:30:43 UTC (rev 553)
@@ -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/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/genesis
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/genesis 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/genesis 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,166 @@
+#############################################################################
+# This file includes all the basic run-time defines for avida.
+# For more information, see doc/genesis.html
+#############################################################################
+
+VERSION_ID 2.0b7 # Do not change this value!
+
+### Architecture Variables ###
+MAX_UPDATES -1 # Maximum updates to run simulation (-1 = no limit)
+MAX_GENERATIONS -1 # Maximum generations to run simulation (-1 = no limit)
+END_CONDITION_MODE 0 # End run when ...
+ # 0 = MAX_UPDATES _OR_ MAX_GENERATIONS is reached
+ # 1 = MAX_UPDATES _AND_ MAX_GENERATIONS is reached
+WORLD-X 60 # Width of the world in Avida mode.
+WORLD-Y 60 # Height of the world in Avida mode.
+WORLD_GEOMETRY 2 # 1 = Bounded Grid
+ # 2 = Torus (Default)
+RANDOM_SEED 0 # Random number seed. (0 for based on time)
+HARDWARE_TYPE 0 # 0 = Original CPUs
+ # 1 = New, Stack-based CPUs
+MAX_CPU_THREADS 1 # Number of Threads CPUs can spawn
+
+### Configuration Files ###
+DEFAULT_DIR ./ # Directory in which config files are found
+INST_SET inst_set.default # 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.default # Organism to seed the soup
+
+### Reproduction ###
+BIRTH_METHOD 0 # 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 entire population (Mass Action)
+ # 5 = Replace oldest in entire population (like Tierra)
+DEATH_METHOD 0 # 0 = Never die of old age.
+ # 1 = Die when inst executed = AGE_LIMIT (with deviation)
+ # 2 = Die when inst executed = length * AGE_LIMIT (+ dev.)
+AGE_LIMIT 5000 # Modifies DEATH_METHOD
+AGE_DEVIATION 0 # Modified DEATH_METHOD
+ALLOC_METHOD 0 # 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)
+
+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).
+
+### Divide Restrictions ####
+CHILD_SIZE_RANGE 1.0 # Maximal differential between child and parent sizes.
+MIN_COPIED_LINES 0.5 # Code fraction which must be copied before divide.
+MIN_EXE_LINES 0.5 # Code fraction which must be executed before divide.
+REQUIRE_ALLOCATE 1 # Is a an allocate required before a divide? (0/1)
+REQUIRED_TASK -1 # Number of task required for successful divide.
+
+### Mutations ###
+
+# mutations that occur during execution..
+POINT_MUT_PROB 0.0 # Mutation rate (per-location per update)
+COPY_MUT_PROB 0.002 # Mutation rate (per copy).
+
+# mutations that occur on divide...
+INS_MUT_PROB 0.0 # Insertion rate (per site, applied on divide).
+DEL_MUT_PROB 0.0 # Deletion rate (per site, applied on divide).
+DIV_MUT_PROB 0.0 # Mutation rate (per site, applied on divide).
+DIVIDE_MUT_PROB 0.0 # Mutation rate (per divide).
+DIVIDE_INS_PROB 0.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
+
+# heads based mutations
+# READ_SHIFT_PROB 0.0
+# READ INS_PROB 0.0
+# READ_DEL_PROB 0.0
+# WRITE_SHIFT_PROB 0.0
+# WRITE_INS_PROB 0.0
+# WRITE_DEL_PROB 0.0
+
+
+### Mutation reversions ###
+# these slow down avida a lot, and should be set to 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 # 0.0 to 1.0; Probability of reset.
+STERILIZE_NEUTRAL 0.0
+STERILIZE_BENEFICIAL 0.0
+
+FAIL_IMPLICIT 0 # Should copies that failed *not* due to mutations
+ # be eliminated?
+KAZI_DISTANCE 5 # HDT of any kaziing organism
+
+### Time Slicing ###
+AVE_TIME_SLICE 30
+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
+TASK_MERIT_METHOD 1 # 0 = No task bonuses
+ # 1 = Bonus just equals the task bonus
+THREAD_SLICING_METHOD 0 # 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
+MERIT_TIME 1 # 0 = Merit Calculated when task completed
+ # 1 = Merit Calculated on Divide
+MAX_NUM_TASKS_REWARDED -1 # -1 = Unlimited
+
+### Genotype Info ###
+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)
+TRACK_MAIN_LINEAGE 1 # Track primary lineage leading to final population?
+
+### 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.
+LOG_LANDSCAPE 0 # 0/1 (off/on) toggle to print file.
+
+LOG_LINEAGES 0 # 0/1 (off/on) to log advantageous mutations
+# 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.
+# See also LINEAGE_CREATION_METHOD.
+
+LINEAGE_CREATION_METHOD 0
+# 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
+
+### END ###
+
+
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/inst_set.kazi
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/inst_set.kazi 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/inst_set.kazi 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,54 @@
+nop-A 1 # a
+nop-B 1 # b
+nop-C 1 # c
+if-n-equ 1 # d
+if-less 1 # e
+pop 0 # f
+push 0 # g
+swap-stk 1 # h
+swap 1 # i
+shift-r 1 # j
+shift-l 1 # k
+inc 1 # l
+dec 1 # m
+add 1 # n
+sub 1 # o
+nand 1 # p
+IO 1 # q Puts current contents of register and gets new.
+h-alloc 1 # r Allocate as much memory as organism can use.
+h-divide 1 # s Cuts off everything between the read and write heads
+h-copy 1 # t Combine h-read and h-write
+h-search 1 # u Search for matching template, set flow head & return info
+ # # if no template, move flow-head here, set size&offset=0.
+mov-head 1 # v Move ?IP? head to flow control.
+jmp-head 1 # w Move ?IP? head by fixed amount in CX. Set old pos in CX.
+get-head 1 # x Get position of specified head in CX.
+if-label 1 # y
+set-flow 1 # z Move flow-head to address in ?CX?
+kazi 1
+nop-X 0
+
+#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.
\ No newline at end of file
Added: development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/kazi.org
===================================================================
--- development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/kazi.org 2006-04-01 18:39:14 UTC (rev 552)
+++ development/consistencytests/Tests/Researchers/goingssh/Kazi/testconfig/kazi.org 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,101 @@
+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-X #
+kazi #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+nop-X #
+h-search # Mark the beginning of the copy loop
+h-copy # Do the copy
+if-label # If we're done copying....
+nop-C #
+nop-A #
+h-divide # ...divide!
+mov-head # Otherwise, loop back to the beginning of the copy loop.
+nop-A # End label.
+nop-B #
+
Added: development/test_avida
===================================================================
--- development/test_avida 2006-04-01 18:39:14 UTC (rev 552)
+++ development/test_avida 2006-04-03 21:30:43 UTC (rev 553)
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+mkdir -p build
+cd build
+cmake \
+ -DAVD_CONSISTENCY_TEST_PRIMITIVE:BOOL=ON \
+ -DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF \
+ ../
+make
+make install
+ctest --verbose -R Consistency
Property changes on: development/test_avida
___________________________________________________________________
Name: svn:executable
+ *
More information about the Avida-cvs
mailing list