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/Module.hpp"
00022
00023 namespace torc {
00024 namespace physical {
00025
00026 BOOST_AUTO_TEST_SUITE(physical)
00027
00028
00029 BOOST_AUTO_TEST_CASE(ModuleUnitTest) {
00030 std::string port = "name1";
00031
00032 InstanceSharedPtr instancePtr = Factory::newInstancePtr("name", "type", "tile", "site");
00033 PortSharedPtr port1Ptr = Factory::newPortPtr(port, instancePtr, "pin");
00034 PortSharedPtr port2aPtr = Factory::newPortPtr("name2", instancePtr, "pin");
00035 PortSharedPtr port2bPtr = Factory::newPortPtr("name2", instancePtr, "pin");
00036
00037
00038
00039 std::string name = "name";
00040 std::string anchor = "anchor";
00041 ModuleSharedPtr module1Ptr = Factory::newModulePtr(name, "");
00042 ModuleSharedPtr module2Ptr = Factory::newModulePtr(name, anchor);
00043 BOOST_REQUIRE(module1Ptr != 0);
00044 BOOST_REQUIRE(module2Ptr != 0);
00045
00046
00047
00048
00049 BOOST_CHECK(module1Ptr->getAnchor().empty());
00050 module1Ptr->setAnchor(anchor);
00051 BOOST_CHECK(module1Ptr->getAnchor() == anchor);
00052
00053
00054
00055
00056
00057 BOOST_CHECK_EQUAL(module1Ptr->addPort(port1Ptr), true);
00058 BOOST_CHECK_EQUAL(module1Ptr->addPort(port2aPtr), true);
00059 BOOST_CHECK_EQUAL(module1Ptr->addPort(port2bPtr), false);
00060 BOOST_CHECK(module1Ptr->getPortCount() == 2);
00061
00062
00063
00064
00065
00066
00067 Module::PortSharedPtrConstIterator p = module1Ptr->portsBegin();
00068 Module::PortSharedPtrConstIterator e = module1Ptr->portsEnd();
00069 BOOST_CHECK(*p++ == port1Ptr);
00070 BOOST_CHECK(*p++ == port2aPtr);
00071 BOOST_CHECK(p == e);
00072 BOOST_CHECK(*(module1Ptr->findPort(port)) == port1Ptr);
00073
00074
00075
00076
00077
00078 BOOST_CHECK_EQUAL(module1Ptr->removePort(port1Ptr), true);
00079 BOOST_CHECK_EQUAL(module1Ptr->removePort(port2aPtr), true);
00080 BOOST_CHECK_EQUAL(module1Ptr->removePort(port2bPtr), false);
00081 BOOST_CHECK(module1Ptr->getPortCount() == 0);
00082
00083
00084
00085 BOOST_CHECK(*module1Ptr == *module2Ptr);
00086 }
00087
00088 BOOST_AUTO_TEST_SUITE_END()
00089
00090 }
00091 }