aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/PMFloatTest.cpp
blob: 94cd663a5331d5f1a4a8ee3644329491e2647291 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "SkPMFloat.h"
#include "Test.h"

DEF_TEST(SkPMFloat, r) {
    SkPMColor c = SkPreMultiplyColor(0xFFCC9933);

    SkPMFloat pmf;
    pmf.set(c);
    REPORTER_ASSERT(r, SkScalarNearlyEqual(1.0f, pmf.a()));
    REPORTER_ASSERT(r, SkScalarNearlyEqual(0.8f, pmf.r()));
    REPORTER_ASSERT(r, SkScalarNearlyEqual(0.6f, pmf.g()));
    REPORTER_ASSERT(r, SkScalarNearlyEqual(0.2f, pmf.b()));

    REPORTER_ASSERT(r, c == pmf.get());

    SkPMFloat unclamped;
    unclamped.setA(+2.0f);
    unclamped.setR(+0.2f);
    unclamped.setG(-0.2f);
    unclamped.setB(-5.0f);

    SkPMFloat clamped;
    clamped.set(unclamped.clamped());

    REPORTER_ASSERT(r, SkScalarNearlyEqual(1.0f, clamped.a()));
    REPORTER_ASSERT(r, SkScalarNearlyEqual(0.2f, clamped.r()));
    REPORTER_ASSERT(r, SkScalarNearlyEqual(0.0f, clamped.g()));
    REPORTER_ASSERT(r, SkScalarNearlyEqual(0.0f, clamped.b()));
}