00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <boost/test/unit_test.hpp>
00020 #include "torc/physical/Factory.hpp"
00021 #include "torc/physical/Design.hpp"
00022
00023 namespace torc {
00024 namespace physical {
00025
00026 BOOST_AUTO_TEST_SUITE(physical)
00027
00028
00029
00030 BOOST_AUTO_TEST_CASE(DesignUnitTest) {
00031
00032
00033
00034
00035 std::string designName = "design";
00036 std::string deviceName = "device";
00037 std::string devicePackage = "package";
00038 std::string deviceSpeedGrade = "speed_grade";
00039 std::string xdlVersion = "xdl_version";
00040 std::string moduleName = "module1";
00041 DesignSharedPtr designPtr = Factory::newDesignPtr(designName, "", "", "", "");
00042 BOOST_REQUIRE(designPtr.get() != 0);
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053 BOOST_CHECK(designPtr->getDevice().empty());
00054 BOOST_CHECK(designPtr->getPackage().empty());
00055 BOOST_CHECK(designPtr->getSpeedGrade().empty());
00056 BOOST_CHECK(designPtr->getXdlVersion().empty());
00057 designPtr->setDevice(deviceName);
00058 designPtr->setPackage(devicePackage);
00059 designPtr->setSpeedGrade(deviceSpeedGrade);
00060 designPtr->setXdlVersion(xdlVersion);
00061 BOOST_CHECK_EQUAL(designPtr->getName(), designName);
00062 BOOST_CHECK_EQUAL(designPtr->getDevice(), deviceName);
00063 BOOST_CHECK_EQUAL(designPtr->getPackage(), devicePackage);
00064 BOOST_CHECK_EQUAL(designPtr->getSpeedGrade(), deviceSpeedGrade);
00065 BOOST_CHECK_EQUAL(designPtr->getXdlVersion(), xdlVersion);
00066
00067
00068
00069
00070
00071
00072 ModuleSharedPtr module1Ptr = Factory::newModulePtr(moduleName, "anchor1");
00073 ModuleSharedPtr module2aPtr = Factory::newModulePtr("module2", "anchor2");
00074 ModuleSharedPtr module2bPtr = Factory::newModulePtr("module2", "anchor2");
00075 BOOST_CHECK_EQUAL(designPtr->addModule(module1Ptr), true);
00076 BOOST_CHECK_EQUAL(designPtr->addModule(module2aPtr), true);
00077 BOOST_CHECK_EQUAL(designPtr->addModule(module2bPtr), false);
00078 BOOST_CHECK(designPtr->getModuleCount() == 2);
00079
00080
00081
00082
00083
00084
00085
00086 Design::ModuleSharedPtrConstIterator p = designPtr->modulesBegin();
00087 Design::ModuleSharedPtrConstIterator e = designPtr->modulesEnd();
00088 BOOST_CHECK(*p++ == module1Ptr);
00089 BOOST_CHECK(*p++ == module2aPtr);
00090 BOOST_CHECK(p == e);
00091 BOOST_CHECK(*(designPtr->findModule(moduleName)) == module1Ptr);
00092
00093
00094
00095
00096
00097
00098 BOOST_CHECK_EQUAL(designPtr->removeModule(module1Ptr), true);
00099 BOOST_CHECK_EQUAL(designPtr->removeModule(module2aPtr), true);
00100 BOOST_CHECK_EQUAL(designPtr->removeModule(module2bPtr), false);
00101 BOOST_CHECK(designPtr->getModuleCount() == 0);
00102 }
00103
00104 BOOST_AUTO_TEST_SUITE_END()
00105
00106 }
00107 }