diff --git a/src/db/db/dbMeasureEval.cc b/src/db/db/dbMeasureEval.cc index f615cc6d8..e2288934c 100644 --- a/src/db/db/dbMeasureEval.cc +++ b/src/db/db/dbMeasureEval.cc @@ -385,8 +385,8 @@ public: virtual void execute (const tl::ExpressionParserContext &context, tl::Variant &out, const std::vector &args, const std::map * /*kwargs*/) const { - if (args.size () != 1) { - throw tl::EvalError (tl::to_string (tr ("'net' function does not take and argument")), context); + if (args.size () != 0) { + throw tl::EvalError (tl::to_string (tr ("'net' function does not take any argument")), context); } out = mp_eval->net_func (); } diff --git a/src/db/unit_tests/dbLayoutToNetlistTests.cc b/src/db/unit_tests/dbLayoutToNetlistTests.cc index 8dcecf526..9852c088d 100644 --- a/src/db/unit_tests/dbLayoutToNetlistTests.cc +++ b/src/db/unit_tests/dbLayoutToNetlistTests.cc @@ -3451,6 +3451,18 @@ TEST(15_MeasureNet) unsigned int l100 = ly.get_layer (db::LayerProperties (100, 0)); l1_measured.insert_into (&ly, tc.cell_index (), l100); + std::map vars; + vars["athr"] = 40.0; + db::Region l2_skipped = l2n.measure_net (*rl1, secondary, "skip(area < athr)", vars); + + unsigned int l101 = ly.get_layer (db::LayerProperties (101, 0)); + l2_skipped.insert_into (&ly, tc.cell_index (), l101); + + db::Region l3_net_func = l2n.measure_net (*rl1, secondary, "put('NAME', net.name)", std::map ()); + + unsigned int l102 = ly.get_layer (db::LayerProperties (102, 0)); + l3_net_func.insert_into (&ly, tc.cell_index (), l102); + // compare the collected test data std::string au = tl::testdata (); diff --git a/testdata/algo/measure_net.gds b/testdata/algo/measure_net.gds index 2ccefa9b0..e8da530ee 100644 Binary files a/testdata/algo/measure_net.gds and b/testdata/algo/measure_net.gds differ diff --git a/testdata/algo/measure_net_au.oas b/testdata/algo/measure_net_au.oas index 7c9b4b93d..da1540dc4 100644 Binary files a/testdata/algo/measure_net_au.oas and b/testdata/algo/measure_net_au.oas differ