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