[postgis-commits] svn - r3645 - spike/wktraster/rt_core
postgis-commits at postgis.refractions.net
postgis-commits at postgis.refractions.net
Thu Feb 5 04:01:51 PST 2009
Author: strk
Date: 2009-02-05 04:01:51 -0800 (Thu, 05 Feb 2009)
New Revision: 3645
Modified:
spike/wktraster/rt_core/rt_api.c
spike/wktraster/rt_core/testapi.c
Log:
test that trying to set a value of of the valid range for the band pixeltype results in an error
Modified: spike/wktraster/rt_core/rt_api.c
===================================================================
--- spike/wktraster/rt_core/rt_api.c 2009-02-05 07:29:04 UTC (rev 3644)
+++ spike/wktraster/rt_core/rt_api.c 2009-02-05 12:01:51 UTC (rev 3645)
@@ -29,7 +29,7 @@
#include "rt_api.h"
#define RT_API_DEBUG
-/*#define RT_WARN_ON_TRUNCATION */
+#define RT_WARN_ON_TRUNCATION
/*--- Utilities -------------------------------------------------*/
@@ -463,7 +463,6 @@
uint8_t v = val;
v &= 15;
band->nodataval = v;
- return -1;
break;
}
case PT_8BSI:
@@ -595,7 +594,7 @@
case PT_8BSI:
{
data[offset] = (int8_t)val;
- checkval = data[offset];
+ checkval = (int8_t)data[offset];
break;
}
@@ -607,6 +606,13 @@
}
case PT_16BSI:
+ {
+ int16_t *ptr = (int16_t*)data; /* we assume correct alignment */
+ ptr[offset] = val;
+ checkval = (int16_t)ptr[offset];
+ break;
+ }
+
case PT_16BUI:
{
uint16_t *ptr = (uint16_t*)data; /* we assume correct alignment */
@@ -622,6 +628,13 @@
}
case PT_32BSI:
+ {
+ int32_t *ptr = (int32_t*)data; /* we assume correct alignment */
+ ptr[offset] = val;
+ checkval = (int32_t)ptr[offset];
+ break;
+ }
+
case PT_32BUI:
{
uint32_t *ptr = (uint32_t*)data; /* we assume correct alignment */
@@ -653,7 +666,7 @@
#ifdef RT_WARN_ON_TRUNCATION
ctx->warn("Pixel value for %s band got truncated"
" from %g to %u",
- rt_pixtype_name(band->pixtype),
+ rt_pixtype_name(ctx, band->pixtype),
val, checkval);
#endif /* RT_WARN_ON_TRUNCATION */
return -1;
Modified: spike/wktraster/rt_core/testapi.c
===================================================================
--- spike/wktraster/rt_core/testapi.c 2009-02-05 07:29:04 UTC (rev 3644)
+++ spike/wktraster/rt_core/testapi.c 2009-02-05 12:01:51 UTC (rev 3645)
@@ -88,30 +88,33 @@
static void testBand2BUI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
+ CHECK(!failure);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
+ CHECK(!failure);
- rt_band_set_nodata(ctx, band, 2);
+ failure = rt_band_set_nodata(ctx, band, 2);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 2);
+ CHECK(!failure);
- rt_band_set_nodata(ctx, band, 3);
+ failure = rt_band_set_nodata(ctx, band, 3);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 3);
+ CHECK(!failure);
- rt_band_set_nodata(ctx, band, 4); /* truncates */
- val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 0);
+ failure = rt_band_set_nodata(ctx, band, 4); /* invalid: out of range */
+ CHECK(failure);
- rt_band_set_nodata(ctx, band, 5); /* truncates */
- val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 1);
+ failure = rt_band_set_nodata(ctx, band, 5); /* invalid: out of range */
+ CHECK(failure);
{
int x, y;
@@ -119,25 +122,26 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 1);
+ CHECK(!failure);
- rt_band_set_pixel(ctx, band, x, y, 2);
+ failure = rt_band_set_pixel(ctx, band, x, y, 2);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 2);
+ CHECK(!failure);
- rt_band_set_pixel(ctx, band, x, y, 3);
+ failure = rt_band_set_pixel(ctx, band, x, y, 3);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 3);
+ CHECK(!failure);
- rt_band_set_pixel(ctx, band, x, y, 4);
- val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 0);
+ failure = rt_band_set_pixel(ctx, band, x, y, 4); /* out of range */
+ CHECK(failure);
- rt_band_set_pixel(ctx, band, x, y, 5);
- val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 5); /* out of range */
+ CHECK(failure);
}
}
@@ -148,38 +152,43 @@
static void testBand4BUI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
val = rt_band_get_nodata(ctx, band);
+ CHECK(!failure);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 2);
+ failure = rt_band_set_nodata(ctx, band, 2);
val = rt_band_get_nodata(ctx, band);
+ CHECK(!failure);
CHECK_EQUALS(val, 2);
- rt_band_set_nodata(ctx, band, 4);
+ failure = rt_band_set_nodata(ctx, band, 4);
val = rt_band_get_nodata(ctx, band);
+ CHECK(!failure);
CHECK_EQUALS(val, 4);
- rt_band_set_nodata(ctx, band, 8);
+ failure = rt_band_set_nodata(ctx, band, 8);
val = rt_band_get_nodata(ctx, band);
+ CHECK(!failure);
CHECK_EQUALS(val, 8);
- rt_band_set_nodata(ctx, band, 15);
+ failure = rt_band_set_nodata(ctx, band, 15);
val = rt_band_get_nodata(ctx, band);
+ CHECK(!failure);
CHECK_EQUALS(val, 15);
- rt_band_set_nodata(ctx, band, 16); /* truncates */
- val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 0);
+ failure = rt_band_set_nodata(ctx, band, 16); /* out of value range */
+ CHECK(failure);
- rt_band_set_nodata(ctx, band, 17); /* truncates */
- val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 1);
+ failure = rt_band_set_nodata(ctx, band, 17); /* out of value range */
+ CHECK(failure);
{
int x, y;
@@ -187,25 +196,28 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 1);
- rt_band_set_pixel(ctx, band, x, y, 3);
+ failure = rt_band_set_pixel(ctx, band, x, y, 3);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 3);
- rt_band_set_pixel(ctx, band, x, y, 7);
+ failure = rt_band_set_pixel(ctx, band, x, y, 7);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 7);
- rt_band_set_pixel(ctx, band, x, y, 15);
+ failure = rt_band_set_pixel(ctx, band, x, y, 15);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 15);
- rt_band_set_pixel(ctx, band, x, y, 35); /* truncates */
- val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 3);
+ failure = rt_band_set_pixel(ctx, band, x, y, 35); /* out of value range */
+ CHECK(failure);
}
}
@@ -216,42 +228,50 @@
static void testBand8BUI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 2);
+ failure = rt_band_set_nodata(ctx, band, 2);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 2);
- rt_band_set_nodata(ctx, band, 4);
+ failure = rt_band_set_nodata(ctx, band, 4);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 4);
- rt_band_set_nodata(ctx, band, 8);
+ failure = rt_band_set_nodata(ctx, band, 8);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 8);
- rt_band_set_nodata(ctx, band, 15);
+ failure = rt_band_set_nodata(ctx, band, 15);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 15);
- rt_band_set_nodata(ctx, band, 31);
+ failure = rt_band_set_nodata(ctx, band, 31);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 31);
- rt_band_set_nodata(ctx, band, 255);
+ failure = rt_band_set_nodata(ctx, band, 255);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 255);
- rt_band_set_nodata(ctx, band, 256); /* truncates */
- val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 0);
+ failure = rt_band_set_nodata(ctx, band, 256); /* out of value range */
+ CHECK(failure);
{
int x, y;
@@ -259,19 +279,21 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 31);
+ failure = rt_band_set_pixel(ctx, band, x, y, 31);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 31);
- rt_band_set_pixel(ctx, band, x, y, 255);
+ failure = rt_band_set_pixel(ctx, band, x, y, 255);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 255);
- rt_band_set_pixel(ctx, band, x, y, 256); /* truncates */
- val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 0);
+ failure = rt_band_set_pixel(ctx, band, x, y, 256); /* out of value range */
+ CHECK(failure);
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 1);
@@ -283,65 +305,94 @@
static void testBand8BSI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 2);
+ failure = rt_band_set_nodata(ctx, band, 2);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 2);
- rt_band_set_nodata(ctx, band, 4);
+ failure = rt_band_set_nodata(ctx, band, 4);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 4);
- rt_band_set_nodata(ctx, band, 8);
+ failure = rt_band_set_nodata(ctx, band, 8);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 8);
- rt_band_set_nodata(ctx, band, 15);
+ failure = rt_band_set_nodata(ctx, band, 15);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 15);
- rt_band_set_nodata(ctx, band, 31);
+ failure = rt_band_set_nodata(ctx, band, 31);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 31);
- rt_band_set_nodata(ctx, band, 255);
+ failure = rt_band_set_nodata(ctx, band, -127);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, -1);
+ CHECK_EQUALS(val, -127);
- rt_band_set_nodata(ctx, band, 256); /* truncates */
+ failure = rt_band_set_nodata(ctx, band, 127);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 0);
+ CHECK_EQUALS(val, 127);
+ /* out of range (-127..127) */
+ failure = rt_band_set_nodata(ctx, band, -129);
+ CHECK(failure);
+
+ /* out of range (-127..127) */
+ failure = rt_band_set_nodata(ctx, band, 129);
+ CHECK(failure);
+
{
int x, y;
for (x=0; x<rt_band_get_width(ctx, band); ++x)
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 31);
+ failure = rt_band_set_pixel(ctx, band, x, y, 31);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 31);
- rt_band_set_pixel(ctx, band, x, y, 255);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, -1.0);
+ CHECK_EQUALS(val, 1);
- rt_band_set_pixel(ctx, band, x, y, 256); /* truncates */
+ failure = rt_band_set_pixel(ctx, band, x, y, -127);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 0);
+ CHECK_EQUALS(val, -127);
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 127);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 1);
+ CHECK_EQUALS(val, 127);
+ /* out of range (-127..127) */
+ failure = rt_band_set_pixel(ctx, band, x, y, -129);
+ CHECK(failure);
+
+ /* out of range (-127..127) */
+ failure = rt_band_set_pixel(ctx, band, x, y, 129);
+ CHECK(failure);
+
}
}
}
@@ -350,31 +401,36 @@
static void testBand16BUI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 31);
+ failure = rt_band_set_nodata(ctx, band, 31);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 31);
- rt_band_set_nodata(ctx, band, 255);
+ failure = rt_band_set_nodata(ctx, band, 255);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 255);
- rt_band_set_nodata(ctx, band, 65535);
+ failure = rt_band_set_nodata(ctx, band, 65535);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
//printf("set 65535 on %s band gets %g back\n", pixtypeName, val);
CHECK_EQUALS(val, 65535);
- rt_band_set_nodata(ctx, band, 65536); /* truncates */
- val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 0);
+ failure = rt_band_set_nodata(ctx, band, 65536); /* out of range */
+ CHECK(failure);
{
int x, y;
@@ -382,17 +438,18 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 255);
+ failure = rt_band_set_pixel(ctx, band, x, y, 255);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 255);
- rt_band_set_pixel(ctx, band, x, y, 65535);
+ failure = rt_band_set_pixel(ctx, band, x, y, 65535);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 65535);
- rt_band_set_pixel(ctx, band, x, y, 65536); /* truncates */
- val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 0);
+ failure = rt_band_set_pixel(ctx, band, x, y, 65536); /* out of range */
+ CHECK(failure);
}
}
@@ -402,50 +459,77 @@
static void testBand16BSI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 31);
+ failure = rt_band_set_nodata(ctx, band, 31);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 31);
- rt_band_set_nodata(ctx, band, 255);
+ failure = rt_band_set_nodata(ctx, band, 255);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 255);
- rt_band_set_nodata(ctx, band, 65535);
+ failure = rt_band_set_nodata(ctx, band, -32767);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
//printf("set 65535 on %s band gets %g back\n", pixtypeName, val);
- CHECK_EQUALS(val, -1);
+ CHECK_EQUALS(val, -32767);
- rt_band_set_nodata(ctx, band, 65536); /* truncates */
+ failure = rt_band_set_nodata(ctx, band, 32767);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 0);
+ //printf("set 65535 on %s band gets %g back\n", pixtypeName, val);
+ CHECK_EQUALS(val, 32767);
+ /* out of range (-32767..32767) */
+ failure = rt_band_set_nodata(ctx, band, -32769);
+ CHECK(failure);
+
+ /* out of range (-32767..32767) */
+ failure = rt_band_set_nodata(ctx, band, 32769);
+ CHECK(failure);
+
{
int x, y;
for (x=0; x<rt_band_get_width(ctx, band); ++x)
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 255);
+ failure = rt_band_set_pixel(ctx, band, x, y, 255);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 255);
- rt_band_set_pixel(ctx, band, x, y, 65535);
+ failure = rt_band_set_pixel(ctx, band, x, y, -32767);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, -1);
+ CHECK_EQUALS(val, -32767);
- rt_band_set_pixel(ctx, band, x, y, 65536); /* truncates */
+ failure = rt_band_set_pixel(ctx, band, x, y, 32767);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 0);
+ CHECK_EQUALS(val, 32767);
+ /* out of range (-32767..32767) */
+ failure = rt_band_set_pixel(ctx, band, x, y, -32769);
+ CHECK(failure);
+
+ /* out of range (-32767..32767) */
+ failure = rt_band_set_pixel(ctx, band, x, y, 32769);
+ CHECK(failure);
+
}
}
}
@@ -454,26 +538,31 @@
static void testBand32BUI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 65535);
+ failure = rt_band_set_nodata(ctx, band, 65535);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 65535);
- rt_band_set_nodata(ctx, band, 4294967295);
+ failure = rt_band_set_nodata(ctx, band, 4294967295);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 4294967295);
- rt_band_set_nodata(ctx, band, 4294967296); /* truncates */
- val = rt_band_get_nodata(ctx, band);
- CHECK_EQUALS(val, 0);
+ /* out of range */
+ failure = rt_band_set_nodata(ctx, band, 4294967296);
+ CHECK(failure);
{
int x, y;
@@ -481,25 +570,29 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 1);
- rt_band_set_pixel(ctx, band, x, y, 0);
+ failure = rt_band_set_pixel(ctx, band, x, y, 0);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 0);
- rt_band_set_pixel(ctx, band, x, y, 65535);
+ failure = rt_band_set_pixel(ctx, band, x, y, 65535);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 65535);
- rt_band_set_pixel(ctx, band, x, y, 4294967295);
+ failure = rt_band_set_pixel(ctx, band, x, y, 4294967295);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 4294967295);
- rt_band_set_pixel(ctx, band, x, y, 4294967296); /* truncates */
- val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, 0);
+ /* out of range */
+ failure = rt_band_set_pixel(ctx, band, x, y, 4294967296);
+ CHECK(failure);
}
}
@@ -509,28 +602,32 @@
static void testBand32BSI(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 65535);
+ failure = rt_band_set_nodata(ctx, band, 65535);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 65535);
- rt_band_set_nodata(ctx, band, 2147483647);
+ failure = rt_band_set_nodata(ctx, band, 2147483647);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
/*printf("32BSI pix is %ld\n", (long int)val);*/
CHECK_EQUALS(val, 2147483647);
- rt_band_set_nodata(ctx, band, 2147483648); /* swaps sign */
- val = rt_band_get_nodata(ctx, band);
- /*printf("32BSI pix is %ld\n", (long int)val);*/
- CHECK_EQUALS(val, -2147483648);
+ failure = rt_band_set_nodata(ctx, band, 2147483648);
+ /* out of range */
+ CHECK(failure);
{
int x, y;
@@ -538,25 +635,29 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 1);
- rt_band_set_pixel(ctx, band, x, y, 0);
+ failure = rt_band_set_pixel(ctx, band, x, y, 0);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 0);
- rt_band_set_pixel(ctx, band, x, y, 65535);
+ failure = rt_band_set_pixel(ctx, band, x, y, 65535);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 65535);
- rt_band_set_pixel(ctx, band, x, y, 2147483647);
+ failure = rt_band_set_pixel(ctx, band, x, y, 2147483647);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 2147483647);
- rt_band_set_pixel(ctx, band, x, y, 2147483648); /* swaps sign */
- val = rt_band_get_pixel(ctx, band, x, y);
- CHECK_EQUALS(val, -2147483648);
+ /* out of range */
+ failure = rt_band_set_pixel(ctx, band, x, y, 2147483648);
+ CHECK(failure);
}
}
@@ -571,21 +672,26 @@
static void testBand32BF(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS_FLOAT(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS_FLOAT(val, 0);
- rt_band_set_nodata(ctx, band, 65535.5);
+ failure = rt_band_set_nodata(ctx, band, 65535.5);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
//printf("set 65535.56 on %s band gets %g back\n", pixtypeName, val);
CHECK_EQUALS_FLOAT(val, 65535.5);
- rt_band_set_nodata(ctx, band, 0.006);
+ failure = rt_band_set_nodata(ctx, band, 0.006);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS_FLOAT(val, 0.006);
@@ -595,19 +701,23 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 1);
- rt_band_set_pixel(ctx, band, x, y, 0);
+ failure = rt_band_set_pixel(ctx, band, x, y, 0);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 0);
- rt_band_set_pixel(ctx, band, x, y, 65535.5);
+ failure = rt_band_set_pixel(ctx, band, x, y, 65535.5);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS_FLOAT(val, 65535.5);
- rt_band_set_pixel(ctx, band, x, y, 0.006);
+ failure = rt_band_set_pixel(ctx, band, x, y, 0.006);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS_FLOAT(val, 0.006);
@@ -619,20 +729,25 @@
static void testBand64BF(rt_context ctx, rt_band band)
{
double val;
+ int failure;
- rt_band_set_nodata(ctx, band, 1);
+ failure = rt_band_set_nodata(ctx, band, 1);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 1);
- rt_band_set_nodata(ctx, band, 0);
+ failure = rt_band_set_nodata(ctx, band, 0);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0);
- rt_band_set_nodata(ctx, band, 65535.56);
+ failure = rt_band_set_nodata(ctx, band, 65535.56);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 65535.56);
- rt_band_set_nodata(ctx, band, 0.006);
+ failure = rt_band_set_nodata(ctx, band, 0.006);
+ CHECK(!failure);
val = rt_band_get_nodata(ctx, band);
CHECK_EQUALS(val, 0.006);
@@ -642,19 +757,23 @@
{
for (y=0; y<rt_band_get_height(ctx, band); ++y)
{
- rt_band_set_pixel(ctx, band, x, y, 1);
+ failure = rt_band_set_pixel(ctx, band, x, y, 1);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 1);
- rt_band_set_pixel(ctx, band, x, y, 0);
+ failure = rt_band_set_pixel(ctx, band, x, y, 0);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 0);
- rt_band_set_pixel(ctx, band, x, y, 65535.56);
+ failure = rt_band_set_pixel(ctx, band, x, y, 65535.56);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 65535.56);
- rt_band_set_pixel(ctx, band, x, y, 0.006);
+ failure = rt_band_set_pixel(ctx, band, x, y, 0.006);
+ CHECK(!failure);
val = rt_band_get_pixel(ctx, band, x, y);
CHECK_EQUALS(val, 0.006);
More information about the postgis-commits
mailing list