aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-02-22 19:56:18 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-02-22 19:56:18 +0000
commitf9e71320758a4d3a94b58676abad7534d0b160bf (patch)
treedad0b32289bb2d4a31ada4b65418d4787be98c80
parentba9d628b1b7aa13ddd59499624f672c6443b5f74 (diff)
add tests for pushing on back as well as front
git-svn-id: http://skia.googlecode.com/svn/trunk@827 2bbb7eff-a529-9590-31e7-b0007b416f81
-rw-r--r--tests/DequeTest.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/DequeTest.cpp b/tests/DequeTest.cpp
index 3b8991adda..e74fd2802f 100644
--- a/tests/DequeTest.cpp
+++ b/tests/DequeTest.cpp
@@ -39,6 +39,8 @@ static void TestDeque(skiatest::Reporter* reporter) {
SkDeque deq(sizeof(int));
int i;
+ // test pushing on the front
+
assert_count(reporter, deq, 0);
for (i = 1; i <= 10; i++) {
*(int*)deq.push_front() = i;
@@ -56,6 +58,38 @@ static void TestDeque(skiatest::Reporter* reporter) {
deq.pop_front();
}
assert_count(reporter, deq, 0);
+
+ // now test pushing on the back
+
+ for (i = 10; i >= 1; --i) {
+ *(int*)deq.push_back() = i;
+ }
+ assert_count(reporter, deq, 10);
+ assert_f2biter(reporter, deq, 10, 1);
+
+ for (i = 0; i < 5; i++) {
+ deq.pop_back();
+ }
+ assert_count(reporter, deq, 5);
+ assert_f2biter(reporter, deq, 10, 6);
+
+ for (i = 0; i < 5; i++) {
+ deq.pop_back();
+ }
+ assert_count(reporter, deq, 0);
+
+ // now tests pushing/poping on both ends
+
+ *(int*)deq.push_front() = 5;
+ *(int*)deq.push_back() = 4;
+ *(int*)deq.push_front() = 6;
+ *(int*)deq.push_back() = 3;
+ *(int*)deq.push_front() = 7;
+ *(int*)deq.push_back() = 2;
+ *(int*)deq.push_front() = 8;
+ *(int*)deq.push_back() = 1;
+ assert_count(reporter, deq, 8);
+ assert_f2biter(reporter, deq, 8, 1);
}
#include "TestClassDef.h"