| Index: tests/SRGBTest.cpp
|
| diff --git a/tests/SRGBTest.cpp b/tests/SRGBTest.cpp
|
| index 65bfc59b427fd07d8135ca28bc16b5459ea7201b..43ec02700f9d389eb9534879f4f8188462c285bb 100644
|
| --- a/tests/SRGBTest.cpp
|
| +++ b/tests/SRGBTest.cpp
|
| @@ -11,28 +11,24 @@
|
| #include <math.h>
|
|
|
| static uint8_t linear_to_srgb(float l) {
|
| - // Round float to int, truncate that to uint8_t.
|
| - return (uint8_t)Sk4f_round( sk_linear_to_srgb(Sk4f{l}) )[0];
|
| + return (uint8_t)sk_linear_to_srgb(Sk4f{l})[0];
|
| }
|
|
|
| DEF_TEST(sk_linear_to_srgb, r) {
|
| - // Should map 0 -> 0 and 1 -> 1.
|
| - REPORTER_ASSERT(r, 0 == linear_to_srgb(0.0f));
|
| - REPORTER_ASSERT(r, 255 == linear_to_srgb(1.0f));
|
| + // All bytes should round trip.
|
| + for (int i = 0; i < 256; i++) {
|
| + int actual = linear_to_srgb(sk_linear_from_srgb[i]);
|
| + if (i != actual) {
|
| + ERRORF(r, "%d -> %d\n", i, actual);
|
| + }
|
| + }
|
|
|
| // Should be monotonic between 0 and 1.
|
| - // We don't bother checking denorm values.
|
| - int tolerated_regressions = 0;
|
| -#if defined(SK_ARM_HAS_NEON)
|
| - // Values around 0.166016 are usually 72 but drop briefly (41 floats) down to 71.
|
| - tolerated_regressions = 1;
|
| -#endif
|
| uint8_t prev = 0;
|
| - for (float f = FLT_MIN; f <= 1.0f; ) {
|
| + for (float f = FLT_MIN; f <= 1.0f; ) { // We don't bother checking denorm values.
|
| uint8_t srgb = linear_to_srgb(f);
|
|
|
| - REPORTER_ASSERT(r, srgb >= prev || tolerated_regressions > 0);
|
| - if (srgb < prev) { tolerated_regressions--; }
|
| + REPORTER_ASSERT(r, srgb >= prev);
|
| prev = srgb;
|
|
|
| union { float flt; uint32_t bits; } pun = { f };
|
|
|