#define BOOST_TEST_MODULE TestGuide #include <boost/test/included/unit_test.hpp> #include "db.h" #include "helper.cpp" using namespace odb; using namespace std; BOOST_AUTO_TEST_SUITE(test_suite) BOOST_AUTO_TEST_CASE(test_default) { dbDatabase* db; db = createSimpleDB(); auto tech = db->getTech(); auto block = db->getChip()->getBlock(); auto layer = tech->findLayer("L1"); auto net = dbNet::create(block, "n1"); dbGuide::create(net, layer, {0,0,100,100}); dbGuide::create(net, layer, {0, 100, 100, 200}); net->getGuides().reverse(); BOOST_TEST(net->getGuides().size() == 2); dbGuide* guide = (dbGuide*) *net->getGuides().begin(); BOOST_TEST(guide->getNet() == net); BOOST_TEST(guide->getLayer() == layer); BOOST_TEST(guide->getBox() == Rect(0, 0, 100, 100)); dbGuide::destroy(guide); BOOST_TEST(net->getGuides().size() == 1); } BOOST_AUTO_TEST_CASE(test_clear_guides) { dbDatabase* db; db = createSimpleDB(); auto tech = db->getTech(); auto block = db->getChip()->getBlock(); auto layer = tech->findLayer("L1"); auto net = dbNet::create(block, "n1"); dbGuide::create(net, layer, {0, 100, 100, 200}); dbGuide::create(net, layer, {0, 100, 100, 200}); dbGuide::create(net, layer, {0, 100, 100, 200}); BOOST_TEST(net->getGuides().size() == 3); net->clearGuides(); BOOST_TEST(net->getGuides().size() == 0); } BOOST_AUTO_TEST_SUITE_END()