| Index: tests/SkNxTest.cpp
|
| diff --git a/tests/SkNxTest.cpp b/tests/SkNxTest.cpp
|
| index 57e659ea5bfa600d4b214f7924bb840007532680..c32659a86ffb23d35888887a10e2e4aca97eee95 100644
|
| --- a/tests/SkNxTest.cpp
|
| +++ b/tests/SkNxTest.cpp
|
| @@ -19,11 +19,11 @@ static void test_Nf(skiatest::Reporter* r) {
|
| float vals[4];
|
| v.store(vals);
|
| bool ok = close(vals[0], a) && close(vals[1], b)
|
| - && close(v.template kth<0>(), a) && close(v.template kth<1>(), b);
|
| + && close( v[0], a) && close( v[1], b);
|
| REPORTER_ASSERT(r, ok);
|
| if (N == 4) {
|
| ok = close(vals[2], c) && close(vals[3], d)
|
| - && close(v.template kth<2>(), c) && close(v.template kth<3>(), d);
|
| + && close( v[2], c) && close( v[3], d);
|
| REPORTER_ASSERT(r, ok);
|
| }
|
| };
|
| @@ -92,10 +92,10 @@ void test_Ni(skiatest::Reporter* r) {
|
| case 2: REPORTER_ASSERT(r, vals[0] == a && vals[1] == b);
|
| }
|
| switch (N) {
|
| - case 8: REPORTER_ASSERT(r, v.template kth<4>() == e && v.template kth<5>() == f &&
|
| - v.template kth<6>() == g && v.template kth<7>() == h);
|
| - case 4: REPORTER_ASSERT(r, v.template kth<2>() == c && v.template kth<3>() == d);
|
| - case 2: REPORTER_ASSERT(r, v.template kth<0>() == a && v.template kth<1>() == b);
|
| + case 8: REPORTER_ASSERT(r, v[4] == e && v[5] == f &&
|
| + v[6] == g && v[7] == h);
|
| + case 4: REPORTER_ASSERT(r, v[2] == c && v[3] == d);
|
| + case 2: REPORTER_ASSERT(r, v[0] == a && v[1] == b);
|
| }
|
| };
|
|
|
| @@ -118,7 +118,7 @@ void test_Ni(skiatest::Reporter* r) {
|
| assert_eq(a >> 2, 0,0,0,1,1,1,1,2);
|
| assert_eq(a << 1, 2,4,6,8,10,12,14,16);
|
|
|
| - REPORTER_ASSERT(r, a.template kth<1>() == 2);
|
| + REPORTER_ASSERT(r, a[1] == 2);
|
| }
|
|
|
| DEF_TEST(SkNx, r) {
|
| @@ -136,8 +136,8 @@ DEF_TEST(SkNi_min_lt, r) {
|
| for (int a = 0; a < (1<<8); a++) {
|
| for (int b = 0; b < (1<<8); b++) {
|
| Sk16b aw(a), bw(b);
|
| - REPORTER_ASSERT(r, Sk16b::Min(aw, bw).kth<0>() == SkTMin(a, b));
|
| - REPORTER_ASSERT(r, !(aw < bw).kth<0>() == !(a < b));
|
| + REPORTER_ASSERT(r, Sk16b::Min(aw, bw)[0] == SkTMin(a, b));
|
| + REPORTER_ASSERT(r, !(aw < bw)[0] == !(a < b));
|
| }}
|
|
|
| // Exhausting the 16x16 bit space is kind of slow, so only do that in release builds.
|
| @@ -146,12 +146,12 @@ DEF_TEST(SkNi_min_lt, r) {
|
| for (int i = 0; i < (1<<16); i++) {
|
| uint16_t a = rand.nextU() >> 16,
|
| b = rand.nextU() >> 16;
|
| - REPORTER_ASSERT(r, Sk16h::Min(Sk16h(a), Sk16h(b)).kth<0>() == SkTMin(a, b));
|
| + REPORTER_ASSERT(r, Sk16h::Min(Sk16h(a), Sk16h(b))[0] == SkTMin(a, b));
|
| }
|
| #else
|
| for (int a = 0; a < (1<<16); a++) {
|
| for (int b = 0; b < (1<<16); b++) {
|
| - REPORTER_ASSERT(r, Sk16h::Min(Sk16h(a), Sk16h(b)).kth<0>() == SkTMin(a, b));
|
| + REPORTER_ASSERT(r, Sk16h::Min(Sk16h(a), Sk16h(b))[0] == SkTMin(a, b));
|
| }}
|
| #endif
|
| }
|
| @@ -163,7 +163,7 @@ DEF_TEST(SkNi_saturatedAdd, r) {
|
| if (exact > 255) { exact = 255; }
|
| if (exact < 0) { exact = 0; }
|
|
|
| - REPORTER_ASSERT(r, Sk16b(a).saturatedAdd(Sk16b(b)).kth<0>() == exact);
|
| + REPORTER_ASSERT(r, Sk16b(a).saturatedAdd(Sk16b(b))[0] == exact);
|
| }
|
| }
|
| }
|
| @@ -178,11 +178,11 @@ DEF_TEST(Sk4px_muldiv255round, r) {
|
| bv = Sk4px::DupAlpha(b);
|
|
|
| // This way should always be exactly correct.
|
| - int correct = (av * bv).div255().kth<0>();
|
| + int correct = (av * bv).div255()[0];
|
| REPORTER_ASSERT(r, correct == exact);
|
|
|
| // We're a bit more flexible on this method: correct for 0 or 255, otherwise off by <=1.
|
| - int fast = av.approxMulDiv255(bv).kth<0>();
|
| + int fast = av.approxMulDiv255(bv)[0];
|
| REPORTER_ASSERT(r, fast-exact >= -1 && fast-exact <= 1);
|
| if (a == 0 || a == 255 || b == 0 || b == 255) {
|
| REPORTER_ASSERT(r, fast == exact);
|
| @@ -209,18 +209,18 @@ DEF_TEST(Sk4px_widening, r) {
|
|
|
| DEF_TEST(SkNx_abs, r) {
|
| auto fs = Sk4f(0.0f, -0.0f, 2.0f, -4.0f).abs();
|
| - REPORTER_ASSERT(r, fs.kth<0>() == 0.0f);
|
| - REPORTER_ASSERT(r, fs.kth<1>() == 0.0f);
|
| - REPORTER_ASSERT(r, fs.kth<2>() == 2.0f);
|
| - REPORTER_ASSERT(r, fs.kth<3>() == 4.0f);
|
| + REPORTER_ASSERT(r, fs[0] == 0.0f);
|
| + REPORTER_ASSERT(r, fs[1] == 0.0f);
|
| + REPORTER_ASSERT(r, fs[2] == 2.0f);
|
| + REPORTER_ASSERT(r, fs[3] == 4.0f);
|
| }
|
|
|
| DEF_TEST(SkNx_floor, r) {
|
| auto fs = Sk4f(0.4f, -0.4f, 0.6f, -0.6f).floor();
|
| - REPORTER_ASSERT(r, fs.kth<0>() == 0.0f);
|
| - REPORTER_ASSERT(r, fs.kth<1>() == -1.0f);
|
| - REPORTER_ASSERT(r, fs.kth<2>() == 0.0f);
|
| - REPORTER_ASSERT(r, fs.kth<3>() == -1.0f);
|
| + REPORTER_ASSERT(r, fs[0] == 0.0f);
|
| + REPORTER_ASSERT(r, fs[1] == -1.0f);
|
| + REPORTER_ASSERT(r, fs[2] == 0.0f);
|
| + REPORTER_ASSERT(r, fs[3] == -1.0f);
|
| }
|
|
|
| DEF_TEST(SkNx_shuffle, r) {
|
| @@ -260,19 +260,19 @@ DEF_TEST(SkNx_u16_float, r) {
|
| // u16 --> float
|
| auto h4 = Sk4h(15, 17, 257, 65535);
|
| auto f4 = SkNx_cast<float>(h4);
|
| - REPORTER_ASSERT(r, f4.kth<0>() == 15.0f);
|
| - REPORTER_ASSERT(r, f4.kth<1>() == 17.0f);
|
| - REPORTER_ASSERT(r, f4.kth<2>() == 257.0f);
|
| - REPORTER_ASSERT(r, f4.kth<3>() == 65535.0f);
|
| + REPORTER_ASSERT(r, f4[0] == 15.0f);
|
| + REPORTER_ASSERT(r, f4[1] == 17.0f);
|
| + REPORTER_ASSERT(r, f4[2] == 257.0f);
|
| + REPORTER_ASSERT(r, f4[3] == 65535.0f);
|
| }
|
| {
|
| // float -> u16
|
| auto f4 = Sk4f(15, 17, 257, 65535);
|
| auto h4 = SkNx_cast<uint16_t>(f4);
|
| - REPORTER_ASSERT(r, h4.kth<0>() == 15);
|
| - REPORTER_ASSERT(r, h4.kth<1>() == 17);
|
| - REPORTER_ASSERT(r, h4.kth<2>() == 257);
|
| - REPORTER_ASSERT(r, h4.kth<3>() == 65535);
|
| + REPORTER_ASSERT(r, h4[0] == 15);
|
| + REPORTER_ASSERT(r, h4[1] == 17);
|
| + REPORTER_ASSERT(r, h4[2] == 257);
|
| + REPORTER_ASSERT(r, h4[3] == 65535);
|
| }
|
|
|
| // starting with any u16 value, we should be able to have a perfect round-trip in/out of floats
|
|
|