1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef PATH_TEST_H
17 #define PATH_TEST_H
18 
19 #include "draw/brush.h"
20 #include "draw/canvas.h"
21 #include "draw/color.h"
22 #include "draw/path.h"
23 #include "draw/pen.h"
24 #include "utils/log.h"
25 
26 namespace OHOS {
27 namespace Rosen {
28 namespace Drawing {
29 class PathTest {
30 public:
31     using TestFunc = std::function<void(Canvas&, uint32_t, uint32_t)>;
GetInstance()32     inline static PathTest& GetInstance()
33     {
34         static PathTest pathTestCase;
35         return pathTestCase;
36     }
37 
38     static void TestDrawStar(Canvas& canvas, uint32_t width, uint32_t height);
39     static void TestMoveTo(Canvas& canvas, uint32_t width, uint32_t height);
40     static void TestLineTo(Canvas& canvas, uint32_t width, uint32_t height);
41     static void TestArcTo(Canvas& canvas, uint32_t width, uint32_t height);
42     static void TestCubicTo(Canvas& canvas, uint32_t width, uint32_t height);
43     static void TestQuadTo(Canvas& canvas, uint32_t width, uint32_t height);
44     static void TestAddRect(Canvas& canvas, uint32_t width, uint32_t height);
45     static void TestAddOval(Canvas& canvas, uint32_t width, uint32_t height);
46     static void TestAddArc(Canvas& canvas, uint32_t width, uint32_t height);
47     static void TestAddPoly(Canvas& canvas, uint32_t width, uint32_t height);
48     static void TestAddCircle(Canvas& canvas, uint32_t width, uint32_t height);
49     static void TestAddRoundRect(Canvas& canvas, uint32_t width, uint32_t height);
50     static void TestAddPath(Canvas& canvas, uint32_t width, uint32_t height);
51     static void TestFillStyle(Canvas& canvas, uint32_t width, uint32_t height);
52     static void TestFillStyle2(Canvas& canvas, uint32_t width, uint32_t height);
53     static void TestFillStyle3(Canvas& canvas, uint32_t width, uint32_t height);
54     static void TestFillStyle4(Canvas& canvas, uint32_t width, uint32_t height);
55     static void TestOffset(Canvas& canvas, uint32_t width, uint32_t height);
56     static void TestTransform(Canvas& canvas, uint32_t width, uint32_t height);
57     static void TestOp(Canvas& canvas, uint32_t width, uint32_t height);
58     static void TestOp2(Canvas& canvas, uint32_t width, uint32_t height);
59     static void TestOp3(Canvas& canvas, uint32_t width, uint32_t height);
60     static void TestOp4(Canvas& canvas, uint32_t width, uint32_t height);
61     static void TestOp5(Canvas& canvas, uint32_t width, uint32_t height);
62     static void TestClose(Canvas& canvas, uint32_t width, uint32_t height);
63 
64     std::vector<TestFunc> PathTestCase();
65 
66 private:
67     PathTest() = default;
68     virtual ~PathTest() = default;
69 };
70 } // namespace Drawing
71 } // namespace Rosen
72 } // namespace OHOS
73 #endif // PATH_TEST_H