From 91de3709015e583eb83a2cd294c5a13a7537f39c Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Wed, 16 Dec 2020 23:02:01 +0100 Subject: [PATCH] WIP: bugfix, RBA tests. --- src/db/db/dbStreamLayers.cc | 8 +++--- testdata/ruby/dbLayout.rb | 53 +++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 4 deletions(-) diff --git a/src/db/db/dbStreamLayers.cc b/src/db/db/dbStreamLayers.cc index e507ddea9..f86db8273 100644 --- a/src/db/db/dbStreamLayers.cc +++ b/src/db/db/dbStreamLayers.cc @@ -502,10 +502,10 @@ void LayerMap::mmap (const LayerProperties &f, unsigned int l) { if (f.name.empty () || is_static_ld (f.layer) || is_static_ld (f.datatype)) { - map (db::LDPair (f.layer, f.datatype), l); + mmap (db::LDPair (f.layer, f.datatype), l); } if (! f.name.empty ()) { - map (f.name, l); + mmap (f.name, l); } } @@ -525,10 +525,10 @@ void LayerMap::mmap (const LayerProperties &f, unsigned int l, const LayerProperties &t) { if (f.name.empty () || is_static_ld (f.layer) || is_static_ld (f.datatype)) { - map (db::LDPair (f.layer, f.datatype), l, t); + mmap (db::LDPair (f.layer, f.datatype), l, t); } if (! f.name.empty ()) { - map (f.name, l, t); + mmap (f.name, l, t); } } diff --git a/testdata/ruby/dbLayout.rb b/testdata/ruby/dbLayout.rb index e5ff45791..33a1decae 100644 --- a/testdata/ruby/dbLayout.rb +++ b/testdata/ruby/dbLayout.rb @@ -30,7 +30,11 @@ class DBLayout_TestClass < TestBase lmap = RBA::LayerMap::new lmap.map( "1/0", 0 ) + assert_equal(lmap.is_mapped(RBA::LayerInfo::new(1, 0)), true) + assert_equal(lmap.is_mapped(RBA::LayerInfo::new(1, 1)), false) + assert_equal(lmap.is_mapped(RBA::LayerInfo::new(2, 2)), false) lmap.map( "2/2", 0 ) + assert_equal(lmap.is_mapped(RBA::LayerInfo::new(2, 2)), true) lmap.map( "10/2", 0 ) assert_equal( lmap.mapping_str(0), "1/0;2/2;10/2" ) @@ -85,6 +89,55 @@ class DBLayout_TestClass < TestBase assert_equal( lmap.mapping_str(0), "2/2 : 4/4" ) assert_equal( lmap.mapping(0).to_s, "4/4" ) assert_equal( lmap.mapping(2).to_s, "5/5" ) + + lmap = RBA::LayerMap::new + + lmap.map("*/*", 0) + lmap.unmap(RBA::LayerInfo::new(5, 10)) + assert_equal(lmap.mapping_str(0), "0-4/*;5/0-9,11-*;6-*/*") + + lmap.clear + lmap.map("*/*", 0) + lmap.unmap(RBA::LayerInfo::new(5, 10), RBA::LayerInfo::new(16, 21)) + assert_equal(lmap.mapping_str(0), "0-4/*;5-16/0-9,22-*;17-*/*") + + lmap.clear + lmap.map("*/*", 0) + lmap.unmap("5-16/10-21") + assert_equal(lmap.mapping_str(0), "0-4/*;5-16/0-9,22-*;17-*/*") + + lmap.clear + lmap.map("*/*", 0) + lmap.mmap(RBA::LayerInfo::new(5, 10), 1) + assert_equal(lmap.mapping_str(0), "+0-4/*;5/0-9,10,11-*;6-*/*") + assert_equal(lmap.mapping_str(1), "+5/10") + + lmap.clear + lmap.map("*/*", 0) + lmap.mmap(RBA::LayerInfo::new(5, 10), 1, RBA::LayerInfo::new(100, 0)) + assert_equal(lmap.mapping_str(0), "+0-4/*;5/0-9,10,11-*;6-*/*") + assert_equal(lmap.mapping_str(1), "+5/10 : 100/0") + + lmap.clear + lmap.map("*/*", 0) + lmap.mmap(RBA::LayerInfo::new(5, 10), RBA::LayerInfo::new(16, 21), 1) + assert_equal(lmap.mapping_str(0), "+0-4/*;5-16/0-9,10-21,22-*;17-*/*") + assert_equal(lmap.mapping_str(1), "+5-16/10-21") + + lmap.clear + lmap.map("*/*", 0) + lmap.mmap(RBA::LayerInfo::new(5, 10), RBA::LayerInfo::new(16, 21), 1, RBA::LayerInfo::new(100, 0)) + assert_equal(lmap.mapping_str(0), "+0-4/*;5-16/0-9,10-21,22-*;17-*/*") + assert_equal(lmap.mapping_str(1), "+5-16/10-21 : 100/0") + + lmap.clear + lmap.map("*/*", 0) + lmap.mmap("5-16/10-21", 1) + assert_equal(lmap.mapping_str(0), "+0-4/*;5-16/0-9,10-21,22-*;17-*/*") + assert_equal(lmap.mapping_str(1), "+5-16/10-21") + + assert_equal(lmap.logicals(RBA::LayerInfo::new(5, 10)), [ 0, 1 ]) + assert_equal(lmap.logicals(RBA::LayerInfo::new(0, 10)), [ 0 ]) end