19 #include "layerbitmap.h"
20 #include "layervector.h"
21 #include "layercamera.h"
22 #include "layersound.h"
27 TEST_CASE(
"LayerType")
31 SECTION(
"Bitmap Layer")
34 REQUIRE(bitmapLayer->type() == Layer::BITMAP);
37 SECTION(
"Vector Layer")
40 REQUIRE(vecLayer->type() == Layer::VECTOR);
43 SECTION(
"Camera Layer")
46 REQUIRE(cameraLayer->type() == Layer::CAMERA);
49 SECTION(
"Sound Layer")
52 REQUIRE(soundLayer->type() == Layer::SOUND);
59 SCENARIO(
"Add key frames into a Layer",
"[Layer]")
63 GIVEN(
"A Bitmap Layer")
67 REQUIRE(layer->addNewKeyFrameAt(0) ==
false);
68 REQUIRE(layer->keyFrameCount() == 0);
70 WHEN(
"Add a keyframe")
72 REQUIRE(layer->addNewKeyFrameAt(1) ==
true);
74 THEN(
"keyframe can be found in the layer")
76 REQUIRE(layer->getMaxKeyFramePosition() == 1);
77 REQUIRE(layer->keyFrameCount() == 1);
78 REQUIRE(layer->getKeyFrameAt(1) !=
nullptr);
82 WHEN(
"Add 2 keyframes")
84 REQUIRE(layer->addNewKeyFrameAt(1) ==
true);
85 REQUIRE(layer->addNewKeyFrameAt(3) ==
true);
87 THEN(
"2 keyframes are in the layer")
89 REQUIRE(layer->getMaxKeyFramePosition() == 3);
90 REQUIRE(layer->getKeyFrameAt(3) !=
nullptr);
91 REQUIRE(layer->keyFrameCount() == 2);
97 GIVEN(
"A Vector Layer")
101 REQUIRE(layer->addNewKeyFrameAt(0) ==
false);
102 REQUIRE(layer->keyFrameCount() == 0);
104 WHEN(
"Add a keyframe")
106 REQUIRE(layer->addNewKeyFrameAt(1) ==
true);
108 THEN(
"keyframe can be found in the layer")
110 REQUIRE(layer->getMaxKeyFramePosition() == 1);
111 REQUIRE(layer->keyFrameCount() == 1);
112 REQUIRE(layer->getKeyFrameAt(1) !=
nullptr);
118 GIVEN(
"A Camera Layer")
122 REQUIRE(layer->addNewKeyFrameAt(0) ==
false);
123 REQUIRE(layer->keyFrameCount() == 0);
125 WHEN(
"Add a keyframe")
127 REQUIRE(layer->addNewKeyFrameAt(1) ==
true);
129 THEN(
"keyframe can be found in the layer")
131 REQUIRE(layer->getMaxKeyFramePosition() == 1);
132 REQUIRE(layer->keyFrameCount() == 1);
133 REQUIRE(layer->getKeyFrameAt(1) !=
nullptr);
141 TEST_CASE(
"Test Layer::keyExists()",
"[Layer]")
145 SECTION(
"Fresh new Layer")
147 Layer* layer = obj->addNewBitmapLayer();
148 REQUIRE(layer->keyExists(1) ==
true);
151 SECTION(
"Key exists at 15")
153 Layer* layer = obj->addNewBitmapLayer();
154 REQUIRE(layer->addNewKeyFrameAt(15));
155 REQUIRE(layer->keyExists(16) ==
false);
156 REQUIRE(layer->keyExists(15) ==
true);
157 REQUIRE(layer->keyExists(14) ==
false);
158 REQUIRE(layer->keyExists(13) ==
false);
159 REQUIRE(layer->keyExists(12) ==
false);
161 SECTION(
"Key exists 10 20 30")
163 Layer* layer = obj->addNewBitmapLayer();
165 REQUIRE(layer->addNewKeyFrameAt(10));
166 REQUIRE(layer->keyExists(10) ==
true);
168 REQUIRE(layer->addNewKeyFrameAt(20));
169 REQUIRE(layer->keyExists(20) ==
true);
171 REQUIRE(layer->addNewKeyFrameAt(30));
172 REQUIRE(layer->keyExists(30) ==
true);
175 REQUIRE(layer->keyExists(0) ==
false);
176 REQUIRE(layer->keyExists(21) ==
false);
177 REQUIRE(layer->keyExists(31) ==
false);
178 REQUIRE(layer->keyExists(1000) ==
false);
179 REQUIRE(layer->keyExists(-333) ==
false);
185 TEST_CASE(
"Layer::firstKeyFramePosition()")
191 Layer* layer = obj->addNewBitmapLayer();
192 REQUIRE(layer->firstKeyFramePosition() == 1);
194 layer->addNewKeyFrameAt(99);
195 REQUIRE(layer->firstKeyFramePosition() == 1);
197 layer->moveKeyFrameForward(1);
198 REQUIRE(layer->firstKeyFramePosition() == 1);
204 TEST_CASE(
"Layer::getMaxKeyFramePosition()")
210 Layer* layer = obj->addNewBitmapLayer();
213 REQUIRE(layer->getMaxKeyFramePosition() == 1);
215 CHECK(layer->addNewKeyFrameAt(3));
216 REQUIRE(layer->getMaxKeyFramePosition() == 3);
218 CHECK(layer->addNewKeyFrameAt(8));
219 REQUIRE(layer->getMaxKeyFramePosition() == 8);
221 CHECK(layer->addNewKeyFrameAt(100));
222 REQUIRE(layer->getMaxKeyFramePosition() == 100);
224 CHECK(layer->addNewKeyFrameAt(80));
225 REQUIRE(layer->getMaxKeyFramePosition() == 100);
232 TEST_CASE(
"Layer::removeKeyFrame()")
237 Layer* layer = obj->addNewBitmapLayer();
240 CHECK(layer->removeKeyFrame(1));
241 REQUIRE(layer->getMaxKeyFramePosition() == 0);
243 for (
int i = 2; i <= 20; ++i)
245 CHECK(layer->addNewKeyFrameAt(i));
248 REQUIRE(layer->keyExists(20) ==
true);
249 layer->removeKeyFrame(20);
250 REQUIRE(layer->keyExists(20) ==
false);
252 REQUIRE(layer->keyExists(8) ==
true);
253 layer->removeKeyFrame(8);
254 REQUIRE(layer->keyExists(8) ==
false);
256 REQUIRE(layer->keyExists(19) ==
true);
257 layer->removeKeyFrame(19);
258 REQUIRE(layer->keyExists(19) ==
false);
259 REQUIRE(layer->getMaxKeyFramePosition() == 18);
261 layer->removeKeyFrame(18);
262 REQUIRE(layer->getMaxKeyFramePosition() == 17);
267 TEST_CASE(
"Layer::getPreviousKeyFramePosition()")
270 SECTION(
"KeyFrame 1")
272 Layer* layer = obj->addNewBitmapLayer();
273 CHECK(layer->keyFrameCount() == 1);
275 REQUIRE(layer->getPreviousKeyFramePosition(1) == 1);
276 REQUIRE(layer->getPreviousKeyFramePosition(10) == 1);
277 REQUIRE(layer->getPreviousKeyFramePosition(100) == 1);
278 REQUIRE(layer->getPreviousKeyFramePosition(1000) == 1);
281 SECTION(
"KeyFrame 1, 2, 8")
283 Layer* layer = obj->addNewBitmapLayer();
284 layer->addNewKeyFrameAt(2);
285 layer->addNewKeyFrameAt(8);
286 REQUIRE(layer->getPreviousKeyFramePosition(2) == 1);
287 REQUIRE(layer->getPreviousKeyFramePosition(8) == 2);
290 SECTION(
"KeyFrame 1, 15")
292 Layer* layer = obj->addNewBitmapLayer();
293 REQUIRE(layer->getPreviousKeyFramePosition(-5) == 1);
295 layer->addNewKeyFrameAt(15);
296 REQUIRE(layer->getPreviousKeyFramePosition(16) == 15);
297 REQUIRE(layer->getPreviousKeyFramePosition(17) == 15);
300 SECTION(
"KeyFrame 1, 10, Add 20 Remove 20")
302 Layer* layer = obj->addNewBitmapLayer();
303 layer->addNewKeyFrameAt(10);
304 layer->addNewKeyFrameAt(20);
306 REQUIRE(layer->getPreviousKeyFramePosition(21) == 20);
307 layer->removeKeyFrame(20);
308 REQUIRE(layer->getPreviousKeyFramePosition(21) == 10);
313 TEST_CASE(
"Layer::getNextKeyFramePosition()")
316 SECTION(
"KeyFrame 1, 5")
318 Layer* layer = obj->addNewBitmapLayer();
320 REQUIRE(layer->getNextKeyFramePosition(1) == 1);
321 REQUIRE(layer->getNextKeyFramePosition(10) == 1);
322 REQUIRE(layer->getNextKeyFramePosition(100) == 1);
324 CHECK(layer->addNewKeyFrameAt(5));
325 REQUIRE(layer->getNextKeyFramePosition(1) == 5);
326 REQUIRE(layer->getNextKeyFramePosition(2) == 5);
331 TEST_CASE(
"Layer::getPreviousFrameNumber()")
334 SECTION(
"KeyFrame 1")
336 Layer* layer = obj->addNewVectorLayer();
337 REQUIRE(layer->getPreviousFrameNumber(1,
true) == -1);
339 REQUIRE(layer->getPreviousFrameNumber(3,
true) == 1);
340 REQUIRE(layer->getPreviousFrameNumber(3,
false) == 2);