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, Hardware
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 #define private public
19 #include "utils/camera3d.h"
20 #undef private
21 #include "utils/matrix.h"
22 #include "utils/scalar.h"
23
24 using namespace testing;
25 using namespace testing::ext;
26
27 namespace OHOS {
28 namespace Rosen {
29 namespace Drawing {
30 class Camera3DTest : public testing::Test {
31 public:
32 static void SetUpTestCase();
33 static void TearDownTestCase();
34 void SetUp() override;
35 void TearDown() override;
36 };
37
SetUpTestCase()38 void Camera3DTest::SetUpTestCase() {}
TearDownTestCase()39 void Camera3DTest::TearDownTestCase() {}
SetUp()40 void Camera3DTest::SetUp() {}
TearDown()41 void Camera3DTest::TearDown() {}
42
43 /**
44 * @tc.name: Camera3DCreateAndDestroy001
45 * @tc.desc:
46 * @tc.type: FUNC
47 * @tc.require:AR000GGNV3
48 * @tc.author:
49 */
50 HWTEST_F(Camera3DTest, Camera3DCreateAndDestroy001, TestSize.Level1)
51 {
52 // The best way to create Camera3D.
53 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
54 ASSERT_TRUE(camera3d != nullptr);
55 }
56
57 /**
58 * @tc.name: Camera3DCreateAndDestroy002
59 * @tc.desc:
60 * @tc.type: FUNC
61 * @tc.require:AR000GGNV3
62 * @tc.author:
63 */
64 HWTEST_F(Camera3DTest, Camera3DCreateAndDestroy002, TestSize.Level1)
65 {
66 // The best way to create Camera3D.
67 Camera3D camera3d;
68 ASSERT_TRUE(camera3d.impl_ != nullptr);
69 }
70
71 /**
72 * @tc.name: Camera3DTranslateTest001
73 * @tc.desc:
74 * @tc.type: FUNC
75 * @tc.require:AR000GGNV3
76 * @tc.author:
77 */
78 HWTEST_F(Camera3DTest, Camera3DTranslateTest001, TestSize.Level1)
79 {
80 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
81 ASSERT_TRUE(camera3d != nullptr);
82 camera3d->Translate(131.5f, 121.0f, 60.0f);
83 }
84
85 /**
86 * @tc.name: Camera3DTranslateTest002
87 * @tc.desc:
88 * @tc.type: FUNC
89 * @tc.require:AR000GGNV3
90 * @tc.author:
91 */
92 HWTEST_F(Camera3DTest, Camera3DTranslateTest002, TestSize.Level1)
93 {
94 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
95 ASSERT_TRUE(camera3d != nullptr);
96 camera3d->Translate(23.6f, 7.9f, 800.9f);
97 }
98
99 /**
100 * @tc.name: Camera3DRotateXDegreesTest001
101 * @tc.desc:
102 * @tc.type: FUNC
103 * @tc.require:AR000GGNV3
104 * @tc.author:
105 */
106 HWTEST_F(Camera3DTest, Camera3DRotateXDegreesTest001, TestSize.Level1)
107 {
108 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
109 ASSERT_TRUE(camera3d != nullptr);
110 camera3d->RotateXDegrees(800.6f);
111 }
112
113 /**
114 * @tc.name: Camera3DRotateXDegreesTest002
115 * @tc.desc:
116 * @tc.type: FUNC
117 * @tc.require:AR000GGNV3
118 * @tc.author:
119 */
120 HWTEST_F(Camera3DTest, Camera3DRotateXDegreesTest002, TestSize.Level1)
121 {
122 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
123 ASSERT_TRUE(camera3d != nullptr);
124 camera3d->RotateXDegrees(300.0f);
125 }
126
127 /**
128 * @tc.name: Camera3DRotateXDegreesTest003
129 * @tc.desc:
130 * @tc.type: FUNC
131 * @tc.require:AR000GGNV3
132 * @tc.author:
133 */
134 HWTEST_F(Camera3DTest, Camera3DRotateXDegreesTest003, TestSize.Level1)
135 {
136 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
137 ASSERT_TRUE(camera3d != nullptr);
138 camera3d->RotateXDegrees(300.29f);
139 }
140
141 /**
142 * @tc.name: Camera3DRotateYDegreesTest001
143 * @tc.desc:
144 * @tc.type: FUNC
145 * @tc.require:AR000GGNV3
146 * @tc.author:
147 */
148 HWTEST_F(Camera3DTest, Camera3DRotateYDegreesTest001, TestSize.Level1)
149 {
150 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
151 ASSERT_TRUE(camera3d != nullptr);
152 camera3d->RotateYDegrees(300.29f);
153 }
154
155 /**
156 * @tc.name: Camera3DRotateYDegreesTest002
157 * @tc.desc:
158 * @tc.type: FUNC
159 * @tc.require:AR000GGNV3
160 * @tc.author:
161 */
162 HWTEST_F(Camera3DTest, Camera3DRotateYDegreesTest002, TestSize.Level1)
163 {
164 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
165 ASSERT_TRUE(camera3d != nullptr);
166 camera3d->RotateYDegrees(300);
167 }
168
169 /**
170 * @tc.name: Camera3DRotateYDegreesTest003
171 * @tc.desc:
172 * @tc.type: FUNC
173 * @tc.require:AR000GGNV3
174 * @tc.author:
175 */
176 HWTEST_F(Camera3DTest, Camera3DRotateYDegreesTest003, TestSize.Level1)
177 {
178 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
179 ASSERT_TRUE(camera3d != nullptr);
180 camera3d->RotateYDegrees(300.29f);
181 }
182
183 /**
184 * @tc.name: Camera3DRotateZDegreesTest001
185 * @tc.desc:
186 * @tc.type: FUNC
187 * @tc.require:AR000GGNV3
188 * @tc.author:
189 */
190 HWTEST_F(Camera3DTest, Camera3DRotateZDegreesTest001, TestSize.Level1)
191 {
192 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
193 ASSERT_TRUE(camera3d != nullptr);
194 camera3d->RotateZDegrees(300.29f);
195 }
196
197 /**
198 * @tc.name: Camera3DRotateZDegreesTest002
199 * @tc.desc:
200 * @tc.type: FUNC
201 * @tc.require:AR000GGNV3
202 * @tc.author:
203 */
204 HWTEST_F(Camera3DTest, Camera3DRotateZDegreesTest002, TestSize.Level1)
205 {
206 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
207 ASSERT_TRUE(camera3d != nullptr);
208 camera3d->RotateZDegrees(300.0f);
209 }
210
211 /**
212 * @tc.name: Camera3DRotateZDegreesTest003
213 * @tc.desc:
214 * @tc.type: FUNC
215 * @tc.require:AR000GGNV3
216 * @tc.author:
217 */
218 HWTEST_F(Camera3DTest, Camera3DRotateZDegreesTest003, TestSize.Level1)
219 {
220 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
221 ASSERT_TRUE(camera3d != nullptr);
222 camera3d->RotateZDegrees(300.29f);
223 }
224
225 /**
226 * @tc.name: Camera3DSetAndGetCameraPosTest001
227 * @tc.desc:
228 * @tc.type: FUNC
229 * @tc.require:AR000GGNV3
230 * @tc.author:
231 */
232 HWTEST_F(Camera3DTest, Camera3DSetAndGetCameraPosTest001, TestSize.Level1)
233 {
234 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
235 ASSERT_TRUE(camera3d != nullptr);
236 camera3d->SetCameraPos(8.2f, 9.1f, 8.2f);
237 EXPECT_EQ(8.2f, camera3d->GetCameraPosX());
238 EXPECT_EQ(9.1f, camera3d->GetCameraPosY());
239 EXPECT_EQ(8.2f, camera3d->GetCameraPosZ());
240 camera3d->Save();
241 camera3d->Restore();
242 }
243
244 /**
245 * @tc.name: Camera3DSetAndGetCameraPosTest002
246 * @tc.desc:
247 * @tc.type: FUNC
248 * @tc.require:AR000GGNV3
249 * @tc.author:
250 */
251 HWTEST_F(Camera3DTest, Camera3DSetAndGetCameraPosTest002, TestSize.Level1)
252 {
253 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
254 ASSERT_TRUE(camera3d != nullptr);
255 camera3d->SetCameraPos(8.0f, 8.1f, 8.2f);
256 EXPECT_EQ(8.0f, camera3d->GetCameraPosX());
257 EXPECT_EQ(8.1f, camera3d->GetCameraPosY());
258 EXPECT_EQ(8.2f, camera3d->GetCameraPosZ());
259 camera3d->Save();
260 camera3d->Restore();
261 }
262
263 /**
264 * @tc.name: Camera3DApplyToMatrixTest001
265 * @tc.desc:
266 * @tc.type: FUNC
267 * @tc.require:AR000GGNV3
268 * @tc.author:
269 */
270 HWTEST_F(Camera3DTest, Camera3DApplyToMatrixTest001, TestSize.Level1)
271 {
272 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
273 ASSERT_TRUE(camera3d != nullptr);
274 Matrix matrix;
275 camera3d->ApplyToMatrix(matrix);
276 }
277
278 /**
279 * @tc.name: Camera3DApplyToMatrixTest002
280 * @tc.desc:
281 * @tc.type: FUNC
282 * @tc.require:AR000GGNV3
283 * @tc.author:
284 */
285 HWTEST_F(Camera3DTest, Camera3DApplyToMatrixTest002, TestSize.Level1)
286 {
287 std::unique_ptr<Camera3D> camera3d = std::make_unique<Camera3D>();
288 ASSERT_TRUE(camera3d != nullptr);
289 Matrix matrix2;
290 camera3d->ApplyToMatrix(matrix2);
291 }
292 } // namespace Drawing
293 } // namespace Rosen
294 } // namespace OHOS