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

# SCM Repository

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

revision 4321, Sat Jul 30 15:12:46 2016 UTC revision 4363, Thu Aug 4 22:42:10 2016 UTC
# Line 3  Line 3
3  from obj_operator import *  from obj_operator import *
4  import math  import math
5
6  def toStr(name,var, maxdiff,sumdiff):  divConstant=7.2
7
8    def toStr(name, var, maxdiff, sumdiff, per, s):
9      # f = open("results_tmp.txt", 'a+')      # f = open("results_tmp.txt", 'a+')
10      #f.write("\n\n **********")      #f.write("\n\n **********")
11      #print (name)      #print (name)
12      x= " max diff: "+str(round(maxdiff,4))+" sumdiff: "+str(round(sumdiff,4))      x= " max diff: "+str(round(maxdiff,4))+" sumdiff: "+str(round(sumdiff,4))
13      #print "x",x      #print "x",x
14      #f.write(name)      #f.write(name)
15        rst_good = 0
16        rst_eh = 0
17        rst_check = 0
18        rst_terrible= 0
19        rst_compile = 0
20
21      if (maxdiff<=0.01):      if (maxdiff<=0.01):
22          rtn = "Results: "+var+": good"          rtn = "Results: "+var+": good"
23          #   f.write("\n\t\t"+rtn)          rst_good = 1
24          #f.close()          return (rtn, rst_good, rst_eh, rst_check, rst_terrible, rst_compile)
25          #print rtn      elif (maxdiff<=0.1):
return (rtn,1,0,0,0)
elif (maxdiff<=0.5):
26          rtn = "Results: "+var+": eh "+x          rtn = "Results: "+var+": eh "+x
27          #f.write("\n\t\t"+rtn)          rst_eh = 1
28          #f.close()          return (rtn, rst_good, rst_eh, rst_check, rst_terrible, rst_compile)
29          #print rtn      elif(per>10 and maxdiff>0.1):
30          return (rtn,0,1,0,0)          rtn = "Results: "+var+": terrible "+s
31      else:          rst_terrible = 1
32          rtn = "Results: "+var+": terrible "+x          return (rtn, rst_good, rst_eh, rst_check, rst_terrible, rst_compile)
33          #f.write("\n\t\t"+rtn)      elif(per>1 and maxdiff>1.0):
34          #f.close()          rtn = "Results: "+var+": terrible "+s
35          #print rtn          rst_terrible = 1
36          return (rtn,0,0,1,0)          return (rtn, rst_good, rst_eh, rst_check, rst_terrible, rst_compile)
37        else:
38            rtn = "Results: "+var+": check "+s
39            rst_check = 1
40            return (rtn, rst_good, rst_eh, rst_check, rst_terrible, rst_compile)
41
42  #difference and error between observed data and correct data  #difference and error between observed data and correct data
43  #output is length 1  #output is length 1
44  def checkdiff_1(name, obv, cor):  def checkdiff_1(name, obv, cor):
45      maxdiff = 0      maxdiff = 0
46      sumdiff = 0      sumdiff = 0
47      length = 0      length = 0
48        obs=0.0
49        o6 = 0.0
50        c6 = 0.0
51        per = 0.0
52      for (o,c) in zip(obv,cor):      for (o,c) in zip(obv,cor):
53          #print ("observed:",o,"correct:",c)          #print ("observed:",o,"correct:",c)
54          length+=1          length+=1
55          if (o==0):          if (o==0):
56              break              break
57          else:          else:
58                if(abs(o-divConstant)<0.01):
59                    print "used div constant"
60                    break
61                else:
62              diff=abs(c-o)              diff=abs(c-o)
63              sumdiff+=diff              sumdiff+=diff
64              if(diff>maxdiff):              if(diff>maxdiff):
65                  maxdiff=diff                  maxdiff=diff
66                        o6 = o
67                        c6 = c
68        if(o6==0):
69            per = 0.0
70        else:
71            per  = 100*(maxdiff/o6)
72        avg = sumdiff/length
73        s=" max diff: "+str(round(maxdiff,4))+" sumdiff: "+str(round(avg,4))+" "+ str(round(per,4))+"% c:"+str( c6)+ " o:"+str(o6)
74          #print("current maximal difference", maxdiff, "c: ", c, " o:",o)          #print("current maximal difference", maxdiff, "c: ", c, " o:",o)
76
77  def checkdiff(name, obv, cor):  def checkdiff(name, obv, cor):
78      no = len(obv)      no = len(obv)
# Line 55  Line 82
82      maxdiff=0      maxdiff=0
83      sumdiff = 0      sumdiff = 0
84      length = 0      length = 0
85        s=""
86        o6 = 0.0
87        c6 = 0.0
88        per= 0.0
89      size =len(obv)      size =len(obv)
90      #print "no ",no," size: ",size      #print "no ",no," size: ",size
91
# Line 72  Line 102
102              c1= cor[i][j]              c1= cor[i][j]
103              if (o1==0):              if (o1==0):
104                  break                  break
105                if(abs(o1-divConstant)<0.01):
106                    print "used div constant"
107                    break
108                else:
109              diff=abs(o1-c1)              diff=abs(o1-c1)
110              sumdiff += diff              sumdiff += diff
111              if(diff > maxdiff):              if(diff > maxdiff):
112                  maxdiff = diff                  maxdiff = diff
113              #print("current maximal difference", maxdiff, "c: ", c1, " o:",o1)                      o6 = o1
114              if(c1==0):                      c6 = c1
115                  break      if(o6==0):
116      print "made it here"          per = 0.0