PostGIS  2.5.0dev-r@@SVN_REVISION@@

◆ test_band_pixtype_1BB()

static void test_band_pixtype_1BB ( )
static

Definition at line 144 of file cu_band_basics.c.

References ovdump::band, ovdump::data, ES_NONE, PT_1BB, rt_band_destroy(), rt_band_get_height(), rt_band_get_nodata(), rt_band_get_ownsdata_flag(), rt_band_get_pixel(), rt_band_get_width(), rt_band_new_inline(), rt_band_set_nodata(), rt_band_set_ownsdata_flag(), rt_band_set_pixel(), rt_pixtype_size(), rtalloc(), pixval::x, and pixval::y.

Referenced by band_basics_suite_setup().

144  {
145  rt_pixtype pixtype = PT_1BB;
146  uint8_t *data = NULL;
147  rt_band band = NULL;
148  int width = 5;
149  int height = 5;
150  int err = 0;
151  int clamped = 0;
152  double val = 0;
153  int x;
154  int y;
155 
156  /* inline band */
157  data = rtalloc(rt_pixtype_size(pixtype) * width * height);
158  CU_ASSERT(data != NULL);
159  memset(data, 0, rt_pixtype_size(pixtype) * width * height);
160 
161  band = rt_band_new_inline(
162  width, height,
163  pixtype,
164  0, 0,
165  data
166  );
167  CU_ASSERT(band != NULL);
168  rt_band_set_ownsdata_flag(band, 1);
169  CU_ASSERT(rt_band_get_ownsdata_flag(band));
170 
171  err = rt_band_set_nodata(band, 1, &clamped);
172  CU_ASSERT_EQUAL(err, ES_NONE);
173  CU_ASSERT(!clamped);
174 
175  rt_band_get_nodata(band, &val);
176  CU_ASSERT_DOUBLE_EQUAL(val, 1, DBL_EPSILON);
177  err = rt_band_set_nodata(band, 0, &clamped);
178  CU_ASSERT_EQUAL(err, ES_NONE);
179  CU_ASSERT(!clamped);
180  rt_band_get_nodata(band, &val);
181  CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
182 
183  err = rt_band_set_nodata(band, 2, &clamped);
184  CU_ASSERT_EQUAL(err, ES_NONE);
185  CU_ASSERT(clamped);
186 
187  err = rt_band_set_nodata(band, 3, &clamped);
188  CU_ASSERT_EQUAL(err, ES_NONE);
189  CU_ASSERT(clamped);
190 
191  err = rt_band_set_pixel(band, 0, 0, 2, &clamped);
192  CU_ASSERT_EQUAL(err, ES_NONE);
193  CU_ASSERT(clamped);
194 
195  err = rt_band_set_pixel(band, 0, 0, 3, &clamped);
196  CU_ASSERT_EQUAL(err, ES_NONE);
197  CU_ASSERT(clamped);
198 
199  for (x = 0; x < rt_band_get_width(band); ++x) {
200  for ( y = 0; y < rt_band_get_height(band); ++y) {
201  err = rt_band_set_pixel(band, x, y, 1, NULL);
202  CU_ASSERT_EQUAL(err, ES_NONE);
203  err = rt_band_get_pixel(band, x, y, &val, NULL);
204  CU_ASSERT_EQUAL(err, ES_NONE);
205  CU_ASSERT_DOUBLE_EQUAL(val, 1, DBL_EPSILON);
206 
207  err = rt_band_set_pixel(band, x, y, 0, NULL);
208  CU_ASSERT_EQUAL(err, ES_NONE);
209  err = rt_band_get_pixel(band, x, y, &val, NULL);
210  CU_ASSERT_EQUAL(err, ES_NONE);
211  CU_ASSERT_DOUBLE_EQUAL(val, 0, DBL_EPSILON);
212  }
213  }
214 
215  rt_band_destroy(band);
216 }
band
Definition: ovdump.py:57
void * rtalloc(size_t size)
Wrappers used for managing memory.
Definition: rt_context.c:171
data
Definition: ovdump.py:103
rt_errorstate rt_band_set_nodata(rt_band band, double val, int *converted)
Set nodata value.
Definition: rt_band.c:685
rt_pixtype
Definition: librtcore.h:185
void rt_band_destroy(rt_band band)
Destroy a raster band.
Definition: rt_band.c:336
rt_errorstate rt_band_get_nodata(rt_band band, double *nodata)
Get NODATA value.
Definition: rt_band.c:1682
void rt_band_set_ownsdata_flag(rt_band band, int flag)
Definition: rt_band.c:619
int rt_band_get_ownsdata_flag(rt_band band)
Return 0 (FALSE) or non-zero (TRUE) indicating if rt_band is responsible for managing the memory for ...
Definition: rt_band.c:611
rt_errorstate rt_band_get_pixel(rt_band band, int x, int y, double *value, int *nodata)
Get pixel value.
Definition: rt_band.c:1173
uint16_t rt_band_get_width(rt_band band)
Return width of this band.
Definition: rt_band.c:592
uint16_t rt_band_get_height(rt_band band)
Return height of this band.
Definition: rt_band.c:601
rt_band rt_band_new_inline(uint16_t width, uint16_t height, rt_pixtype pixtype, uint32_t hasnodata, double nodataval, uint8_t *data)
Create an in-db rt_band with no data.
Definition: rt_band.c:59
int rt_pixtype_size(rt_pixtype pixtype)
Return size in bytes of a value in the given pixtype.
Definition: rt_pixel.c:39
rt_errorstate rt_band_set_pixel(rt_band band, int x, int y, double val, int *converted)
Set single pixel&#39;s value.
Definition: rt_band.c:926
unsigned char uint8_t
Definition: uthash.h:79
Here is the call graph for this function:
Here is the caller graph for this function: