25 int badIx = (
int) floorf(
x + 0.5f);
39 badIx = (
int) floorf(
x + 0.5f);
55 { 0, 0 }, { 1, 1 }, { 99.234f, -42342 }
59 { 0, 0 }, { 1, 1 }, { 99.234f, -42342 }, {
SK_ScalarNaN, 3 }, { 2, 3 },
62 { 0, 0 }, { 1, 1 }, { 99.234f, -42342 }, { 3,
SK_ScalarNaN }, { 2, 3 },
65 { 0, 0 }, { 1, 1 }, { 99.234f, -42342 }, {
SK_ScalarInfinity, 3 }, { 2, 3 },
68 { 0, 0 }, { 1, 1 }, { 99.234f, -42342 }, { 3,
SK_ScalarInfinity }, { 2, 3 },
76 { gF0, std::size(gF0),
true },
77 { gF1, std::size(gF1),
true },
79 { gI0, std::size(gI0),
false },
80 { gI1, std::size(gI1),
false },
81 { gI2, std::size(gI2),
false },
82 { gI3, std::size(gI3),
false },
85 for (
size_t i = 0; i < std::size(gSets); ++i) {
88 bool rectIsFinite = !r.
isEmpty();
95 int exponent = bits << 1 >> 24;
96 return exponent != 0xFF;
112 return proc(
x) && proc(
y);
116 return proc(
x * 0 +
y * 0);
140#pragma warning(disable : 4756)
149 float max = 3.402823466e+38f;
165 {
max * 0.75f,
true },
167 { -
max * 0.75f,
true },
184 size_t i, n = std::size(data);
186 for (i = 0; i < n; ++i) {
187 for (
size_t k = 0; k < std::size(gProc1); ++k) {
188 const Rec& rec = data[i];
189 bool finite = gProc1[k](rec.fValue);
194 for (i = 0; i < n; ++i) {
195 const Rec& rec0 = data[i];
196 for (
size_t j = 0; j < n; ++j) {
197 const Rec& rec1 = data[j];
198 for (
size_t k = 0; k < std::size(gProc1); ++k) {
201 for (
size_t m = 0; m < std::size(gProc2); ++m) {
202 bool finite = gProc2[m](rec0.fValue, rec1.fValue, proc1);
203 bool finite2 = rec0.fIsFinite && rec1.fIsFinite;
214#pragma warning ( pop )
static bool isFinite_mulzero(float x)
static bool isFinite2_and(float x, float y, IsFiniteProc1 proc)
bool(* IsFiniteProc2)(float, float, IsFiniteProc1)
static void test_isRectFinite(skiatest::Reporter *reporter)
static bool isFinite_int(float x)
static void test_floatclass(skiatest::Reporter *reporter, float value, FloatClass fc)
static void test_roundtoint(skiatest::Reporter *reporter)
static void test_isfinite(skiatest::Reporter *reporter)
static bool isFinite2_mulzeroadd(float x, float y, IsFiniteProc1 proc)
bool(* IsFiniteProc1)(float)
static bool isFinite_float(float x)
static uint32_t SkFloat2Bits(float value)
static bool SkIsFinite(T x, Pack... values)
#define SkScalarRoundToInt(x)
#define SK_ScalarInfinity
static constexpr bool SkToBool(const T &x)
#define DEF_TEST(name, reporter)
#define REPORTER_ASSERT(r, cond,...)
Type::kYUV Type::kRGBA() int(0.7 *637)
static float max(float r, float g, float b)
void setBounds(const SkPoint pts[], int count)