| 4 | #include "gtest/gtest.h" |
| 5 | |
| 6 | USING_QPANDA |
| 7 | |
| 8 | TEST(OriginQubitPoolTest, test) { |
| 9 | auto qpool = OriginQubitPool::get_instance(); |
| 10 | qpool->set_capacity(20); |
| 11 | EXPECT_EQ(20, qpool->get_capacity()); |
| 12 | |
| 13 | Qubit* q = qpool->allocateQubit(); |
| 14 | EXPECT_TRUE(q->getOccupancy()); |
| 15 | |
| 16 | Qubit* q1 = qpool->allocateQubitThroughPhyAddress(1); |
| 17 | EXPECT_EQ(1, q1->get_phy_addr()); |
| 18 | PhysicalQubit* py = q1->getPhysicalQubitPtr(); |
| 19 | py->setQubitAddr(1); |
| 20 | EXPECT_EQ(1, py->getQubitAddr()); |
| 21 | py->setOccupancy(true); |
| 22 | EXPECT_TRUE(py->getOccupancy()); |
| 23 | |
| 24 | Qubit* q2 = qpool->allocateQubitThroughVirAddress(2); |
| 25 | EXPECT_TRUE(q2->getOccupancy()); |
| 26 | PhysicalQubit* py1 = q2->getPhysicalQubitPtr(); |
| 27 | py1->setQubitAddr(1); |
| 28 | EXPECT_EQ(1, py1->getQubitAddr()); |
| 29 | py1->setOccupancy(true); |
| 30 | EXPECT_TRUE(py1->getOccupancy()); |
| 31 | qpool->qFreeAll(); |
| 32 | } |
| 33 | |
| 34 | |
| 35 | TEST(QubitPoolCase,test) { |