44 {
45 EXPECT_FALSE(heap->empty());
46 EXPECT_EQ(heap->size(), v->size());
47
48
49
50 std::sort(v->begin(), v->end());
51
52 EXPECT_LT((*v)[0].key(), v->back().key());
53 for (unsigned i = 0; i < v->size(); ++i) {
54 EXPECT_EQ((*v)[i].key(), heap->PeekTop().key());
55
56 if (i + 1 < v->size() && (*v)[i + 1].key() == (*v)[i].key()) {
57 while (i + 1 < v->size() && (*v)[i + 1].key() == (*v)[i].key()) {
58 heap->Pop(nullptr);
59 ++i;
60 EXPECT_FALSE(heap->empty());
61 EXPECT_EQ((*v)[i].key(), heap->PeekTop().key());
62 }
63 } else {
64
65 EXPECT_EQ((*v)[i].data(), heap->PeekTop().data());
66 }
67 EXPECT_FALSE(heap->empty());
68 EXPECT_TRUE(heap->Pop(nullptr));
69 }
70 EXPECT_TRUE(heap->empty());
71 }