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/architecture/Package.hpp"
00021 #include "torc/architecture/DDB.hpp"
00022
00023 namespace torc {
00024 namespace architecture {
00025
00026 BOOST_AUTO_TEST_SUITE(architecture)
00027
00028
00029 BOOST_AUTO_TEST_CASE(PackageUnitTest) {
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 int index = 0;
00041 std::string name1("pad1");
00042 std::string name2("pad2");
00043 std::string name3("pad3");
00044 Pad pad1(xilinx::SiteIndex(), name1, xilinx::SiteFlags());
00045 Pad pad2(xilinx::SiteIndex(), name2, xilinx::SiteFlags());
00046 Pad pad3(xilinx::SiteIndex(), name3, xilinx::SiteFlags());
00047 std::string name("name");
00048 Package package1(name);
00049 PadArray& pads1 = package1.getPads();
00050 pads1.setSize(3);
00051 package1.mPadNameToPadIndex[name1] = xilinx::PadIndex(index);
00052 const_cast<Pad&>(pads1[index++]) = pad1;
00053 package1.mPadNameToPadIndex[name2] = xilinx::PadIndex(index);
00054 const_cast<Pad&>(pads1[index++]) = pad2;
00055 package1.mPadNameToPadIndex[name3] = xilinx::PadIndex(index);
00056 const_cast<Pad&>(pads1[index++]) = pad3;
00057 BOOST_CHECK_EQUAL(package1.getName(), name);
00058 const PadArray& pads2 = package1.getPads();
00059 index = 0;
00060 BOOST_CHECK_EQUAL(pads2[index++].getName(), pad1.getName());
00061 BOOST_CHECK_EQUAL(pads2[index++].getName(), pad2.getName());
00062 BOOST_CHECK_EQUAL(pads2[index++].getName(), pad3.getName());
00063 BOOST_CHECK_EQUAL(package1.findPadIndexByName(name1), xilinx::PadIndex(0));
00064 BOOST_CHECK_EQUAL(package1.findPadIndexByName(name2), xilinx::PadIndex(1));
00065 BOOST_CHECK_EQUAL(package1.findPadIndexByName(name3), xilinx::PadIndex(2));
00066
00067
00068
00069
00070 Package package2;
00071 BOOST_CHECK_EQUAL(package2.getName(), "");
00072 BOOST_CHECK_EQUAL(package2.getPads().getSize(), 0u);
00073 }
00074
00075 BOOST_AUTO_TEST_SUITE_END()
00076
00077 }
00078 }