Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: tests/RoundRectTest.cpp

Issue 196343015: Add nine patch type to SkRRect. (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: fix inf loop in tests Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/utils/debugger/SkObjectParser.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkMatrix.h" 8 #include "SkMatrix.h"
9 #include "SkRRect.h" 9 #include "SkRRect.h"
10 #include "Test.h" 10 #include "Test.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 53
54 SkRRect rr1; 54 SkRRect rr1;
55 rr1.setRect(rect); 55 rr1.setRect(rect);
56 56
57 REPORTER_ASSERT(reporter, SkRRect::kRect_Type == rr1.type()); 57 REPORTER_ASSERT(reporter, SkRRect::kRect_Type == rr1.type());
58 REPORTER_ASSERT(reporter, rr1.rect() == rect); 58 REPORTER_ASSERT(reporter, rr1.rect() == rect);
59 59
60 for (int i = 0; i < 4; ++i) { 60 for (int i = 0; i < 4; ++i) {
61 REPORTER_ASSERT(reporter, zeroPt == rr1.radii((SkRRect::Corner) i)); 61 REPORTER_ASSERT(reporter, zeroPt == rr1.radii((SkRRect::Corner) i));
62 } 62 }
63 SkRRect rr1_2; // construct the same RR using the most general set function
64 SkVector rr1_2_radii[4] = { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } };
65 rr1_2.setRectRadii(rect, rr1_2_radii);
66 REPORTER_ASSERT(reporter, rr1_2 == rr1 && rr1_2.getType() == rr1.getType());
67 SkRRect rr1_3; // construct the same RR using the nine patch set function
68 rr1_3.setNinePatch(rect, 0, 0, 0, 0);
69 REPORTER_ASSERT(reporter, rr1_3 == rr1 && rr1_3.getType() == rr1.getType());
63 70
64 //---- 71 //----
65 SkPoint halfPoint = { SkScalarHalf(kWidth), SkScalarHalf(kHeight) }; 72 SkPoint halfPoint = { SkScalarHalf(kWidth), SkScalarHalf(kHeight) };
66 SkRRect rr2; 73 SkRRect rr2;
67 rr2.setOval(rect); 74 rr2.setOval(rect);
68 75
69 REPORTER_ASSERT(reporter, SkRRect::kOval_Type == rr2.type()); 76 REPORTER_ASSERT(reporter, SkRRect::kOval_Type == rr2.type());
70 REPORTER_ASSERT(reporter, rr2.rect() == rect); 77 REPORTER_ASSERT(reporter, rr2.rect() == rect);
71 78
72 for (int i = 0; i < 4; ++i) { 79 for (int i = 0; i < 4; ++i) {
73 REPORTER_ASSERT(reporter, 80 REPORTER_ASSERT(reporter,
74 rr2.radii((SkRRect::Corner) i).equalsWithinTolerance(hal fPoint)); 81 rr2.radii((SkRRect::Corner) i).equalsWithinTolerance(hal fPoint));
75 } 82 }
83 SkRRect rr2_2; // construct the same RR using the most general set function
84 SkVector rr2_2_radii[4] = { { halfPoint.fX, halfPoint.fY }, { halfPoint.fX, halfPoint.fY },
85 { halfPoint.fX, halfPoint.fY }, { halfPoint.fX, halfPoint.fY } };
86 rr2_2.setRectRadii(rect, rr2_2_radii);
87 REPORTER_ASSERT(reporter, rr2_2 == rr2 && rr2_2.getType() == rr2.getType());
88 SkRRect rr2_3; // construct the same RR using the nine patch set function
89 rr2_3.setNinePatch(rect, halfPoint.fX, halfPoint.fY, halfPoint.fX, halfPoint .fY);
90 REPORTER_ASSERT(reporter, rr2_3 == rr2 && rr2_3.getType() == rr2.getType());
76 91
77 //---- 92 //----
78 SkPoint p = { 5, 5 }; 93 SkPoint p = { 5, 5 };
79 SkRRect rr3; 94 SkRRect rr3;
80 rr3.setRectXY(rect, p.fX, p.fY); 95 rr3.setRectXY(rect, p.fX, p.fY);
81 96
82 REPORTER_ASSERT(reporter, SkRRect::kSimple_Type == rr3.type()); 97 REPORTER_ASSERT(reporter, SkRRect::kSimple_Type == rr3.type());
83 REPORTER_ASSERT(reporter, rr3.rect() == rect); 98 REPORTER_ASSERT(reporter, rr3.rect() == rect);
84 99
85 for (int i = 0; i < 4; ++i) { 100 for (int i = 0; i < 4; ++i) {
86 REPORTER_ASSERT(reporter, p == rr3.radii((SkRRect::Corner) i)); 101 REPORTER_ASSERT(reporter, p == rr3.radii((SkRRect::Corner) i));
87 } 102 }
103 SkRRect rr3_2; // construct the same RR using the most general set function
104 SkVector rr3_2_radii[4] = { { 5, 5 }, { 5, 5 }, { 5, 5 }, { 5, 5 } };
105 rr3_2.setRectRadii(rect, rr3_2_radii);
106 REPORTER_ASSERT(reporter, rr3_2 == rr3 && rr3_2.getType() == rr3.getType());
107 SkRRect rr3_3; // construct the same RR using the nine patch set function
108 rr3_3.setNinePatch(rect, 5, 5, 5, 5);
109 REPORTER_ASSERT(reporter, rr3_3 == rr3 && rr3_3.getType() == rr3.getType());
88 110
89 //---- 111 //----
90 SkPoint radii[4] = { { 5, 5 }, { 5, 5 }, { 5, 5 }, { 5, 5 } }; 112 SkRect ninePatchRadii = { 10, 9, 8, 7 };
91 113
92 SkRRect rr4; 114 SkRRect rr4;
93 rr4.setRectRadii(rect, radii); 115 rr4.setNinePatch(rect, ninePatchRadii.fLeft, ninePatchRadii.fTop, ninePatchR adii.fRight,
116 ninePatchRadii.fBottom);
94 117
95 REPORTER_ASSERT(reporter, SkRRect::kSimple_Type == rr4.type()); 118 REPORTER_ASSERT(reporter, SkRRect::kNinePatch_Type == rr4.type());
96 REPORTER_ASSERT(reporter, rr4.rect() == rect); 119 REPORTER_ASSERT(reporter, rr4.rect() == rect);
97 120
121 SkPoint rquad[4];
122 ninePatchRadii.toQuad(rquad);
98 for (int i = 0; i < 4; ++i) { 123 for (int i = 0; i < 4; ++i) {
99 REPORTER_ASSERT(reporter, radii[i] == rr4.radii((SkRRect::Corner) i)); 124 REPORTER_ASSERT(reporter, rquad[i] == rr4.radii((SkRRect::Corner) i));
100 } 125 }
126 SkRRect rr4_2; // construct the same RR using the most general set function
127 SkVector rr4_2_radii[4] = { { 10, 9 }, { 8, 9 }, {8, 7 }, { 10, 7 } };
128 rr4_2.setRectRadii(rect, rr4_2_radii);
129 REPORTER_ASSERT(reporter, rr4_2 == rr4 && rr4_2.getType() == rr4.getType());
101 130
102 //---- 131 //----
103 SkPoint radii2[4] = { { 0, 0 }, { 0, 0 }, { 50, 50 }, { 20, 50 } }; 132 SkPoint radii2[4] = { { 0, 0 }, { 0, 0 }, { 50, 50 }, { 20, 50 } };
104 133
105 SkRRect rr5; 134 SkRRect rr5;
106 rr5.setRectRadii(rect, radii2); 135 rr5.setRectRadii(rect, radii2);
107 136
108 REPORTER_ASSERT(reporter, SkRRect::kComplex_Type == rr5.type()); 137 REPORTER_ASSERT(reporter, SkRRect::kComplex_Type == rr5.type());
109 REPORTER_ASSERT(reporter, rr5.rect() == rect); 138 REPORTER_ASSERT(reporter, rr5.rect() == rect);
110 139
111 for (int i = 0; i < 4; ++i) { 140 for (int i = 0; i < 4; ++i) {
112 REPORTER_ASSERT(reporter, radii2[i] == rr5.radii((SkRRect::Corner) i)); 141 REPORTER_ASSERT(reporter, radii2[i] == rr5.radii((SkRRect::Corner) i));
113 } 142 }
114 143
115 // Test out == & != 144 // Test out == & !=
116 REPORTER_ASSERT(reporter, empty != rr3); 145 REPORTER_ASSERT(reporter, empty != rr3);
117 REPORTER_ASSERT(reporter, rr3 == rr4); 146 REPORTER_ASSERT(reporter, rr3 != rr4);
118 REPORTER_ASSERT(reporter, rr4 != rr5); 147 REPORTER_ASSERT(reporter, rr4 != rr5);
119 } 148 }
120 149
121 // Test out the cases when the RR degenerates to a rect 150 // Test out the cases when the RR degenerates to a rect
122 static void test_round_rect_rects(skiatest::Reporter* reporter) { 151 static void test_round_rect_rects(skiatest::Reporter* reporter) {
123 SkRect r; 152 SkRect r;
124 153
125 //---- 154 //----
126 SkRRect empty; 155 SkRRect empty;
127 156
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 DEF_TEST(RoundRect, reporter) { 585 DEF_TEST(RoundRect, reporter) {
557 test_round_rect_basic(reporter); 586 test_round_rect_basic(reporter);
558 test_round_rect_rects(reporter); 587 test_round_rect_rects(reporter);
559 test_round_rect_ovals(reporter); 588 test_round_rect_ovals(reporter);
560 test_round_rect_general(reporter); 589 test_round_rect_general(reporter);
561 test_round_rect_iffy_parameters(reporter); 590 test_round_rect_iffy_parameters(reporter);
562 test_inset(reporter); 591 test_inset(reporter);
563 test_round_rect_contains_rect(reporter); 592 test_round_rect_contains_rect(reporter);
564 test_round_rect_transform(reporter); 593 test_round_rect_transform(reporter);
565 } 594 }
OLDNEW
« no previous file with comments | « src/utils/debugger/SkObjectParser.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698