Fixing unit tests

This commit is contained in:
Matthias Koefferlein 2025-07-31 23:54:55 +02:00
parent 37f9feaadd
commit 786c60a28e
4 changed files with 40 additions and 0 deletions

View File

@ -2151,14 +2151,19 @@ TEST(40_BoolWithProperties)
db::RecursiveShapeIterator si1 (ly, top_cell, l1);
si1.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r1 (si1, dss);
EXPECT_EQ (r1.join_properties_on_merge (), true);
r1.set_join_properties_on_merge (false);
EXPECT_EQ (r1.join_properties_on_merge (), false);
db::RecursiveShapeIterator si2 (ly, top_cell, l2);
si2.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r2 (si2, dss);
r2.set_join_properties_on_merge (false);
db::RecursiveShapeIterator si3 (ly, top_cell, l3);
si3.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r3 (si3, dss);
r3.set_join_properties_on_merge (false);
db::Layout target;
unsigned int target_top_cell_index = target.add_cell (ly.cell_name (top_cell_index));
@ -2169,6 +2174,9 @@ TEST(40_BoolWithProperties)
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (10, 0)), r1.merged ());
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (11, 0)), r2.merged ());
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (12, 0)), r1.merged (false, 0, true));
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (13, 0)), r2.merged (false, 0, true));
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (20, 0)), r1 & r2);
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (21, 0)), r1.bool_and (r2, db::NoPropertyConstraint));
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (22, 0)), r1.bool_and (r2, db::SamePropertiesConstraint));
@ -2307,12 +2315,14 @@ TEST(42_DRCWithProperties)
db::RecursiveShapeIterator si1 (ly, top_cell, l1);
si1.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r1 (si1, dss);
r1.set_join_properties_on_merge (false);
db::Region r1_nomerge (r1);
r1_nomerge.set_merged_semantics (false);
db::RecursiveShapeIterator si2 (ly, top_cell, l2);
si2.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r2 (si2, dss);
r2.set_join_properties_on_merge (false);
db::Region r2_nomerge (r2);
r2_nomerge.set_merged_semantics (false);
@ -2465,10 +2475,12 @@ TEST(44_SizeWithProperties)
db::RecursiveShapeIterator si1 (ly, top_cell, l1);
si1.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r1 (si1, dss);
r1.set_join_properties_on_merge (false);
db::RecursiveShapeIterator si2 (ly, top_cell, l2);
si2.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r2 (si2, dss);
r2.set_join_properties_on_merge (false);
db::Layout target;
unsigned int target_top_cell_index = target.add_cell (ly.cell_name (top_cell_index));

View File

@ -2214,6 +2214,7 @@ TEST(52_PropertiesDeep)
++s;
EXPECT_EQ (s.at_end (), true);
r.set_join_properties_on_merge (false);
s = r.begin_merged ();
EXPECT_EQ (s.at_end (), false);
EXPECT_EQ (s.prop_id (), db::properties_id_type (0));
@ -2234,6 +2235,16 @@ TEST(52_PropertiesDeep)
++s;
EXPECT_EQ (s.at_end (), true);
r.set_join_properties_on_merge (true);
s = r.begin_merged ();
EXPECT_EQ (s.at_end (), false);
// polygons are merged with "maximum" property value
EXPECT_EQ (db::PolygonWithProperties (*s, s.prop_id ()).to_string (), "(0,0;0,200;1,200;1,202;10,202;10,220;110,220;110,212;111,212;111,12;101,12;101,2;100,2;100,0) props={id=>42}");
++s;
EXPECT_EQ (s.at_end (), true);
}
TEST(53_PropertiesDeepFromLayout)
@ -2345,6 +2356,7 @@ TEST(53_PropertiesDeepFromLayout)
++s;
EXPECT_EQ (s.at_end (), true);
r.set_join_properties_on_merge (false);
s = r.begin_merged ();
EXPECT_EQ (s.at_end (), false);
EXPECT_EQ (s.prop_id (), db::properties_id_type (0));
@ -2365,6 +2377,16 @@ TEST(53_PropertiesDeepFromLayout)
++s;
EXPECT_EQ (s.at_end (), true);
r.set_join_properties_on_merge (true);
s = r.begin_merged ();
EXPECT_EQ (s.at_end (), false);
// polygons are merged with "maximum" property value
EXPECT_EQ (db::PolygonWithProperties (*s, s.prop_id ()).to_string (), "(0,0;0,200;1,200;1,202;10,202;10,220;110,220;110,212;111,212;111,12;101,12;101,2;100,2;100,0) props={VALUE=>42}");
++s;
EXPECT_EQ (s.at_end (), true);
}
TEST(54_PropertiesFilterDeep)

Binary file not shown.

View File

@ -1679,6 +1679,8 @@ class DBRegion_TestClass < TestBase
iter = top.begin_shapes_rec(l1)
iter.enable_properties()
r = RBA::Region::new(iter, dss)
r.join_properties_on_merge = false
assert_equal(r.join_properties_on_merge, false)
assert_equal(r.filtered(RBA::PolygonFilter::property_filter("one", 11)).to_s, "")
assert_equal(r.filtered(RBA::PolygonFilter::property_filter("two", 17)).to_s, "")
@ -1695,6 +1697,10 @@ class DBRegion_TestClass < TestBase
rr.filter(RBA::PolygonFilter::property_filter("one", 17))
assert_equal(csort(rr.to_s), csort("(1,1;1,201;101,201;101,1){one=>17}"))
r.join_properties_on_merge = true
assert_equal(r.join_properties_on_merge, true)
assert_equal(csort(r.filtered(RBA::PolygonFilter::property_filter("one", 42)).to_s), csort("(0,0;0,200;1,200;1,201;2,201;2,202;102,202;102,2;101,2;101,1;100,1;100,0){one=>42}"))
dss._destroy
end