annotate trunk/test.py @ 0:4b2e8e8a633e

Repository setup.
author revcompgeek
date Mon, 03 Mar 2008 19:28:10 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
1 #!/usr/bin/python
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
2
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
3 from subprocess import *
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
4
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
5 def frange(*args):
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
6 l = len(args)
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
7 if l == 1: # only to
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
8 f = 0
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
9 t = args[0]
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
10 step = 1
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
11 elif l == 2: # from, to
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
12 start, stop = args
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
13 step = 1
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
14 elif l == 3:
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
15 start, stop, step = args
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
16 k = (stop-start)/step+1
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
17 return map(lambda x, f=start, s=step: f+s*x, range(max(0, int(k))))
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
18
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
19 prefix = "/Users/matthew/Desktop/D/ai/"
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
20 output_prefix = "/Users/matthew/Desktop/D/ai/tests/"
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
21
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
22 print "Running..."
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
23
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
24
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
25 repetitions=100
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
26
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
27 tests = [
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
28 ["ga_code","mutation-rate", "-m",frange(0.0,0.05,0.01) + frange(0.1,1,0.05),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
29 ["ga_code","population", "-p",frange(500,5000,500),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
30 ["ga_code","survival-rate", "-d",frange(0.2,0.8,0.05),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
31 ["ga_code","crossover-type","-c",frange(1,3,1),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
32 ["ga_code","code-length", "-l",frange(10,30,1),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
33
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
34 ["ga_maze","mutation-rate","-m",frange(0.0,0.05,0.01) + frange(0.1,1,0.05),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
35 ["ga_maze","population", "-p",frange(500,5000,500),["-s","9","9"]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
36 ["ga_maze","survival-rate", "-d",frange(0.2,0.8,0.05),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
37 ["ga_maze","crossover-type","-c",frange(1,3,1),[]],
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
38 ["ga_maze","code-length", "-l",frange(10,30,1),[]]
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
39 ]
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
40
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
41 def runTest(exe,name,switch,vrange,addparams):
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
42 f = open(output_prefix + ("%s_%s_generations.csv" % (exe,name)),"w")
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
43 f2 = open(output_prefix + ("%s_%s_times.csv" % (exe,name)),"w")
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
44
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
45 for i in vrange:
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
46 print i
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
47 p = Popen([prefix + exe,switch,str(i),"-r",str(repetitions),"-b","100"]+addparams,stdout=PIPE,bufsize=-1)
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
48 p.wait()
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
49 r = "".join(p.stdout.readlines())
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
50 r = r.split(",");
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
51 f.write("%s,%s,%s\n" % (str(i),r[0],r[1]))
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
52 f2.write("%s,%s,%s" % (str(i),r[2],r[3]))
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
53 f.close()
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
54 f2.close()
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
55 #try:
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
56 for test in tests:
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
57 print "%s: %s" % (test[0],test[1])
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
58 runTest(test[0],test[1],test[2],test[3],test[4])
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
59 #except:
4b2e8e8a633e Repository setup.
revcompgeek
parents:
diff changeset
60 # print "Stopped"