diff options
author | jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-03-04 13:56:38 +0000 |
---|---|---|
committer | jvanverth@google.com <jvanverth@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-03-04 13:56:38 +0000 |
commit | c490f801b063a0837501feab3d12b73d71f46312 (patch) | |
tree | ffd4472adf43e7f9536018fdb03f253325baf858 /tests/RegionTest.cpp | |
parent | bb963e2585efb9690906b5963fcf516ddfb1d432 (diff) |
Change random number generator for 'tests' to SkMWCRandom. Also removes some
unused headers and fixes a couple of bugs exposed by changing the random
number generator:
First, the function SkMatrix::getMaxStretch() had an error where it was testing
the square of a number against near-zero. This led to it occasionally taking a
cheaper but imprecise path for computing the eigenvalues of the matrix. It's
been replaced with a check against the square of SK_ScalarNearlyZero.
The second case was a failure in ClipStackTest, where it hit the rare case of
a practically empty clip stack (it has a single Union) and we set a tight
bounds. The bounds rect doesn't get set by GrReducedClip::ReduceClipStack() in
this case, so when it clips the reduced stack it's clipping against garbage,
and the resulting regions don't match. The solution is to initialize the
tightBounds rect.
git-svn-id: http://skia.googlecode.com/svn/trunk@7952 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/RegionTest.cpp')
-rw-r--r-- | tests/RegionTest.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/tests/RegionTest.cpp b/tests/RegionTest.cpp index 5d3946ebfe..1c06d7ecde 100644 --- a/tests/RegionTest.cpp +++ b/tests/RegionTest.cpp @@ -98,7 +98,7 @@ enum { H = 256 }; -static SkIRect randRect(SkRandom& rand) { +static SkIRect randRect(SkMWCRandom& rand) { int x = rand.nextU() % W; int y = rand.nextU() % H; int w = rand.nextU() % W; @@ -106,7 +106,7 @@ static SkIRect randRect(SkRandom& rand) { return SkIRect::MakeXYWH(x, y, w >> 1, h >> 1); } -static void randRgn(SkRandom& rand, SkRegion* rgn, int n) { +static void randRgn(SkMWCRandom& rand, SkRegion* rgn, int n) { rgn->setEmpty(); for (int i = 0; i < n; ++i) { rgn->op(randRect(rand), SkRegion::kUnion_Op); @@ -183,7 +183,7 @@ static void intersects_proc(skiatest::Reporter* reporter, static void test_proc(skiatest::Reporter* reporter, void (*proc)(skiatest::Reporter*, const SkRegion& a, const SkRegion&)) { - SkRandom rand; + SkMWCRandom rand; for (int i = 0; i < 10000; ++i) { SkRegion outer; randRgn(rand, &outer, 8); @@ -193,7 +193,7 @@ static void test_proc(skiatest::Reporter* reporter, } } -static void rand_rect(SkIRect* rect, SkRandom& rand) { +static void rand_rect(SkIRect* rect, SkMWCRandom& rand) { int bits = 6; int shift = 32 - bits; rect->set(rand.nextU() >> shift, rand.nextU() >> shift, @@ -237,7 +237,7 @@ static void TestRegion(skiatest::Reporter* reporter) { }; REPORTER_ASSERT(reporter, test_rects(rects, SK_ARRAY_COUNT(rects))); - SkRandom rand; + SkMWCRandom rand; for (int i = 0; i < 1000; i++) { SkRegion rgn0, rgn1; |