Home My Page Projects Code Snippets Project Openings diderot
 Summary Activity Tracker Tasks SCM

# SCM Repository

[diderot] View of /branches/ein16/synth/d2/test_compare.py
 [diderot] / branches / ein16 / synth / d2 / test_compare.py # View of /branches/ein16/synth/d2/test_compare.py

Revision 4356 - (download) (as text) (annotate)
Wed Aug 3 16:22:02 2016 UTC (3 years ago) by cchiw
File size: 2878 byte(s)
`added division subcase`
```#needs output tensor types
from obj_ty import *
from obj_operator import *
import math

divConstant=7.2

def toStr(name,var, maxdiff,sumdiff):
# f = open("results_tmp.txt", 'a+')
#f.write("\n\n **********")
#print (name)
x= " max diff: "+str(round(maxdiff,4))+" sumdiff: "+str(round(sumdiff,4))
#print "x",x
#f.write(name)
if (maxdiff<=0.01):
rtn = "Results: "+var+": good"
#   f.write("\n\t\t"+rtn)
#f.close()
#print rtn
return (rtn,1,0,0,0)
elif (maxdiff<=0.1):
rtn = "Results: "+var+": eh "+x
#f.write("\n\t\t"+rtn)
#f.close()
#print rtn
return (rtn,0,1,0,0)
else:
rtn = "Results: "+var+": terrible "+x
#f.write("\n\t\t"+rtn)
#f.close()
#print rtn
return (rtn,0,0,1,0)
#difference and error between observed data and correct data
#output is length 1
def checkdiff_1(name, obv, cor):
maxdiff = 0
sumdiff = 0
length = 0
for (o,c) in zip(obv,cor):
#print ("observed:",o,"correct:",c)
length+=1
if (o==0):
break
else:
if(abs(o-divConstant)<0.01):
print "used div constant"
break
else:
diff=abs(c-o)
sumdiff+=diff
if(diff>maxdiff):
maxdiff=diff
#print("current maximal difference", maxdiff, "c: ", c, " o:",o)
return toStr(name,"x", maxdiff,sumdiff/length)

def checkdiff(name, obv, cor):
no = len(obv)
nc = len(cor)
if(no!=nc):
raise ("different size for data- observed: "+str(n0)+"correct: "+str(nc))
maxdiff=0
sumdiff = 0
length = 0

size =len(obv)
#print "no ",no," size: ",size

for i in range(no):
for j in range(size):
length+=1
o1=obv[i][j]
if(o1=="nan"):
print"found nan"
rtn = "results is nan sumdiff up to now "+str(round(sumdiff/length,4))
return (rtn,0,0,1,0)

#c1=round(cor[i][j], 4)
c1= cor[i][j]
if (o1==0):
break
if(abs(o1-divConstant)<0.01):
print "used div constant"
break
else:
diff=abs(o1-c1)
sumdiff += diff
if(diff > maxdiff):
maxdiff = diff
print("current maximal difference", maxdiff, "c: ", c1, " o:",o1)

print "made it here"
return toStr(name,"x0", maxdiff,sumdiff/length)

#chose function based on length of output
def compare(app, obv, cor):
ex_otype = fty.get_tensorType(app.oty)
print "inside compare"
if(ty_scalarT==ex_otype):
return checkdiff_1(app.name, obv, cor)
else:
return checkdiff(app.name, obv, cor)```

 root@smlnj-gforge.cs.uchicago.edu ViewVC Help Powered by ViewVC 1.0.0