[aseprite] 29/134: Add some DocRangeOps.MoveCels tests

Tobias Hansen thansen at moszumanska.debian.org
Sat Mar 14 17:09:58 UTC 2015


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 58b89ded4ad751f8cbb96591e691404ae3cf449a
Author: David Capello <davidcapello at gmail.com>
Date:   Sat Nov 1 15:39:00 2014 -0300

    Add some DocRangeOps.MoveCels tests
---
 src/app/document_range_tests.cpp | 77 +++++++++++++++++++++++++++++++++-------
 1 file changed, 65 insertions(+), 12 deletions(-)

diff --git a/src/app/document_range_tests.cpp b/src/app/document_range_tests.cpp
index 83931a2..2c88f3d 100644
--- a/src/app/document_range_tests.cpp
+++ b/src/app/document_range_tests.cpp
@@ -78,6 +78,12 @@ typedef base::UniquePtr<Document> DocumentPtr;
   EXPECT_TRUE(expect_frame(f, 5));              \
   EXPECT_TRUE(expect_frame(g, 6));
 
+#define EXPECT_CEL(y, x, v, u)                  \
+  EXPECT_TRUE(expect_cel(y, x, v, u));
+
+#define EXPECT_EMPTY_CEL(y, x)                  \
+  EXPECT_TRUE(expect_empty_cel(y, x));
+
 class DocRangeOps : public ::testing::Test {
 public:
   DocRangeOps() {
@@ -147,19 +153,11 @@ protected:
 
   bool expect_layer_frame(int expected_layer, int expected_frame, int layer, int frame) {
     if (frame >= 0) {
-      color_t expected_color = white;
-
-      color_t color = get_pixel(
-        static_cast<LayerImage*>(sprite->indexToLayer(LayerIndex(layer)))
-          ->getCel(FrameNumber(frame))->image(),
-        expected_layer, expected_frame);
+      if (!expect_cel(expected_layer, expected_frame, layer, frame))
+        return false;
 
-      EXPECT_EQ(expected_color, color);
       EXPECT_EQ((expected_frame+1), sprite->getFrameDuration(FrameNumber(frame)));
-
-      return
-        (expected_color == color
-          && (expected_frame+1) == sprite->getFrameDuration(FrameNumber(frame)));
+      return ((expected_frame+1) == sprite->getFrameDuration(FrameNumber(frame)));
     }
 
     if (layer >= 0) {
@@ -173,6 +171,27 @@ protected:
     return true;
   }
 
+  bool expect_cel(int expected_layer, int expected_frame, int layer, int frame) {
+    color_t expected_color = white;
+
+    color_t color = get_pixel(
+      static_cast<LayerImage*>(sprite->indexToLayer(LayerIndex(layer)))
+      ->getCel(FrameNumber(frame))->image(),
+      expected_layer, expected_frame);
+
+    EXPECT_EQ(expected_color, color);
+
+    return (expected_color == color);
+  }
+
+  bool expect_empty_cel(int layer, int frame) {
+    Cel* cel = static_cast<LayerImage*>(sprite->indexToLayer(LayerIndex(layer)))
+      ->getCel(FrameNumber(frame));
+
+    EXPECT_EQ(NULL, cel);
+    return (cel == NULL);
+  }
+
   TestContext ctx;
   DocumentPtr doc;
   Sprite* sprite;
@@ -222,6 +241,10 @@ inline DocumentRange frames_range(int frame) {
   return range(0, frame, 0, frame, DocumentRange::kFrames);
 }
 
+inline DocumentRange cels_range(int fromLayer, int fromFrNum, int toLayer, int toFrNum) {
+  return range(fromLayer, fromFrNum, toLayer, toFrNum, DocumentRange::kCels);
+}
+
 TEST_F(DocRangeOps, MoveLayersNoOp) {
   // Move one layer to the same place
 
@@ -679,7 +702,37 @@ TEST_F(DocRangeOps, MoveFrames) {
 }
 
 TEST_F(DocRangeOps, MoveCels) {
-  // TODO
+  DocumentRangePlace ignore = kDocumentRangeBefore;
+
+  move_range(doc,
+    cels_range(0, 0, 0, 0),
+    cels_range(0, 1, 0, 1), ignore);
+  EXPECT_CEL(0, 0, 0, 1);
+  EXPECT_EMPTY_CEL(0, 0);
+  doc->getUndo()->doUndo();
+  EXPECT_CEL(0, 0, 0, 0);
+
+  move_range(doc,
+    cels_range(0, 0, 0, 1),
+    cels_range(0, 2, 0, 3), ignore);
+  EXPECT_CEL(0, 0, 0, 2);
+  EXPECT_CEL(0, 1, 0, 3);
+  EXPECT_EMPTY_CEL(0, 0);
+  EXPECT_EMPTY_CEL(0, 1);
+  doc->getUndo()->doUndo();
+
+  move_range(doc,
+    cels_range(0, 0, 0, 3),
+    cels_range(1, 0, 1, 3), ignore);
+  EXPECT_CEL(0, 0, 1, 0);
+  EXPECT_CEL(0, 1, 1, 1);
+  EXPECT_CEL(0, 2, 1, 2);
+  EXPECT_CEL(0, 3, 1, 3);
+  EXPECT_EMPTY_CEL(0, 0);
+  EXPECT_EMPTY_CEL(0, 1);
+  EXPECT_EMPTY_CEL(0, 2);
+  EXPECT_EMPTY_CEL(0, 3);
+  doc->getUndo()->doUndo();
 }
 
 TEST_F(DocRangeOps, CopyLayers) {

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list