diff --git a/tests/resample_test.cpp b/tests/resample_test.cpp index 3a90c4b..6028cd5 100644 --- a/tests/resample_test.cpp +++ b/tests/resample_test.cpp @@ -819,12 +819,23 @@ void test_suite(int argc, char **argv) } #endif + // old tests that hacky fix worked on - test that + // every uint8 maps to itself for (i = 0; i < 256; i++) { float f = stbir__srgb_to_linear(float(i) / 255); int n = stbir__linear_to_srgb_uchar(f); STBIR_ASSERT(n == i); } + // new tests that hacky fix failed for - test that + // values adjacent to uint8 round to nearest uint8 + for (i = 0; i < 256; i++) { + for (float y = -0.49f; y <= 0.491f; y += 0.01f) { + float f = stbir__srgb_to_linear((i+y) / 255.0f); + int n = stbir__linear_to_srgb_uchar(f); + STBIR_ASSERT(n == i); + } + } test_filters();