ECC-1065: grib_filter/bufr_filter: Operator '^' (power) argument order wrong

This commit is contained in:
Shahram Najm 2020-01-24 13:21:21 +00:00
parent b9164e23dc
commit ace7546f06
3 changed files with 31 additions and 1 deletions

View File

@ -68,7 +68,8 @@ double grib_op_neg_d(double a)
long grib_op_pow(long a, long b)
{
return grib_power(a, b);
/* Note: This is actually 'a' to the power 'b' */
return grib_power(b, a);
}
long grib_op_add(long a, long b)

View File

@ -58,6 +58,7 @@ list( APPEND tests_no_data_reqd
grib_2nd_order_numValues
grib_ecc-136
grib_ecc-967
grib_ecc-1065
julian
bufr_dump_samples
bufr_json_samples

28
tests/grib_ecc-1065.sh Executable file
View File

@ -0,0 +1,28 @@
#!/bin/sh
# Copyright 2005-2019 ECMWF.
#
# This software is licensed under the terms of the Apache Licence Version 2.0
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
#
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
#
. ./include.sh
set -u
# ---------------------------------------------------------
# This is the test for the JIRA issue ECC-1065
# It tests the power operator
# ---------------------------------------------------------
label="grib_ecc-1065-test"
tempRules=temp.${label}.filter
cat > $tempRules <<EOF
transient tpow = 10 ^ 2;
print "[tpow]";
EOF
result=`${tools_dir}/grib_filter $tempRules $ECCODES_SAMPLES_PATH/GRIB2.tmpl`
[ "$result" = "100" ]
rm -f $tempRules