File: Genweights.py.test.in

package info (click to toggle)
cdo 2.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 49,836 kB
  • sloc: cpp: 185,271; ansic: 95,766; sh: 7,192; f90: 6,147; makefile: 1,977; ruby: 1,078; csh: 1,028; python: 995; fortran: 319; pascal: 219; perl: 9
file content (54 lines) | stat: -rw-r--r-- 1,926 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#! @PYTHON@

from cdoTest import *
from collections import defaultdict
import os

ABSLIMMAX=0.001
ABSLIMDIS=0.2
ABSLIMSCON=0.25

FORMAT="-f srv -b 32"
GRIDS="F16","F32"

IFILE=f'{DATAPATH}/bathy4.grb'

HAS_NETCDF=cdo_check_req("has-nc")
HAS_THREADS=cdo_check_req("has-threads")

ABS=defaultdict(lambda : ABSLIMMAX,{"gendis" : ABSLIMDIS})
#-------------------------------------------------------------------------
test_module = TestModule()
#-------------------------------------------------------------------------
def GENWEIGHTS_TEST(GRIDTYPE,OPERATORS):
    SETGRID=f'-setgridtype,{GRIDTYPE}' if (GRIDTYPE != "regular") else ""
    for GRID in GRIDS:
        for OPERATOR in OPERATORS:
            if (not HAS_NETCDF):
                test_module.add_skip("NetCDF not enabled")
                continue

            if (not HAS_THREADS):
                test_module.add_skip("POSIX threads not enabled")
                continue

            OFILE=f'{GRID}_{OPERATOR}_{os.getpid()}'
            RFILE=f'{DATAPATH}/{GRID}_{OPERATOR[3:]}_ref'

            t = TAPTest(f'{GRIDTYPE} {GRID} {OPERATOR}')

            t.add(f'{CDO} {FORMAT} {OPERATOR},{GRID} {SETGRID} {IFILE} remapweights')
            t.add(f'{CDO} {FORMAT} remap,{GRID},remapweights {SETGRID} {IFILE} {OFILE}')
            t.add(f'{CDO} diff,abslim={ABS[OPERATOR]} {OFILE} {RFILE}')
            t.clean(OFILE,"remapweights")

            test_module.add(t)
#-------------------------------------------------------------------------
USER=os.getenv("USER") or ""
OPERATORS=["gendis","gennn","genbil","genbic","gencon"] if USER == "m214003" else ["genbil","genbic","gencon"]
GENWEIGHTS_TEST("regular",OPERATORS)
GENWEIGHTS_TEST("curvilinear",OPERATORS)
OPERATORS=["gendis","gennn","gencon"] if USER == "m214003" else ["gencon"]
GENWEIGHTS_TEST("unstructured",OPERATORS)
#-------------------------------------------------------------------------
test_module.run()