diff --git a/tests/resample_test.cpp b/tests/resample_test.cpp index 3aae86a..9fb6593 100644 --- a/tests/resample_test.cpp +++ b/tests/resample_test.cpp @@ -566,6 +566,22 @@ void verify_box(void) STBIR_ASSERT(output11[j][i] == ((t+32)>>6)); } +void verify_filter_normalized(stbir_filter filter, unsigned char* output, int output_size) +{ + int value = 64; + + int i, j; + for (j = 0; j < 8; ++j) + for (i = 0; i < 8; ++i) + image88[j][i] = value; + + stbir_resize_uint8_generic(image88[0], 8, 8, 0, output, output_size, output_size, 0, 1, -1, 0, STBIR_EDGE_CLAMP, filter, STBIR_COLORSPACE_LINEAR, NULL); + + for (j = 0; j < output_size; ++j) + for (i = 0; i < output_size; ++i) + STBIR_ASSERT(value == output[j*output_size + i]); +} + void test_filters(void) { int i,j; @@ -588,6 +604,30 @@ void test_filters(void) for (i=0; i < 8; ++i) image88[j][i] = i&2 ? 255 : 0; verify_box(); + + verify_filter_normalized(STBIR_FILTER_BOX, &output88[0][0], 8); + verify_filter_normalized(STBIR_FILTER_BILINEAR, &output88[0][0], 8); + verify_filter_normalized(STBIR_FILTER_BICUBIC, &output88[0][0], 8); + verify_filter_normalized(STBIR_FILTER_CATMULLROM, &output88[0][0], 8); + verify_filter_normalized(STBIR_FILTER_MITCHELL, &output88[0][0], 8); + + verify_filter_normalized(STBIR_FILTER_BOX, &output44[0][0], 4); + verify_filter_normalized(STBIR_FILTER_BILINEAR, &output44[0][0], 4); + verify_filter_normalized(STBIR_FILTER_BICUBIC, &output44[0][0], 4); + verify_filter_normalized(STBIR_FILTER_CATMULLROM, &output44[0][0], 4); + verify_filter_normalized(STBIR_FILTER_MITCHELL, &output44[0][0], 4); + + verify_filter_normalized(STBIR_FILTER_BOX, &output22[0][0], 2); + verify_filter_normalized(STBIR_FILTER_BILINEAR, &output22[0][0], 2); + verify_filter_normalized(STBIR_FILTER_BICUBIC, &output22[0][0], 2); + verify_filter_normalized(STBIR_FILTER_CATMULLROM, &output22[0][0], 2); + verify_filter_normalized(STBIR_FILTER_MITCHELL, &output22[0][0], 2); + + verify_filter_normalized(STBIR_FILTER_BOX, &output11[0][0], 1); + verify_filter_normalized(STBIR_FILTER_BILINEAR, &output11[0][0], 1); + verify_filter_normalized(STBIR_FILTER_BICUBIC, &output11[0][0], 1); + verify_filter_normalized(STBIR_FILTER_CATMULLROM, &output11[0][0], 1); + verify_filter_normalized(STBIR_FILTER_MITCHELL, &output11[0][0], 1); }