blob: 0e4471922061969cfedbb00a61274ca1f6ed90c8 [file] [log] [blame]
reed@android.com3abec1d2009-03-02 05:36:20 +00001#include "Test.h"
2#include "SkPath.h"
3
4static void TestPath(skiatest::Reporter* reporter) {
5 SkPath p, p2;
6 SkRect bounds, bounds2;
7
8 REPORTER_ASSERT(reporter, p.isEmpty());
9 REPORTER_ASSERT(reporter, p.getFillType() == SkPath::kWinding_FillType);
10 REPORTER_ASSERT(reporter, !p.isInverseFillType());
11 REPORTER_ASSERT(reporter, p == p2);
12 REPORTER_ASSERT(reporter, !(p != p2));
13
reed@android.comd252db02009-04-01 18:31:44 +000014 REPORTER_ASSERT(reporter, p.getBounds().isEmpty());
reed@android.com3abec1d2009-03-02 05:36:20 +000015
16 bounds.set(0, 0, SK_Scalar1, SK_Scalar1);
17 p.addRect(bounds);
reed@android.comd252db02009-04-01 18:31:44 +000018 REPORTER_ASSERT(reporter, bounds == p.getBounds());
reed@android.com3abec1d2009-03-02 05:36:20 +000019
20 REPORTER_ASSERT(reporter, p != p2);
21 REPORTER_ASSERT(reporter, !(p == p2));
22
23 // does getPoints return the right result
24 REPORTER_ASSERT(reporter, p.getPoints(NULL, 5) == 4);
25 SkPoint pts[4];
26 int count = p.getPoints(pts, 4);
27 REPORTER_ASSERT(reporter, count == 4);
28 bounds2.set(pts, 4);
29 REPORTER_ASSERT(reporter, bounds == bounds2);
30
31 bounds.offset(SK_Scalar1*3, SK_Scalar1*4);
32 p.offset(SK_Scalar1*3, SK_Scalar1*4);
reed@android.comd252db02009-04-01 18:31:44 +000033 REPORTER_ASSERT(reporter, bounds == p.getBounds());
reed@android.com3abec1d2009-03-02 05:36:20 +000034
35#if 0 // isRect needs to be implemented
36 REPORTER_ASSERT(reporter, p.isRect(NULL));
37 bounds.setEmpty();
38 REPORTER_ASSERT(reporter, p.isRect(&bounds2));
39 REPORTER_ASSERT(reporter, bounds == bounds2);
40
41 // now force p to not be a rect
42 bounds.set(0, 0, SK_Scalar1/2, SK_Scalar1/2);
43 p.addRect(bounds);
44 REPORTER_ASSERT(reporter, !p.isRect(NULL));
45#endif
46
47 SkPoint pt;
48
49 p.moveTo(SK_Scalar1, 0);
50 p.getLastPt(&pt);
51 REPORTER_ASSERT(reporter, pt.fX == SK_Scalar1);
52}
53
54#include "TestClassDef.h"
55DEFINE_TESTCLASS("Path", PathTestClass, TestPath)