@@ -129,6 +129,48 @@ TEST(1A_Deep)
129129
130130 std::string output = this ->tmp_file (" tmp.oas" );
131131
132+ const char *argv[] = { " x" , " --deep" , " --drop-empty-cells=false" , input_a.c_str (), input_b.c_str (), output.c_str () };
133+
134+ EXPECT_EQ (strmxor (sizeof (argv) / sizeof (argv[0 ]), (char **) argv), 1 );
135+
136+ db::Layout layout;
137+
138+ {
139+ tl::InputStream stream (output);
140+ db::Reader reader (stream);
141+ reader.read (layout);
142+ }
143+
144+ db::compare_layouts (this , layout, au, db::NormalizationMode (db::NoNormalization | db::AsPolygons));
145+ EXPECT_EQ (cap.captured_text (),
146+ " Layer 10/0 is not present in first layout, but in second\n "
147+ " Result summary (layers without differences are not shown):\n "
148+ " \n "
149+ " Layer Output Differences (hierarchical shape count)\n "
150+ " ----------------------------------------------------------------\n "
151+ " 3/0 3/0 3\n "
152+ " 6/0 6/0 314\n "
153+ " 8/1 8/1 1\n "
154+ " 10/0 - (no such layer in first layout)\n "
155+ " \n "
156+ );
157+ }
158+
159+ TEST (1A_DeepNoEmptyCells)
160+ {
161+ tl::CaptureChannel cap;
162+
163+ std::string input_a = tl::testdata ();
164+ input_a += " /bd/strmxor_in1.gds" ;
165+
166+ std::string input_b = tl::testdata ();
167+ input_b += " /bd/strmxor_in2.gds" ;
168+
169+ std::string au = tl::testdata ();
170+ au += " /bd/strmxor_au1d2.oas" ;
171+
172+ std::string output = this ->tmp_file (" tmp.oas" );
173+
132174 const char *argv[] = { " x" , " --deep" , input_a.c_str (), input_b.c_str (), output.c_str () };
133175
134176 EXPECT_EQ (strmxor (sizeof (argv) / sizeof (argv[0 ]), (char **) argv), 1 );
@@ -342,7 +384,7 @@ TEST(2_Deep)
342384
343385 std::string output = this ->tmp_file (" tmp.oas" );
344386
345- const char *argv[] = { " x" , " -u" , " --no-summary" , " -l" , input_a.c_str (), input_b.c_str (), output.c_str () };
387+ const char *argv[] = { " x" , " -u" , " --no-summary" , " --drop-empty-cells=false " , " - l" , input_a.c_str (), input_b.c_str (), output.c_str () };
346388
347389 EXPECT_EQ (strmxor (sizeof (argv) / sizeof (argv[0 ]), (char **) argv), 1 );
348390
@@ -508,7 +550,7 @@ TEST(3_Deep)
508550 std::string output = this ->tmp_file (" tmp.oas" );
509551
510552 // NOTE: -p is ignored in deep mode
511- const char *argv[] = { " x" , " -u" , " --no-summary" , " -p=1.0" , " -n=4" , input_a.c_str (), input_b.c_str (), output.c_str () };
553+ const char *argv[] = { " x" , " -u" , " --drop-empty-cells=false " , " -- no-summary" , " -p=1.0" , " -n=4" , input_a.c_str (), input_b.c_str (), output.c_str () };
512554
513555 EXPECT_EQ (strmxor (sizeof (argv) / sizeof (argv[0 ]), (char **) argv), 1 );
514556
@@ -607,7 +649,7 @@ TEST(4_Deep)
607649
608650 std::string output = this ->tmp_file (" tmp.oas" );
609651
610- const char *argv[] = { " x" , " -u" , " --no-summary" , " -p=1.0" , " -n=4" , " -t=0.0,0.005,0.01,0.02,0.09,0.1" , input_a.c_str (), input_b.c_str (), output.c_str () };
652+ const char *argv[] = { " x" , " -u" , " --drop-empty-cells=false " , " -- no-summary" , " -p=1.0" , " -n=4" , " -t=0.0,0.005,0.01,0.02,0.09,0.1" , input_a.c_str (), input_b.c_str (), output.c_str () };
611653
612654 EXPECT_EQ (strmxor (sizeof (argv) / sizeof (argv[0 ]), (char **) argv), 1 );
613655
@@ -673,7 +715,7 @@ TEST(5_Deep)
673715
674716 std::string output = this ->tmp_file (" tmp.oas" );
675717
676- const char *argv[] = { " x" , " -u" , " --no-summary" , " -b=1000" , " -t=0.0,0.005,0.01,0.02,0.09,0.1" , input_a.c_str (), input_b.c_str (), output.c_str () };
718+ const char *argv[] = { " x" , " -u" , " --drop-empty-cells=false " , " -- no-summary" , " -b=1000" , " -t=0.0,0.005,0.01,0.02,0.09,0.1" , input_a.c_str (), input_b.c_str (), output.c_str () };
677719
678720 EXPECT_EQ (strmxor (sizeof (argv) / sizeof (argv[0 ]), (char **) argv), 1 );
679721
0 commit comments