diff --git a/src/buddies/unit_tests/bdBasicTests.cc b/src/buddies/unit_tests/bdBasicTests.cc index 0b5080835..f79edb7f1 100644 --- a/src/buddies/unit_tests/bdBasicTests.cc +++ b/src/buddies/unit_tests/bdBasicTests.cc @@ -27,10 +27,6 @@ #include "dbLayout.h" #include "dbCell.h" #include "dbSaveLayoutOptions.h" -#include "dbCIFFormat.h" -#include "dbDXFFormat.h" -#include "dbOASISFormat.h" -#include "dbGDS2Format.h" // Testing writer options TEST(1) @@ -78,23 +74,23 @@ TEST(1) EXPECT_EQ (stream_opt.dont_write_empty_cells (), false); EXPECT_EQ (stream_opt.keep_instances (), false); EXPECT_EQ (stream_opt.write_context_info (), true); - EXPECT_EQ (stream_opt.get_options ().blank_separator, false); - EXPECT_EQ (stream_opt.get_options ().dummy_calls, false); - EXPECT_EQ (stream_opt.get_options ().polygon_mode, 0); - EXPECT_EQ (stream_opt.get_options ().libname, "LIB"); - EXPECT_EQ (stream_opt.get_options ().max_vertex_count, (unsigned int) 8000); - EXPECT_EQ (stream_opt.get_options ().multi_xy_records, false); - EXPECT_EQ (stream_opt.get_options ().write_timestamps, true); - EXPECT_EQ (stream_opt.get_options ().no_zero_length_paths, false); - EXPECT_EQ (tl::to_string (stream_opt.get_options ().user_units), "1"); - EXPECT_EQ (stream_opt.get_options ().write_cell_properties, false); - EXPECT_EQ (stream_opt.get_options ().write_file_properties, false); - EXPECT_EQ (stream_opt.get_options ().write_cblocks, false); - EXPECT_EQ (stream_opt.get_options ().compression_level, 2); - EXPECT_EQ (stream_opt.get_options ().strict_mode, false); - EXPECT_EQ (stream_opt.get_options ().recompress, false); - EXPECT_EQ (stream_opt.get_options ().subst_char, "*"); - EXPECT_EQ (stream_opt.get_options ().write_std_properties, 1); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_blank_separator").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_dummy_calls").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_polygon_mode").to_int (), 0); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_libname").to_string (), "LIB"); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_max_vertex_count").to_uint (), (unsigned int) 8000); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_multi_xy_records").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_write_timestamps").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_no_zero_length_paths").to_bool (), false); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("gds2_user_units").to_double ()), "1"); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_write_cell_properties").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_write_file_properties").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_write_cblocks").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_compression_level").to_int (), 2); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_strict_mode").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_recompress").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_substitution_char").to_string (), "*"); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_write_std_properties_ext").to_int (), 1); opt.configure (stream_opt, layout); @@ -103,23 +99,23 @@ TEST(1) EXPECT_EQ (stream_opt.dont_write_empty_cells (), true); EXPECT_EQ (stream_opt.keep_instances (), true); EXPECT_EQ (stream_opt.write_context_info (), false); - EXPECT_EQ (stream_opt.get_options ().blank_separator, true); - EXPECT_EQ (stream_opt.get_options ().dummy_calls, true); - EXPECT_EQ (stream_opt.get_options ().polygon_mode, 2); - EXPECT_EQ (stream_opt.get_options ().libname, "MYLIBNAME"); - EXPECT_EQ (stream_opt.get_options ().max_vertex_count, (unsigned int) 250); - EXPECT_EQ (stream_opt.get_options ().multi_xy_records, true); - EXPECT_EQ (stream_opt.get_options ().write_timestamps, false); - EXPECT_EQ (stream_opt.get_options ().no_zero_length_paths, true); - EXPECT_EQ (tl::to_string (stream_opt.get_options ().user_units), "2.5"); - EXPECT_EQ (stream_opt.get_options ().write_cell_properties, true); - EXPECT_EQ (stream_opt.get_options ().write_file_properties, true); - EXPECT_EQ (stream_opt.get_options ().write_cblocks, true); - EXPECT_EQ (stream_opt.get_options ().compression_level, 9); - EXPECT_EQ (stream_opt.get_options ().strict_mode, true); - EXPECT_EQ (stream_opt.get_options ().recompress, true); - EXPECT_EQ (stream_opt.get_options ().subst_char, "X"); - EXPECT_EQ (stream_opt.get_options ().write_std_properties, 2); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_blank_separator").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_dummy_calls").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_polygon_mode").to_int (), 2); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_libname").to_string (), "MYLIBNAME"); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_max_vertex_count").to_uint (), (unsigned int) 250); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_multi_xy_records").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_write_timestamps").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_no_zero_length_paths").to_bool (), true); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("gds2_user_units").to_double ()), "2.5"); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_write_cell_properties").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_write_file_properties").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_write_cblocks").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_compression_level").to_int (), 9); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_strict_mode").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_recompress").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_substitution_char").to_string (), "X"); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_write_std_properties_ext").to_int (), 2); } static std::string cells2string (const db::Layout &layout, const std::set &cells) @@ -246,52 +242,52 @@ TEST(10) cmd.parse (sizeof (argv) / sizeof (argv[0]), (char **) argv); db::LoadLayoutOptions stream_opt; - EXPECT_EQ (tl::to_string (stream_opt.get_options ().dbu), "0.001"); - EXPECT_EQ (stream_opt.get_options ().wire_mode, (unsigned int) 0); - EXPECT_EQ (stream_opt.get_options ().layer_map.to_string (), "layer_map()"); - EXPECT_EQ (stream_opt.get_options ().create_other_layers, true); - EXPECT_EQ (tl::to_string (stream_opt.get_options ().dbu), "0.001"); - EXPECT_EQ (stream_opt.get_options ().layer_map.to_string (), "layer_map()"); - EXPECT_EQ (stream_opt.get_options ().create_other_layers, true); - EXPECT_EQ (stream_opt.get_options ().unit, 1.0); - EXPECT_EQ (tl::to_string (stream_opt.get_options ().circle_accuracy), "0"); - EXPECT_EQ (stream_opt.get_options ().circle_points, 100); - EXPECT_EQ (stream_opt.get_options ().keep_other_cells, false); - EXPECT_EQ (stream_opt.get_options ().polyline_mode, 0); - EXPECT_EQ (stream_opt.get_options ().render_texts_as_polygons, false); - EXPECT_EQ (stream_opt.get_options ().text_scaling, 100); - EXPECT_EQ (stream_opt.get_options ().layer_map.to_string (), "layer_map()"); - EXPECT_EQ (stream_opt.get_options ().create_other_layers, true); - EXPECT_EQ (stream_opt.get_options ().enable_properties, true); - EXPECT_EQ (stream_opt.get_options ().enable_text_objects, true); - EXPECT_EQ (stream_opt.get_options ().box_mode, (unsigned int) 1); - EXPECT_EQ (stream_opt.get_options ().allow_big_records, true); - EXPECT_EQ (stream_opt.get_options ().allow_multi_xy_records, true); - EXPECT_EQ (stream_opt.get_options ().expect_strict_mode, -1); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("cif_dbu").to_double ()), "0.001"); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_wire_mode").to_uint (), (unsigned int) 0); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_layer_map").to_user ().to_string (), "layer_map()"); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_create_other_layers").to_bool (), true); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("dxf_dbu").to_double ()), "0.001"); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_layer_map").to_user ().to_string (), "layer_map()"); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_create_other_layers").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_unit").to_double (), 1.0); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("dxf_circle_accuracy").to_double ()), "0"); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_circle_points").to_int (), 100); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_keep_other_cells").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_polyline_mode").to_int (), 0); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_render_texts_as_polygons").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_text_scaling").to_int (), 100); + EXPECT_EQ (stream_opt.get_option_by_name ("layer_map").to_user ().to_string (), "layer_map()"); + EXPECT_EQ (stream_opt.get_option_by_name ("create_other_layers").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("properties_enabled").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("text_enabled").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_box_mode").to_uint (), (unsigned int) 1); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_allow_big_records").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_allow_multi_xy_records").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_expect_strict_mode").to_int (), -1); opt.configure (stream_opt); - EXPECT_EQ (tl::to_string (stream_opt.get_options ().dbu), "0.125"); - EXPECT_EQ (stream_opt.get_options ().wire_mode, (unsigned int) 1); - EXPECT_EQ (stream_opt.get_options ().layer_map.to_string (), "layer_map('1/0';'3-4/0-255';'A : 17/0')"); - EXPECT_EQ (stream_opt.get_options ().create_other_layers, false); - EXPECT_EQ (tl::to_string (stream_opt.get_options ().dbu), "0.125"); - EXPECT_EQ (stream_opt.get_options ().layer_map.to_string (), "layer_map('1/0';'3-4/0-255';'A : 17/0')"); - EXPECT_EQ (stream_opt.get_options ().create_other_layers, false); - EXPECT_EQ (stream_opt.get_options ().unit, 2.5); - EXPECT_EQ (tl::to_string (stream_opt.get_options ().circle_accuracy), "0.5"); - EXPECT_EQ (stream_opt.get_options ().circle_points, 1000); - EXPECT_EQ (stream_opt.get_options ().keep_other_cells, true); - EXPECT_EQ (stream_opt.get_options ().polyline_mode, 3); - EXPECT_EQ (stream_opt.get_options ().render_texts_as_polygons, true); - EXPECT_EQ (stream_opt.get_options ().text_scaling, 75); - EXPECT_EQ (stream_opt.get_options ().layer_map.to_string (), "layer_map('1/0';'3-4/0-255';'A : 17/0')"); - EXPECT_EQ (stream_opt.get_options ().create_other_layers, false); - EXPECT_EQ (stream_opt.get_options ().enable_properties, false); - EXPECT_EQ (stream_opt.get_options ().enable_text_objects, false); - EXPECT_EQ (stream_opt.get_options ().box_mode, (unsigned int) 3); - EXPECT_EQ (stream_opt.get_options ().allow_big_records, false); - EXPECT_EQ (stream_opt.get_options ().allow_multi_xy_records, false); - EXPECT_EQ (stream_opt.get_options ().expect_strict_mode, 1); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("cif_dbu").to_double ()), "0.125"); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_wire_mode").to_uint (), (unsigned int) 1); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_layer_map").to_user ().to_string (), "layer_map('1/0';'3-4/0-255';'A : 17/0')"); + EXPECT_EQ (stream_opt.get_option_by_name ("cif_create_other_layers").to_bool (), false); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("dxf_dbu").to_double ()), "0.125"); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_layer_map").to_user ().to_string (), "layer_map('1/0';'3-4/0-255';'A : 17/0')"); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_create_other_layers").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_unit").to_double (), 2.5); + EXPECT_EQ (tl::to_string (stream_opt.get_option_by_name ("dxf_circle_accuracy").to_double ()), "0.5"); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_circle_points").to_int (), 1000); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_keep_other_cells").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_polyline_mode").to_int (), 3); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_render_texts_as_polygons").to_bool (), true); + EXPECT_EQ (stream_opt.get_option_by_name ("dxf_text_scaling").to_int (), 75); + EXPECT_EQ (stream_opt.get_option_by_name ("layer_map").to_user ().to_string (), "layer_map('1/0';'3-4/0-255';'A : 17/0')"); + EXPECT_EQ (stream_opt.get_option_by_name ("create_other_layers").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("properties_enabled").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("text_enabled").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_box_mode").to_uint (), (unsigned int) 3); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_allow_big_records").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("gds2_allow_multi_xy_records").to_bool (), false); + EXPECT_EQ (stream_opt.get_option_by_name ("oasis_expect_strict_mode").to_int (), 1); } diff --git a/src/buddies/unit_tests/bdConverterTests.cc b/src/buddies/unit_tests/bdConverterTests.cc index fbc538893..c05e69582 100644 --- a/src/buddies/unit_tests/bdConverterTests.cc +++ b/src/buddies/unit_tests/bdConverterTests.cc @@ -21,13 +21,10 @@ */ #include "bdConverterMain.h" +#include "bdWriterOptions.h" #include "dbStream.h" -#include "dbCIFFormat.h" -#include "dbDXFReader.h" -#include "dbOASISReader.h" -#include "dbGDS2Reader.h" #include "dbTestSupport.h" -#include "contrib/dbGDS2TextReader.h" +#include "dbReader.h" #include "tlUnitTest.h" // Testing the converter main implementation (CIF) @@ -40,14 +37,13 @@ TEST(1) const char *argv[] = { "x", input.c_str (), output.c_str () }; - EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, db::CIFReaderOptions ().format_name ()), 0); + EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, bd::GenericWriterOptions::cif_format_name), 0); db::Layout layout; { tl::InputStream stream (output); db::LoadLayoutOptions options; - options.set_options (new db::CIFReaderOptions ()); db::Reader reader (stream); reader.read (layout, options); EXPECT_EQ (reader.format (), "CIF"); @@ -66,14 +62,13 @@ TEST(2) const char *argv[] = { "x", input.c_str (), output.c_str () }; - EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, db::DXFReaderOptions ().format_name ()), 0); + EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, bd::GenericWriterOptions::dxf_format_name), 0); db::Layout layout; { tl::InputStream stream (output); db::LoadLayoutOptions options; - options.set_options (new db::DXFReaderOptions ()); db::Reader reader (stream); reader.read (layout, options); EXPECT_EQ (reader.format (), "DXF"); @@ -98,14 +93,13 @@ TEST(3) const char *argv[] = { "x", input.c_str (), output.c_str () }; - EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, db::GDS2ReaderOptions ().format_name ()), 0); + EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, bd::GenericWriterOptions::gds2_format_name), 0); db::Layout layout; { tl::InputStream stream (output); db::LoadLayoutOptions options; - options.set_options (new db::GDS2ReaderOptions ()); db::Reader reader (stream); reader.read (layout, options); EXPECT_EQ (reader.format (), "GDS2"); @@ -124,14 +118,13 @@ TEST(4) const char *argv[] = { "x", input.c_str (), output.c_str () }; - EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, db::GDS2ReaderOptions ().format_name () + "Text"), 0); + EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, bd::GenericWriterOptions::gds2text_format_name), 0); db::Layout layout; { tl::InputStream stream (output); db::LoadLayoutOptions options; - options.set_options (new db::GDS2ReaderOptions ()); db::Reader reader (stream); reader.read (layout, options); EXPECT_EQ (reader.format (), "GDS2Text"); @@ -150,14 +143,13 @@ TEST(5) const char *argv[] = { "x", input.c_str (), output.c_str () }; - EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, db::OASISReaderOptions ().format_name ()), 0); + EXPECT_EQ (bd::converter_main (sizeof (argv) / sizeof (argv[0]), (char **) argv, bd::GenericWriterOptions::oasis_format_name), 0); db::Layout layout; { tl::InputStream stream (output); db::LoadLayoutOptions options; - options.set_options (new db::OASISReaderOptions ()); db::Reader reader (stream); reader.read (layout, options); EXPECT_EQ (reader.format (), "OASIS"); diff --git a/src/buddies/unit_tests/unit_tests.pro b/src/buddies/unit_tests/unit_tests.pro index 702e0cb29..6e2e7825e 100644 --- a/src/buddies/unit_tests/unit_tests.pro +++ b/src/buddies/unit_tests/unit_tests.pro @@ -21,13 +21,3 @@ INCLUDEPATH += $$BD_INC $$DB_INC $$TL_INC $$GSI_INC DEPENDPATH += $$BD_INC $$DB_INC $$TL_INC $$GSI_INC LIBS += -L$$DESTDIR_UT -lklayout_bd -lklayout_db -lklayout_tl -lklayout_gsi - -PLUGINPATH += \ - $$PWD/../../plugins/common \ - $$PWD/../../plugins/streamers/gds2/db_plugin \ - $$PWD/../../plugins/streamers/cif/db_plugin \ - $$PWD/../../plugins/streamers/oasis/db_plugin \ - $$PWD/../../plugins/streamers/dxf/db_plugin \ - -INCLUDEPATH += $$PLUGINPATH -DEPENDPATH += $$PLUGINPATH