hdiff output

r31646/frqs_tests_parser.py 2016-12-15 12:30:56.912675449 +0000 r31645/frqs_tests_parser.py 2016-12-15 12:30:59.960714869 +0000
 60:     print "Comparing ", f1, "with ", f2 60:     print "Comparing ", f1, "with ", f2
 61:     success = True 61:     success = True
 62:  62: 
 63:     E1, sym1, frqs1 = read_pathinfo(f1, nconfigs, n_frqs_lines, n_coords_lines) 63:     E1, sym1, frqs1 = read_pathinfo(f1, nconfigs, n_frqs_lines, n_coords_lines)
 64:     E2, sym2, frqs2 = read_pathinfo(f2, nconfigs, n_frqs_lines, n_coords_lines) 64:     E2, sym2, frqs2 = read_pathinfo(f2, nconfigs, n_frqs_lines, n_coords_lines)
 65:      65:     
 66:  66: 
 67:     Efailures = 0 67:     Efailures = 0
 68:     symfailures = 0 68:     symfailures = 0
 69:     frqfailures = 0 69:     frqfailures = 0
 70:     nzeros = 6 70:     
 71:  71: 
 72:     mapping = check_ordering(E1, E2, tol) 72:     mapping = check_ordering(E1, E2, tol)
 73:  73: 
 74:     if mapping is None: 74:     if mapping is None:
 75:         success=False 75:         success=False
 76:     elif mapping!=range(nconfigs):  # if it is None, then we will report the failure in the normal way 76:     elif mapping!=range(nconfigs):  # if it is None, then we will report the failure in the normal way
 77:         print "Mapping stationary points between the files according to: ", mapping 77:         print "Mapping stationary points between the files according to: ", mapping
 78:         E2 = [ E2[i] for i in mapping] 78:         E2 = [ E2[i] for i in mapping]
 79:         sym2 = [ sym2[i] for i in mapping] 79:         sym2 = [ sym2[i] for i in mapping]
 80:         frqs2 = [ frqs2[i] for i in mapping]        80:         frqs2 = [ frqs2[i] for i in mapping]       
 86:             success = False 86:             success = False
 87:  87: 
 88:     for i in xrange(nconfigs): 88:     for i in xrange(nconfigs):
 89:         if sym1[i]!=sym2[i]: 89:         if sym1[i]!=sym2[i]:
 90:             symfailures+=1 90:             symfailures+=1
 91:             print "Symmetries differ for structure "+str(i)+':', sym1[i][:-2], sym2[i][:-2] 91:             print "Symmetries differ for structure "+str(i)+':', sym1[i][:-2], sym2[i][:-2]
 92:             success = False 92:             success = False
 93:  93: 
 94:     if success: 94:     if success:
 95:         for i in xrange(nconfigs): 95:         for i in xrange(nconfigs):
 96:  
 97:             # Set up a list of which frequencies are zeros - these need to be tested with a different tolerance, since 
 98:             # there is no guarantee they will always have the same value 
 99:             zeros = [[False, False, False] for x in xrange(n_frqs_lines)] 
100:             zeros[-2][:]=[True, True, True] 
101:             zeros[-1][:]=[True, True, True] 
102:             if i%3==1:  # Transition state 
103:                 zeros[-3][2]=True 
104:                 zeros[-1][2]=False 
105:             smallest = frqs2[i][-3][1]  # Save the (second-)smallest positive eigenvalue to test the zeros 
106:  
107:             for j in xrange(n_frqs_lines): 96:             for j in xrange(n_frqs_lines):
108:                 nfails = 0 97:                 nfails = 0
109:                 for k in xrange(3): 98:                 for k in xrange(3):
110:                      99:                     if abs((frqs1[i][j][k]-frqs2[i][j][k])/frqs1[i][j][k]) > tol:
111:                     if (zeros[j][k]):100:                         nfails += 1
112:                         # Zero frequencies must be no larger than 10% of the smallest non-zero frequency (this is a very lenient criterion!)    
113:                         if abs(frqs2[i][j][k]/smallest) > 0.1: 
114:                             print "zero frequency ", frqs2[i][j][k], "is too large compared with smallest positive frequency ", smallest 
115:                             nfails += 1 
116:                     else: 
117:                         # Non-zero frequency is tested with a fractional tolerance against expected output. 
118:                         if (abs((frqs1[i][j][k]-frqs2[i][j][k])/frqs1[i][j][k]) > tol):   
119:                             nfails += 1 
120:                 if nfails:101:                 if nfails:
121:                     print "Config ", i, "Line ", j+1, "failed ", nfails, "times"102:                     print "Line ", j+1, "failed ", nfails, "times"
122:                     frqfailures += nfails103:                     frqfailures += nfails
123:                     success = False104:                     success = False
124: 105: 
125:         if frqfailures:106:         if frqfailures:
126:             print frqfailures, "frequencies differed between the two files"107:             print frqfailures, "frequencies differed between the two files"
127:         return success108:         return success
128:     else:109:     else:
129:         print "Stationary points in path.info file differ. Test failed."110:         print "Stationary points in path.info file differ. Test failed."
130:         return False111:         return False
131: 112: 


legend
Lines Added 
Lines changed
 Lines Removed

hdiff - version: 2.1.0