small changes to the tests to get some initial results
This commit is contained in:
parent
41a5b5275b
commit
b1426dd31d
113
batch.py
113
batch.py
@ -1,5 +1,7 @@
|
||||
from matplotlib import pyplot
|
||||
from os import listdir
|
||||
|
||||
|
||||
def is_numeric(x):
|
||||
try:
|
||||
float(x)
|
||||
@ -7,42 +9,95 @@ def is_numeric(x):
|
||||
return False
|
||||
return True
|
||||
|
||||
avg_lap_time = [0]*50
|
||||
avg_position = [0]*50
|
||||
avg_speed = [0]*50
|
||||
avg_top = [0]*50
|
||||
total_rescued = [0]*50
|
||||
|
||||
#for entry in ['sara','tux','elephpant','pidgin']:
|
||||
|
||||
avg_lap_time = {}
|
||||
avg_pos = {}
|
||||
avg_speed = {}
|
||||
avg_top = {}
|
||||
total_rescued = {}
|
||||
|
||||
tests = len(listdir('../batch'))-1
|
||||
for file in listdir('../batch'):
|
||||
if (file == '.DS_Store'):
|
||||
continue
|
||||
f = open('../batch/'+file,'r')
|
||||
"""
|
||||
|
||||
|
||||
'''
|
||||
name_index = file.find('.')
|
||||
name = str(file[:name_index])
|
||||
kart_name = str(file[:name_index])
|
||||
first = file.find('.',name_index+1)
|
||||
numkarts = int(file[name_index+1:first])
|
||||
track_name = file[name_index+1:first]
|
||||
second = file.find('.',first+1)
|
||||
laps = int(file[first+1:second])
|
||||
third = file.find('.',second+1)
|
||||
run = int(file[second+1:third])
|
||||
"""
|
||||
mass = int(file[:file.find('.')])
|
||||
contents = f.readlines()
|
||||
contents = contents[2:contents.index("[debug ] profile: \n")-1]
|
||||
content = [s for s in contents if "sara" in s]
|
||||
data = [float(x) for x in content[0].split() if is_numeric(x)]
|
||||
avg_lap_time[(mass-50)/10] += (data[2]/2)/5
|
||||
avg_position[(mass-50)/10] += data[1]/5
|
||||
avg_speed[(mass-50)/10] += data[3]/5
|
||||
avg_top[(mass-50)/10] += data[4]/5
|
||||
total_rescued[((mass-50)/10)] += data[7]
|
||||
print("total rescue")
|
||||
for i in range(len(avg_lap_time)):
|
||||
print(i*10+50, total_rescued[i])
|
||||
run = int(file[first+1:second])
|
||||
'''
|
||||
track_name = "snowmountain"
|
||||
kart_names = ["gnu", "sara", "tux", "elephpant"]
|
||||
|
||||
if track_name == "snowmountain":
|
||||
contents = f.readlines()
|
||||
'''
|
||||
contents = contents[2:contents.index("[debug ] profile: \n")-1]
|
||||
content = [s for s in contents if kart_name in s]
|
||||
data = [float(x) for x in content[0].split() if is_numeric(x)]
|
||||
if kart_name not in avg_lap_time:
|
||||
avg_lap_time[kart_name] = []
|
||||
avg_pos[kart_name] = []
|
||||
avg_speed[kart_name] = []
|
||||
avg_top[kart_name] = []
|
||||
total_rescued[kart_name] = []
|
||||
|
||||
avg_lap_time[kart_name].append(data[2]/4)
|
||||
avg_pos[kart_name].append(data[1])
|
||||
avg_speed[kart_name].append(data[3])
|
||||
avg_top[kart_name].append(data[4])
|
||||
total_rescued[kart_name].append(data[7])
|
||||
'''
|
||||
|
||||
|
||||
"""avg_lap_time[i], avg_position[i], avg_speed[i], avg_top[i],"""
|
||||
contents = contents[2:6] #TODO check if all is in here
|
||||
for kart in kart_names:
|
||||
content = [s for s in contents if kart in s]
|
||||
data = [float(x) for x in content[0].split() if is_numeric(x)]
|
||||
if kart not in avg_lap_time:
|
||||
avg_lap_time[kart] = []
|
||||
avg_pos[kart] = []
|
||||
avg_speed[kart] = []
|
||||
avg_top[kart] = []
|
||||
total_rescued[kart] = []
|
||||
|
||||
avg_lap_time[kart].append(data[2]/4)
|
||||
avg_pos[kart].append(data[1])
|
||||
avg_speed[kart].append(data[3])
|
||||
avg_top[kart].append(data[4])
|
||||
total_rescued[kart].append(data[7])
|
||||
|
||||
tests = len(avg_lap_time["gnu"])
|
||||
print total_rescued
|
||||
|
||||
|
||||
for kart in kart_names:
|
||||
print "rescues for ", kart , ": ", sum(total_rescued[kart])/tests
|
||||
print "avg_lap_time for " , kart , ": " , sum(avg_lap_time[kart])/tests
|
||||
print "avg_pos for " , kart , ": " , sum(avg_pos[kart])/tests
|
||||
print "avg_speed for " , kart , ": " , sum(avg_speed[kart])/tests
|
||||
print "avg_top for " , kart , ": " , sum(avg_top[kart])/tests
|
||||
|
||||
|
||||
pyplot.subplot(2,2,1)
|
||||
pyplot.plot(list(xrange(tests)),avg_pos["gnu"], "b-")
|
||||
pyplot.xlabel("tests")
|
||||
pyplot.ylabel("gnu")
|
||||
pyplot.subplot(2,2,2)
|
||||
pyplot.plot(list(xrange(tests)),avg_pos["sara"], "r-")
|
||||
pyplot.xlabel("tests")
|
||||
pyplot.ylabel("sara")
|
||||
pyplot.subplot(2,2,3)
|
||||
pyplot.plot(list(xrange(tests)),avg_pos["elephpant"], "y-")
|
||||
pyplot.xlabel("tests")
|
||||
pyplot.ylabel("elephpant")
|
||||
pyplot.subplot(2,2,4)
|
||||
pyplot.plot(list(xrange(tests)),avg_pos["tux"], "g-")
|
||||
pyplot.xlabel("tests")
|
||||
pyplot.ylabel("tux")
|
||||
|
||||
pyplot.show()
|
||||
|
52
test.sh
52
test.sh
@ -1,47 +1,19 @@
|
||||
#!/bin/bash
|
||||
|
||||
mkdir -p ../batch
|
||||
#tracks='snowmountain city lighthouse olivermath hacienda startrack farm zengarden'
|
||||
#karts='gnu tux sara elephpant'
|
||||
laps=4
|
||||
|
||||
tracks='snowmountain city lighthouse olivermath hacienda startrack farm zengarden'
|
||||
karts='beastie sara elephpant tuxley'
|
||||
laps=1
|
||||
|
||||
for track in $tracks; do
|
||||
#beastie is the current kart
|
||||
#sara is the light kart
|
||||
#tuxley is the medium kart
|
||||
#elephpant is the heavy kart
|
||||
for kart in $karts; do
|
||||
for run in {1..50}; do
|
||||
#for track in $tracks; do
|
||||
#for kart in $karts; do
|
||||
for run in {901..1500}; do
|
||||
for lap in $laps; do
|
||||
./cmake_build/bin/supertuxkart.app/Contents/MacOS/supertuxkart -R --mode=3 --numkarts=1 --track=$track --with-profile --profile-laps=$lap --kart=$kart --ai=beastie,beastie,beastie --no-graphics > /dev/null
|
||||
grep "profile" ~/Library/Application\ Support/SuperTuxKart/stdout.log > ../batch/$track.$kart.$run.txt
|
||||
./cmake_build/bin/supertuxkart.app/Contents/MacOS/supertuxkart -R --mode=3 --numkarts=4 --track=snowmountain --with-profile --profile-laps=4 --kart=gnu --ai=sara,tux,elephpant --no-graphics > /dev/null
|
||||
#./cmake_build/bin/supertuxkart.app/Contents/MacOS/supertuxkart -R --mode=3 --numkarts=4 --track=$track --with-profile --profile-laps=$lap --kart=$kart --ai=beastie,beastie,beastie --no-graphics > /dev/null
|
||||
#grep "profile" ~/Library/Application\ Support/SuperTuxKart/stdout.log > ../batch/$kart.$track.$run.txt
|
||||
grep "profile" ~/Library/Application\ Support/SuperTuxKart/stdout.log > ../batch/faceoff.$run.txt
|
||||
done
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#for track in ../stk-assets/tracks/*/track.xml; do
|
||||
# grep "internal" "$track"
|
||||
# if grep -q "internal" "$track" ; then
|
||||
# continue;
|
||||
# else
|
||||
# if grep -q "arena" "$track" ; then
|
||||
# continue;
|
||||
# else
|
||||
# if grep -q "soccer" "$track" ; then
|
||||
# continue;
|
||||
# else
|
||||
# a=${track%%/track.xml};
|
||||
# trackname=${a##../stk-assets/tracks/};
|
||||
# fi
|
||||
# fi
|
||||
# fi
|
||||
# if [ $trackname = "minel" ] || [ $trackname = "mines" ]; then
|
||||
# continue;
|
||||
# fi
|
||||
# done
|
||||
#done
|
Loading…
x
Reference in New Issue
Block a user