]> git.seodisparate.com - UDPConnection/commitdiff
Add more tests to UnitTest for TSLQueue
authorStephen Seo <seo.disparate@gmail.com>
Wed, 6 Nov 2019 03:54:03 +0000 (12:54 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Wed, 6 Nov 2019 03:54:03 +0000 (12:54 +0900)
cpp_impl/src/test/TestTSLQueue.cpp

index 9fab4a40e812db63dfc8c1f44874db8d527ccf2e..adffa5003a066808dfe1441ab2491d91b1516487 100644 (file)
@@ -188,4 +188,49 @@ TEST(TSLQueue, Iterator) {
         }
         EXPECT_TRUE(q.pop());
     }
+
+    // remove from start
+    q.push(0);
+    q.push(1);
+    q.push(2);
+    q.push(3);
+    {
+        auto iter = q.begin();
+        EXPECT_TRUE(iter.remove());
+    }
+    i = 1;
+    while(!q.empty()) {
+        op = q.top();
+        EXPECT_TRUE(op.has_value());
+        EXPECT_EQ(i++, op.value());
+        EXPECT_TRUE(q.pop());
+    }
+
+    // remove from end
+    q.push(0);
+    q.push(1);
+    q.push(2);
+    q.push(3);
+    {
+        auto iter = q.begin();
+        while(true) {
+            EXPECT_TRUE(iter.next());
+            op = iter.current();
+            EXPECT_TRUE(op.has_value());
+            if(op.value() == 3) {
+                EXPECT_FALSE(iter.remove());
+                break;
+            }
+        }
+    }
+    i = 0;
+    while(!q.empty()) {
+        op = q.top();
+        EXPECT_TRUE(op.has_value());
+        EXPECT_EQ(i++, op.value());
+        EXPECT_TRUE(q.pop());
+        if(i == 3) {
+            EXPECT_TRUE(q.empty());
+        }
+    }
 }