882 {
890 int nodata;
891
893 CU_ASSERT(raster != NULL);
895 CU_ASSERT(band != NULL);
897
898 for (y = 0;
y < 9;
y++) {
899 for (x = 0;
x < 9;
x++) {
901 }
902 }
903
905 CU_ASSERT(colormap != NULL);
908 CU_ASSERT(colormap->
entry != NULL);
909
916
923
930
931
933 colormap->
method = CM_INTERPOLATE;
934
936 raster, 0,
937 colormap
938 );
939 CU_ASSERT(rtn != NULL);
941
943 CU_ASSERT(band != NULL);
945 CU_ASSERT_DOUBLE_EQUAL(value, 0, DBL_EPSILON);
947 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
949 CU_ASSERT_DOUBLE_EQUAL(value, 255, DBL_EPSILON);
950
952
953
955
957 raster, 0,
958 colormap
959 );
960 CU_ASSERT(rtn != NULL);
963
964
965 colormap->
method = CM_EXACT;
966
968 raster, 0,
969 colormap
970 );
971 CU_ASSERT(rtn != NULL);
973
975 CU_ASSERT(band != NULL);
977 CU_ASSERT_DOUBLE_EQUAL(value, 0, DBL_EPSILON);
979 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
981 CU_ASSERT_DOUBLE_EQUAL(value, 255, DBL_EPSILON);
983 CU_ASSERT_DOUBLE_EQUAL(value, 0, DBL_EPSILON);
985 CU_ASSERT_DOUBLE_EQUAL(value, 0, DBL_EPSILON);
986
988
989
990 colormap->
method = CM_NEAREST;
991
993 raster, 0,
994 colormap
995 );
996 CU_ASSERT(rtn != NULL);
998
1000 CU_ASSERT(band != NULL);
1002 CU_ASSERT_DOUBLE_EQUAL(value, 0, DBL_EPSILON);
1004 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1006 CU_ASSERT_DOUBLE_EQUAL(value, 255, DBL_EPSILON);
1008 CU_ASSERT_DOUBLE_EQUAL(value, 0, DBL_EPSILON);
1010 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1012 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1014 CU_ASSERT_DOUBLE_EQUAL(value, 255, DBL_EPSILON);
1015
1017
1018
1020 colormap->
method = CM_NEAREST;
1021
1023 raster, 0,
1024 colormap
1025 );
1026 CU_ASSERT(rtn != NULL);
1028
1030 CU_ASSERT(band != NULL);
1032 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1034 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1036 CU_ASSERT_DOUBLE_EQUAL(value, 255, DBL_EPSILON);
1038 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1040 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1042 CU_ASSERT_DOUBLE_EQUAL(value, 127, DBL_EPSILON);
1044 CU_ASSERT_DOUBLE_EQUAL(value, 255, DBL_EPSILON);
1045
1047
1050
1052
1053
1055 CU_ASSERT(raster != NULL);
1057 CU_ASSERT(band != NULL);
1059
1060 for (y = 0;
y < 10;
y++) {
1061 for (x = 0;
x < 10;
x++) {
1063 }
1064 }
1065
1067 CU_ASSERT(colormap != NULL);
1070 CU_ASSERT(colormap->
entry != NULL);
1071
1078
1085
1092
1099
1106
1113
1120
1127
1134
1141
1142
1144 colormap->
method = CM_INTERPOLATE;
1145
1147 raster, 0,
1148 colormap
1149 );
1150 CU_ASSERT(rtn != NULL);
1152
1154 CU_ASSERT(band != NULL);
1156 CU_ASSERT_DOUBLE_EQUAL(value, 0, DBL_EPSILON);
1158 CU_ASSERT_DOUBLE_EQUAL(value, 14, DBL_EPSILON);
1160 CU_ASSERT_DOUBLE_EQUAL(value, 17, DBL_EPSILON);
1162 CU_ASSERT_DOUBLE_EQUAL(value, 25, DBL_EPSILON);
1163
1165 CU_ASSERT_DOUBLE_EQUAL(value, 28, DBL_EPSILON);
1167 CU_ASSERT_DOUBLE_EQUAL(value, 43, DBL_EPSILON);
1169 CU_ASSERT_DOUBLE_EQUAL(value, 57, DBL_EPSILON);
1170
1172 CU_ASSERT_DOUBLE_EQUAL(value, 170, DBL_EPSILON);
1174 CU_ASSERT_DOUBLE_EQUAL(value, 198, DBL_EPSILON);
1176 CU_ASSERT_DOUBLE_EQUAL(value, 227, DBL_EPSILON);
1177
1179
1182
1184}
void * rtalloc(size_t size)
Wrappers used for managing memory.
rt_raster rt_raster_colormap(rt_raster raster, int nband, rt_colormap colormap)
Returns a new raster with up to four 8BUI bands (RGBA) from applying a colormap to the user-specified...
rt_errorstate rt_band_get_pixel(rt_band band, int x, int y, double *value, int *nodata)
Get pixel value.
rt_raster rt_raster_new(uint32_t width, uint32_t height)
Construct a raster with given dimensions.
struct rt_colormap_entry_t * rt_colormap_entry
rt_errorstate rt_band_set_nodata(rt_band band, double val, int *converted)
Set nodata value.
rt_errorstate rt_band_set_pixel(rt_band band, int x, int y, double val, int *converted)
Set single pixel's value.
uint16_t rt_raster_get_num_bands(rt_raster raster)
void rtdealloc(void *mem)
struct rt_colormap_t * rt_colormap
rt_band rt_raster_get_band(rt_raster raster, int bandNum)
Return Nth band, or NULL if unavailable.
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...
rt_band cu_add_band(rt_raster raster, rt_pixtype pixtype, int hasnodata, double nodataval)
void cu_free_raster(rt_raster raster)
enum rt_colormap_t::@13 method