• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #include "gtest/gtest.h"
17 
18 #include <memory>
19 #include "base/geometry/dimension.h"
20 #include "core/pipeline_ng/test/mock/mock_pipeline_base.h"
21 
22 using namespace testing;
23 using namespace testing::ext;
24 
25 namespace OHOS::Ace {
26 namespace {
27 const double DEFAULT_DOUBLE = 1.0;
28 const double ZERO_DOUBLE = 0.0;
29 
30 const Dimension DIMENSION_PX(DEFAULT_DOUBLE, DimensionUnit::PX);
31 const Dimension DIMENSION_VP(DEFAULT_DOUBLE, DimensionUnit::VP);
32 const Dimension DIMENSION_FP(DEFAULT_DOUBLE, DimensionUnit::FP);
33 const Dimension DIMENSION_LPX(DEFAULT_DOUBLE, DimensionUnit::LPX);
34 const Dimension DIMENSION_PCT(DEFAULT_DOUBLE, DimensionUnit::PERCENT);
35 const Dimension DIMENSION_AUTO(DEFAULT_DOUBLE, DimensionUnit::AUTO);
36 const Dimension DIMENSION_CALC(DEFAULT_DOUBLE, DimensionUnit::CALC);
37 
38 const std::string DIMENSION_PX_STR = StringUtils::DoubleToString(DEFAULT_DOUBLE).append("px");
39 const std::string DIMENSION_VP_STR = StringUtils::DoubleToString(DEFAULT_DOUBLE).append("vp");
40 const std::string DIMENSION_FP_STR = StringUtils::DoubleToString(DEFAULT_DOUBLE).append("fp");
41 const std::string DIMENSION_LPX_STR = StringUtils::DoubleToString(DEFAULT_DOUBLE).append("lpx");
42 const std::string DIMENSION_PCT_STR = StringUtils::DoubleToString(DEFAULT_DOUBLE * 100).append("%");
43 const std::string DIMENSION_AUTO_STR = StringUtils::DoubleToString(DEFAULT_DOUBLE).append("auto");
44 }
45 
46 class DimensionTest : public testing::Test {
47 public:
48     static void SetUpTestCase();
49     static void TearDownTestCase();
50     void SetUp();
51     void TearDown();
52 };
53 
SetUpTestCase()54 void DimensionTest::SetUpTestCase()
55 {
56     GTEST_LOG_(INFO) << "DimensionTest SetUpTestCase";
57 }
58 
TearDownTestCase()59 void DimensionTest::TearDownTestCase()
60 {
61     GTEST_LOG_(INFO) << "DimensionTest TearDownTestCase";
62 }
63 
SetUp()64 void DimensionTest::SetUp()
65 {
66     GTEST_LOG_(INFO) << "DimensionTest SetUp";
67 }
68 
TearDown()69 void DimensionTest::TearDown()
70 {
71     GTEST_LOG_(INFO) << "DimensionTest TearDown";
72 }
73 
74 /**
75  * @tc.name: DimensionTest001
76  * @tc.desc: Test the function ConvertToVp of the class Dimension.
77  * @tc.type: FUNC
78  */
79 HWTEST_F(DimensionTest, DimensionTest001, TestSize.Level1)
80 {
81     /**
82      * @tc.steps1: initialize parameters.
83      */
84     MockPipelineBase::SetUp();
85 
86     /**
87      * @tc.steps2: Test the function ConvertToVp of the class Dimension.
88      * @tc.expected: The return values are equal to DEFAULT_DOUBLE or ZERO_DOUBLE
89      */
90     EXPECT_DOUBLE_EQ(DIMENSION_PX.ConvertToVp(), DEFAULT_DOUBLE);
91     EXPECT_DOUBLE_EQ(DIMENSION_VP.ConvertToVp(), DEFAULT_DOUBLE);
92     EXPECT_DOUBLE_EQ(DIMENSION_FP.ConvertToVp(), DEFAULT_DOUBLE);
93     EXPECT_DOUBLE_EQ(DIMENSION_LPX.ConvertToVp(), DEFAULT_DOUBLE);
94     EXPECT_DOUBLE_EQ(DIMENSION_PCT.ConvertToVp(), ZERO_DOUBLE);
95     EXPECT_DOUBLE_EQ(DIMENSION_AUTO.ConvertToVp(), ZERO_DOUBLE);
96     EXPECT_DOUBLE_EQ(DIMENSION_CALC.ConvertToVp(), ZERO_DOUBLE);
97 }
98 
99 /**
100  * @tc.name: DimensionTest002
101  * @tc.desc: Test the function ConvertToPx of the class Dimension.
102  * @tc.type: FUNC
103  */
104 HWTEST_F(DimensionTest, DimensionTest002, TestSize.Level1)
105 {
106     /**
107      * @tc.steps1: initialize parameters.
108      */
109     MockPipelineBase::SetUp();
110 
111     /**
112      * @tc.steps2: Test the function ConvertToPx of the class Dimension.
113      * @tc.expected: The return values are equal to DEFAULT_DOUBLE or ZERO_DOUBLE.
114      */
115     EXPECT_DOUBLE_EQ(DIMENSION_PX.ConvertToPx(), DEFAULT_DOUBLE);
116     EXPECT_DOUBLE_EQ(DIMENSION_VP.ConvertToPx(), DEFAULT_DOUBLE);
117     EXPECT_DOUBLE_EQ(DIMENSION_FP.ConvertToPx(), DEFAULT_DOUBLE);
118     EXPECT_DOUBLE_EQ(DIMENSION_LPX.ConvertToPx(), DEFAULT_DOUBLE);
119     EXPECT_DOUBLE_EQ(DIMENSION_PCT.ConvertToPx(), ZERO_DOUBLE);
120     EXPECT_DOUBLE_EQ(DIMENSION_AUTO.ConvertToPx(), ZERO_DOUBLE);
121     EXPECT_DOUBLE_EQ(DIMENSION_CALC.ConvertToPx(), ZERO_DOUBLE);
122 }
123 
124 /**
125  * @tc.name: DimensionTest003
126  * @tc.desc: Test the function ToString of the class Dimension.
127  * @tc.type: FUNC
128  */
129 HWTEST_F(DimensionTest, DimensionTest003, TestSize.Level1)
130 {
131     /**
132      * @tc.steps1: Test the function ToString of the class Dimension.
133      * @tc.expected: The return values are equal to DIMENSION_STR of PX, VP, FP, LPX, PCT and AUTO.
134      */
135     EXPECT_EQ(DIMENSION_PX.ToString(), DIMENSION_PX_STR);
136     EXPECT_EQ(DIMENSION_VP.ToString(), DIMENSION_VP_STR);
137     EXPECT_EQ(DIMENSION_FP.ToString(), DIMENSION_FP_STR);
138     EXPECT_EQ(DIMENSION_LPX.ToString(), DIMENSION_LPX_STR);
139     EXPECT_EQ(DIMENSION_PCT.ToString(), DIMENSION_PCT_STR);
140     EXPECT_EQ(DIMENSION_AUTO.ToString(), DIMENSION_AUTO_STR);
141 }
142 
143 /**
144  * @tc.name: DimensionTest004
145  * @tc.desc: Test the function NormalizeToPx of the class Dimension with -DEFAULT_DOUBLE.
146  * @tc.type: FUNC
147  */
148 HWTEST_F(DimensionTest, DimensionTest004, TestSize.Level1)
149 {
150     /**
151      * @tc.steps1: Test the function NormalizeToPx of the class Dimension with DIMENSION_PX.
152      * @tc.expected: The return values are equal to DEFAULT_DOUBLE.
153      */
154     double result = 0;
155     EXPECT_TRUE(DIMENSION_PX.NormalizeToPx(
156         -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, result));
157     EXPECT_DOUBLE_EQ(result, DEFAULT_DOUBLE);
158 
159     /**
160      * @tc.steps2: Test the function NormalizeToPx of the class Dimension with DIMENSION_VP.
161      * @tc.expected: The return values are equal to ZERO_DOUBLE.
162      */
163     result = 0;
164     EXPECT_FALSE(DIMENSION_VP.NormalizeToPx(
165         -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, result));
166     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
167 
168     /**
169      * @tc.steps3: Test the function NormalizeToPx of the class Dimension with DIMENSION_FP.
170      * @tc.expected: The return values are equal to ZERO_DOUBLE.
171      */
172     result = 0;
173     EXPECT_FALSE(DIMENSION_FP.NormalizeToPx(
174         -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, result));
175     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
176 
177     /**
178      * @tc.steps4: Test the function NormalizeToPx of the class Dimension with DIMENSION_LPX.
179      * @tc.expected: The return values are equal to ZERO_DOUBLE.
180      */
181     result = 0;
182     EXPECT_FALSE(DIMENSION_LPX.NormalizeToPx(
183         -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, result));
184     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
185 
186     /**
187      * @tc.steps5: Test the function NormalizeToPx of the class Dimension with DIMENSION_PCT.
188      * @tc.expected: The return values are equal to ZERO_DOUBLE.
189      */
190     result = 0;
191     EXPECT_FALSE(DIMENSION_PCT.NormalizeToPx(
192         -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, result));
193     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
194 
195     /**
196      * @tc.steps6: Test the function NormalizeToPx of the class Dimension with DIMENSION_AUTO.
197      * @tc.expected: The return values are equal to ZERO_DOUBLE.
198      */
199     result = 0;
200     EXPECT_FALSE(DIMENSION_AUTO.NormalizeToPx(
201         -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, result));
202     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
203 
204     /**
205      * @tc.steps7: Test the function NormalizeToPx of the class Dimension with DIMENSION_CALC.
206      * @tc.expected: The return values are equal to ZERO_DOUBLE.
207      */
208     result = 0;
209     EXPECT_FALSE(DIMENSION_CALC.NormalizeToPx(
210         -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, -DEFAULT_DOUBLE, result));
211     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
212 }
213 
214 /**
215  * @tc.name: DimensionTest005
216  * @tc.desc: Test the function NormalizeToPx of the class Dimension with DEFAULT_DOUBLE.
217  * @tc.type: FUNC
218  */
219 HWTEST_F(DimensionTest, DimensionTest005, TestSize.Level1)
220 {
221     /**
222      * @tc.steps1: Test the function NormalizeToPx of the class Dimension with DIMENSION_PX.
223      * @tc.expected: The return values are equal to DEFAULT_DOUBLE.
224      */
225     double result = 0;
226     EXPECT_TRUE(DIMENSION_PX.NormalizeToPx(DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, result));
227     EXPECT_DOUBLE_EQ(result, DEFAULT_DOUBLE);
228 
229     /**
230      * @tc.steps2: Test the function NormalizeToPx of the class Dimension with DIMENSION_VP.
231      * @tc.expected: The return values are equal to DEFAULT_DOUBLE.
232      */
233     result = 0;
234     EXPECT_TRUE(DIMENSION_VP.NormalizeToPx(DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, result));
235     EXPECT_DOUBLE_EQ(result, DEFAULT_DOUBLE);
236 
237     /**
238      * @tc.steps3: Test the function NormalizeToPx of the class Dimension with DIMENSION_FP.
239      * @tc.expected: The return values are equal to DEFAULT_DOUBLE.
240      */
241     result = 0;
242     EXPECT_TRUE(DIMENSION_FP.NormalizeToPx(DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, result));
243     EXPECT_DOUBLE_EQ(result, DEFAULT_DOUBLE);
244 
245     /**
246      * @tc.steps4: Test the function NormalizeToPx of the class Dimension with DIMENSION_LPX.
247      * @tc.expected: The return values are equal to DEFAULT_DOUBLE.
248      */
249     result = 0;
250     EXPECT_TRUE(DIMENSION_LPX.NormalizeToPx(DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, result));
251     EXPECT_DOUBLE_EQ(result, DEFAULT_DOUBLE);
252 
253     /**
254      * @tc.steps5: Test the function NormalizeToPx of the class Dimension with DIMENSION_PCT.
255      * @tc.expected: The return values are equal to DEFAULT_DOUBLE.
256      */
257     result = 0;
258     EXPECT_TRUE(DIMENSION_PCT.NormalizeToPx(DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, result));
259     EXPECT_DOUBLE_EQ(result, DEFAULT_DOUBLE);
260 
261     /**
262      * @tc.steps6: Test the function NormalizeToPx of the class Dimension with DIMENSION_AUTO.
263      * @tc.expected: The return values are equal to ZERO_DOUBLE.
264      */
265     result = 0;
266     EXPECT_FALSE(DIMENSION_AUTO.NormalizeToPx(DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, result));
267     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
268 
269     /**
270      * @tc.steps7: Test the function NormalizeToPx of the class Dimension with DIMENSION_CALC.
271      * @tc.expected: The return values are equal to ZERO_DOUBLE.
272      */
273     result = 0;
274     EXPECT_FALSE(DIMENSION_CALC.NormalizeToPx(DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, DEFAULT_DOUBLE, result));
275     EXPECT_DOUBLE_EQ(result, ZERO_DOUBLE);
276 }
277 } // namespace OHOS::Ace