Fixed unit tests

This commit is contained in:
Matthias Koefferlein 2025-08-02 15:13:23 +02:00
parent d1e1f626c7
commit f9ea9af466
4 changed files with 42 additions and 1 deletions

View File

@ -1663,14 +1663,17 @@ TEST(40_BoolWithProperties)
db::RecursiveShapeIterator si1 (ly, top_cell, l1);
si1.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r1 (si1);
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);
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);
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));
@ -1802,6 +1805,7 @@ TEST(41_EdgesWithProperties)
db::RecursiveShapeIterator si2 (ly, top_cell, l2);
si2.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r2wp (si2);
r2wp.set_join_properties_on_merge (false);
db::Region r2wp_nomerge = r2wp;
r2wp_nomerge.set_merged_semantics (false);
@ -1846,12 +1850,14 @@ TEST(42_DRCWithProperties)
db::RecursiveShapeIterator si1 (ly, top_cell, l1);
si1.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r1 (si1);
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);
r2.set_join_properties_on_merge (false);
db::Region r2_nomerge (r2);
r2_nomerge.set_merged_semantics (false);
@ -2000,10 +2006,12 @@ TEST(44_SizeWithProperties)
db::RecursiveShapeIterator si1 (ly, top_cell, l1);
si1.apply_property_translator (db::PropertiesTranslator::make_pass_all ());
db::Region r1 (si1);
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);
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));
@ -2017,6 +2025,10 @@ TEST(44_SizeWithProperties)
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (20, 0)), r2.sized (200));
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (21, 0)), r2.sized (250, 50, 2));
r2.set_join_properties_on_merge (true);
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (30, 0)), r2.sized (200));
target.insert (target_top_cell_index, target.get_layer (db::LayerProperties (31, 0)), r2.sized (250, 50, 2));
CHECKPOINT();
db::compare_layouts (_this, target, tl::testdata () + "/algo/flat_region_au44.gds");
}

View File

@ -2069,11 +2069,17 @@ TEST(50_PropertiesFlat)
"{}:(10,20;10,220;110,220;110,20)"
);
r.set_join_properties_on_merge (false);
EXPECT_EQ (sip2s (r.begin_merged ()),
"{id=>1}:(1,2;1,202;101,202;101,2)\n"
"{id=>42}:(11,12;11,212;111,212;111,12)\n"
"{}:(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"
);
r.set_join_properties_on_merge (true);
EXPECT_EQ (sip2s (r.begin_merged ()),
"{id=>42}:(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)"
);
}
// "+" operator with properties (issue #1373)
@ -2165,11 +2171,17 @@ TEST(51_PropertiesFlatFromLayout)
"{}:(10,20;10,220;110,220;110,20)"
);
r.set_join_properties_on_merge (false);
EXPECT_EQ (sip2s (r.begin_merged ()),
"{id=>1}:(1,2;1,202;101,202;101,2)\n"
"{id=>42}:(11,12;11,212;111,212;111,12)\n"
"{}:(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0)"
);
r.set_join_properties_on_merge (true);
EXPECT_EQ (sip2s (r.begin_merged ()),
"{id=>42}:(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)"
);
}
TEST(52_PropertiesDeep)

Binary file not shown.

View File

@ -1636,8 +1636,13 @@ class DBRegion_TestClass < TestBase
r.insert(RBA::Box::new(10, 20, 110, 220))
s = r.each.collect(&:to_s).join(";")
assert_equal(s, "(10,20;10,220;110,220;110,20) props={};(0,0;0,200;100,200;100,0) props={1=>one}")
s = r.each_merged.collect(&:to_s).join(";")
rr = r.dup
rr.join_properties_on_merge = false
assert_equal(rr.join_properties_on_merge, false)
s = rr.each_merged.collect(&:to_s).join(";")
assert_equal(s, "(10,20;10,220;110,220;110,20) props={};(0,0;0,200;100,200;100,0) props={1=>one}")
s = r.each_merged.collect(&:to_s).join(";")
assert_equal(s, "(0,0;0,200;10,200;10,220;110,220;110,20;100,20;100,0) props={1=>one}")
r = RBA::Region::new
r.insert(RBA::BoxWithProperties::new(RBA::Box::new(0, 0, 100, 200), { 1 => "one" }))
@ -1654,6 +1659,8 @@ class DBRegion_TestClass < TestBase
r.insert(RBA::PolygonWithProperties::new(RBA::Box::new(0, 0, 100, 200), { "one" => -1 }))
r.insert(RBA::PolygonWithProperties::new(RBA::Box::new(1, 1, 101, 201), { "one" => 17 }))
r.insert(RBA::PolygonWithProperties::new(RBA::Box::new(2, 2, 102, 202), { "one" => 42 }))
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, "")
@ -1666,6 +1673,16 @@ class DBRegion_TestClass < TestBase
assert_equal(csort(r.filtered(RBA::PolygonFilter::property_glob("one", "1*")).to_s), csort("(1,1;1,201;101,201;101,1){one=>17}"))
assert_equal(csort(r.filtered(RBA::PolygonFilter::property_glob("one", "1*", true)).to_s), csort("(2,2;2,202;102,202;102,2){one=>42};(0,0;0,200;100,200;100,0){one=>-1}"))
rr = r.dup
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}"))
# deep regions
ly = RBA::Layout::new
top = ly.create_cell("TOP")
l1 = ly.layer(1, 0)