From c490f801b063a0837501feab3d12b73d71f46312 Mon Sep 17 00:00:00 2001 From: "jvanverth@google.com" Date: Mon, 4 Mar 2013 13:56:38 +0000 Subject: 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 --- tests/RegionTest.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'tests/RegionTest.cpp') 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; -- cgit v1.2.3