Ignore:
Timestamp:
09/06/21 16:38:42 (5 months ago)
Author:
jderouillat
Message:

Update trunk test suite with the same protocol that on COUPLING

File:
1 edited

Legend:

Unmodified
Added
Removed
  • XIOS/trunk/xios_test_suite/TEST_SUITE/step2.py

    r1915 r2218  
    77import copy 
    88 
     9import netCDF4 
     10from netCDF4 import Dataset 
     11import numpy as np 
    912 
    1013mode=os.getenv("mode") 
     
    1821def OSinfo(runthis): 
    1922    red = lambda text: '\033[0;31m' + text + '\033[0m' 
    20     osstdout = subprocess.Popen(runthis, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, close_fds=True) 
    21     theInfo = osstdout.communicate()[0].strip() 
    22     if osstdout.returncode!=0: 
     23    osstdout = subprocess.Popen(runthis, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True) 
     24    theInfo, theErr = osstdout.communicate() 
     25    if theErr: 
    2326        print(red(runthis+" FAILED")) 
    24         print(theInfo) 
     27        print(theErr) 
    2528        sys.exit() 
    2629 
     
    7275                for checkfile in checkfiles: 
    7376                    if os.path.exists(config+"/"+checkfile) and os.path.exists("reference/ref_"+config+"/"+checkfile): 
    74                         OSinfo("cdo -W diffn "+config+"/"+checkfile+" "+"reference/ref_"+config+"/"+checkfile+" | > diff.txt") 
    75                         if os.stat("diff.txt").st_size==0: 
    76                             report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(1)+"\n") 
    77                     elif os.path.exists(config+"/"+checkfile): 
     77                        #OSinfo("cdo -W diffn "+config+"/"+checkfile+" "+"reference/ref_"+config+"/"+checkfile+"  2>&1 |grep -v 'Found more than one time variable'|grep -v 'cdo diffn: Processed'|grep -v 'cdo    diffn: Processed'|grep -v 'Time variable >time_counter< not found!' > diff_"+checkfile+".txt") 
     78                        #if os.stat("diff_"+checkfile+".txt").st_size==0: # if no diff -> set 0 
     79                        #    report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(1)+"\n") 
     80                        #else: # if cdo diffn returns diff -> set -1 
     81                        #    report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(-1)+"\n") 
     82                        ref = Dataset( "reference/ref_"+config+"/"+checkfile ) 
     83                        res = Dataset( config+"/"+checkfile ) 
     84                        validated = 1 
     85                        for var in res.variables: 
     86                            if (not (var.startswith('lon_'))) and (not (var.startswith('lat_'))) and (not (var.startswith('time_'))) and (not (var.startswith('atm__'))): 
     87                                ref_interp = ref.variables[var] 
     88                                ref_array = ref_interp[:] 
     89                                res_interp = res.variables[var] 
     90                                res_array = res_interp[:] 
     91                                if (res_array.shape == ref_array.shape): 
     92                                    diff = np.zeros_like( ref_array ) 
     93                                    np.divide(ref_array-res_array,ref_array,diff,where=(ref_array[:]>10**-15)) 
     94                                    if ( np.max(np.abs(diff)) >  1*10**-9 ): 
     95                                        validated = -1 
     96                                    diff = np.zeros_like( ref_array ) 
     97                                    np.divide(ref_array-res_array,res_array,diff,where=(ref_array[:]>10**-15)) 
     98                                    if ( np.max(np.abs(diff)) >  1*10**-9 ): 
     99                                        validated = -1 
     100                                else: 
     101                                        validated = -1 
     102                        report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(validated)+"\n") 
     103 
     104                    elif os.path.exists(config+"/"+checkfile): # if no ref file -> set 0 
    78105                        report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(0)+"\n") 
     106                    elif os.path.exists("reference/ref_"+config+"/"+checkfile): # if no output file -> set -2 
     107                        report.write(folder_name+" "+folder_name+"@"+config_name+" "+folder_name+"@"+config_name+"@"+checkfile+" "+str(-2)+"\n") 
     108 
    79109                    
    80110 
Note: See TracChangeset for help on using the changeset viewer.