MCPcopy Create free account
hub / github.com/LibreSprite/LibreSprite / TEST

Function TEST

src/doc/sprite_tests.cpp:23–102  ·  view source on GitHub ↗

lay1 = A _ B lay2 = C D E

Source from the content-addressed store, hash-verified

21// lay1 = A _ B
22// lay2 = C D E
23TEST(Sprite, CelsRange)
24{
25 Sprite* spr = new Sprite(IMAGE_RGB, 32, 32, 256);
26 spr->setTotalFrames(3);
27
28 LayerImage* lay1 = new LayerImage(spr);
29 LayerImage* lay2 = new LayerImage(spr);
30 spr->folder()->addLayer(lay1);
31 spr->folder()->addLayer(lay2);
32
33 ImageRef imgA(Image::create(IMAGE_RGB, 32, 32));
34 Cel* celA = new Cel(frame_t(0), imgA);
35 Cel* celB = Cel::createLink(celA);
36 celB->setFrame(frame_t(2));
37 lay1->addCel(celA);
38 lay1->addCel(celB);
39
40 ImageRef imgC(Image::create(IMAGE_RGB, 32, 32));
41 Cel* celC = new Cel(frame_t(0), imgC);
42 Cel* celD = Cel::createCopy(celC);
43 Cel* celE = Cel::createLink(celD);
44 celD->setFrame(frame_t(1));
45 celE->setFrame(frame_t(2));
46 lay2->addCel(celC);
47 lay2->addCel(celD);
48 lay2->addCel(celE);
49
50 int i = 0;
51 for (Cel* cel : spr->cels()) {
52 switch (i) {
53 case 0: EXPECT_EQ(cel, celA); break;
54 case 1: EXPECT_EQ(cel, celB); break;
55 case 2: EXPECT_EQ(cel, celC); break;
56 case 3: EXPECT_EQ(cel, celD); break;
57 case 4: EXPECT_EQ(cel, celE); break;
58 }
59 ++i;
60 }
61 EXPECT_EQ(5, i);
62
63 i = 0;
64 for (Cel* cel : spr->uniqueCels()) {
65 switch (i) {
66 case 0: EXPECT_EQ(cel, celA); break;
67 case 1: EXPECT_EQ(cel, celC); break;
68 case 2: EXPECT_EQ(cel, celD); break;
69 }
70 ++i;
71 }
72 EXPECT_EQ(3, i);
73
74 i = 0;
75 for (Cel* cel : spr->cels(frame_t(0))) {
76 switch (i) {
77 case 0: EXPECT_EQ(cel, celA); break;
78 case 1: EXPECT_EQ(cel, celC); break;
79 }
80 ++i;

Callers

nothing calls this directly

Calls 7

folderMethod · 0.80
celsMethod · 0.80
uniqueCelsMethod · 0.80
setTotalFramesMethod · 0.45
addLayerMethod · 0.45
setFrameMethod · 0.45
addCelMethod · 0.45

Tested by

no test coverage detected