MCPcopy Create free account
hub / github.com/PKU-IDEA/OpenPARF / testSample1

Method testSample1

unittest/database/database.cpp:24–114  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22class DatabaseTest : public ::testing::Test {
23public:
24 void testSample1() {
25 openparf::database::Database db(0);
26 db.readBookshelf(test_dir + "/" + "../../benchmarks/sample1/design.aux");
27
28 std::cout << db.design() << std::endl;
29 // std::cout << db << std::endl;
30
31 auto const &design = db.design();
32 auto const &layout = db.layout();
33 auto const &site_map = layout.siteMap();
34 for (auto const &site : site_map) {
35 ASSERT_EQ(
36 &site,
37 &site_map.at(site.siteMapId().x(), site.siteMapId().y()).value());
38 if (layout.siteType(site).name() == "SLICE" ||
39 layout.siteType(site).name() == "SLICEL" ||
40 layout.siteType(site).name() == "SLICEM") {
41 ASSERT_EQ(site.bbox().width(), 1);
42 ASSERT_EQ(site.bbox().height(), 1);
43 } else if (layout.siteType(site).name() == "DSP") {
44 ASSERT_EQ(site.bbox().width(), 1);
45 if ((site.siteMapId().y() % 5) == 0) {
46 ASSERT_EQ(site.bbox().height(), 2);
47 } else {
48 ASSERT_EQ(site.bbox().height(), 3);
49 }
50 } else if (layout.siteType(site).name() == "BRAM") {
51 ASSERT_EQ(site.bbox().width(), 1);
52 ASSERT_EQ(site.bbox().height(), 5);
53 } else if (layout.siteType(site).name() == "IO") {
54 ASSERT_EQ(site.bbox().width(), 1);
55 auto xs = {0, 67, 104, 167};
56 if (std::any_of(xs.begin(), xs.end(),
57 [&](int x) { return x == site.siteMapId().x(); })) {
58 ASSERT_EQ(site.bbox().height(), 60);
59 } else {
60 ASSERT_EQ(site.bbox().height(), 30);
61 }
62 } else {
63 ASSERT_EQ(layout.siteType(site).name(), "SLICE");
64 }
65 }
66
67 auto const &site_type_map = layout.siteTypeMap();
68 auto const &resource_map = layout.resourceMap();
69 ASSERT_EQ(site_type_map.siteType("SLICE")->resourceCapacity(
70 resource_map.resourceId("LUT")),
71 16);
72 ASSERT_EQ(site_type_map.siteType("SLICE")->resourceCapacity(
73 resource_map.resourceId("FF")),
74 16);
75 ASSERT_EQ(site_type_map.siteType("SLICE")->resourceCapacity(
76 resource_map.resourceId("CARRY8")),
77 1);
78 ASSERT_EQ(site_type_map.siteType("DSP")->resourceCapacity(
79 resource_map.resourceId("DSP48E2")),
80 1);
81 ASSERT_EQ(site_type_map.siteType("BRAM")->resourceCapacity(

Callers

nothing calls this directly

Calls 14

readBookshelfMethod · 0.80
siteTypeMethod · 0.80
resourceCapacityMethod · 0.80
resourceIdMethod · 0.80
valueMethod · 0.45
atMethod · 0.45
xMethod · 0.45
yMethod · 0.45
nameMethod · 0.45
widthMethod · 0.45
heightMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected