EXPECT_EQ(6 - i, queue.sizeGuess());
}
}
+
+TEST(PriorityMPMCQueue, TestReadWithPriority) {
+ PriorityMPMCQueue<size_t> queue(3, 10);
+ EXPECT_TRUE(queue.isEmpty());
+ EXPECT_EQ(3, queue.getNumPriorities());
+
+ queue.writeWithPriority(2, 2);
+ queue.writeWithPriority(1, 1);
+ queue.writeWithPriority(0, 0);
+
+ EXPECT_FALSE(queue.isEmpty());
+ EXPECT_EQ(3, queue.size());
+ EXPECT_EQ(3, queue.sizeGuess());
+
+ size_t item;
+ for (int i = 0; i < 3; i++) {
+ EXPECT_TRUE(queue.readWithPriority(item, i));
+ EXPECT_EQ(i, item);
+ EXPECT_FALSE(queue.readWithPriority(item, i));
+ }
+}