diff --git a/src/db/db/db.pro b/src/db/db/db.pro index f32306b99..c0b0d45c6 100644 --- a/src/db/db/db.pro +++ b/src/db/db/db.pro @@ -137,7 +137,9 @@ SOURCES = \ dbOriginalLayerEdgePairs.cc \ dbEdgePairsDelegate.cc \ dbDeepShapeStore.cc \ - dbHierarchyBuilder.cc + dbHierarchyBuilder.cc \ + dbLocalOperation.cc \ + dbHierProcessor.cc HEADERS = \ dbArray.h \ @@ -244,7 +246,9 @@ HEADERS = \ dbOriginalLayerEdgePairs.h \ dbEdgePairsDelegate.h \ dbDeepShapeStore.h \ - dbHierarchyBuilder.h + dbHierarchyBuilder.h \ + dbLocalOperation.h \ + dbHierProcessor.h !equals(HAVE_QT, "0") { diff --git a/src/plugins/tools/netx/db_plugin/dbHierProcessor.cc b/src/db/db/dbHierProcessor.cc similarity index 100% rename from src/plugins/tools/netx/db_plugin/dbHierProcessor.cc rename to src/db/db/dbHierProcessor.cc diff --git a/src/plugins/tools/netx/db_plugin/dbHierProcessor.h b/src/db/db/dbHierProcessor.h similarity index 95% rename from src/plugins/tools/netx/db_plugin/dbHierProcessor.h rename to src/db/db/dbHierProcessor.h index 307d32569..71128dec4 100644 --- a/src/plugins/tools/netx/db_plugin/dbHierProcessor.h +++ b/src/db/db/dbHierProcessor.h @@ -25,8 +25,9 @@ #ifndef HDR_dbHierProcessor #define HDR_dbHierProcessor +#include "dbCommon.h" + #include "dbLayout.h" -#include "dbPluginCommon.h" #include "dbLocalOperation.h" #include "tlThreadedWorkers.h" @@ -36,9 +37,9 @@ #include #include -// @@@ should go into dbHash.h #include "dbHash.h" +// @@@ should go into dbHash.h namespace std { template @@ -82,7 +83,7 @@ class LocalProcessorCellContext; class LocalProcessorContexts; // TODO: move this somewhere else? -class DB_PLUGIN_PUBLIC ShapeInteractions +class DB_PUBLIC ShapeInteractions { public: typedef std::unordered_map > container; @@ -120,7 +121,7 @@ private: }; // TODO: should be hidden (private data?) -struct DB_PLUGIN_PUBLIC LocalProcessorCellDrop +struct DB_PUBLIC LocalProcessorCellDrop { LocalProcessorCellDrop (db::LocalProcessorCellContext *_parent_context, db::Cell *_parent, const db::ICplxTrans &_cell_inst) : parent_context (_parent_context), parent (_parent), cell_inst (_cell_inst) @@ -134,7 +135,7 @@ struct DB_PLUGIN_PUBLIC LocalProcessorCellDrop }; // TODO: should be hidden (private data?) -class DB_PLUGIN_PUBLIC LocalProcessorCellContext +class DB_PUBLIC LocalProcessorCellContext { public: typedef std::pair parent_inst_type; @@ -170,7 +171,7 @@ private: tl::Mutex m_lock; }; -class DB_PLUGIN_PUBLIC LocalProcessorCellContexts +class DB_PUBLIC LocalProcessorCellContexts { public: typedef std::pair, std::unordered_set > key_type; @@ -199,7 +200,7 @@ private: std::unordered_map m_contexts; }; -class DB_PLUGIN_PUBLIC LocalProcessorContexts +class DB_PUBLIC LocalProcessorContexts { public: typedef std::unordered_map contexts_per_cell_type; @@ -271,7 +272,7 @@ private: mutable tl::Mutex m_lock; }; -class DB_PLUGIN_PUBLIC LocalProcessorContextComputationTask +class DB_PUBLIC LocalProcessorContextComputationTask : public tl::Task { public: @@ -290,7 +291,7 @@ private: db::Coord m_dist; }; -class DB_PLUGIN_PUBLIC LocalProcessorContextComputationWorker +class DB_PUBLIC LocalProcessorContextComputationWorker : public tl::Worker { public: @@ -306,7 +307,7 @@ public: } }; -class DB_PLUGIN_PUBLIC LocalProcessorResultComputationTask +class DB_PUBLIC LocalProcessorResultComputationTask : public tl::Task { public: @@ -322,7 +323,7 @@ private: unsigned int m_output_layer; }; -class DB_PLUGIN_PUBLIC LocalProcessorResultComputationWorker +class DB_PUBLIC LocalProcessorResultComputationWorker : public tl::Worker { public: @@ -338,7 +339,7 @@ public: } }; -class DB_PLUGIN_PUBLIC LocalProcessor +class DB_PUBLIC LocalProcessor { public: LocalProcessor (db::Layout *layout, db::Cell *top); diff --git a/src/plugins/tools/netx/db_plugin/dbLocalOperation.cc b/src/db/db/dbLocalOperation.cc similarity index 100% rename from src/plugins/tools/netx/db_plugin/dbLocalOperation.cc rename to src/db/db/dbLocalOperation.cc diff --git a/src/plugins/tools/netx/db_plugin/dbLocalOperation.h b/src/db/db/dbLocalOperation.h similarity index 95% rename from src/plugins/tools/netx/db_plugin/dbLocalOperation.h rename to src/db/db/dbLocalOperation.h index 330d71441..8fe9ae0be 100644 --- a/src/plugins/tools/netx/db_plugin/dbLocalOperation.h +++ b/src/db/db/dbLocalOperation.h @@ -25,8 +25,9 @@ #ifndef HDR_dbLocalOperation #define HDR_dbLocalOperation +#include "dbCommon.h" + #include "dbLayout.h" -#include "dbPluginCommon.h" #include #include @@ -48,7 +49,7 @@ class ShapeInteractions; * This class implements the actual operation. It receives a * cluster of subject shapes vs. corresponding intruder shapes. */ -class DB_PLUGIN_PUBLIC LocalOperation +class DB_PUBLIC LocalOperation { public: /** @@ -109,7 +110,7 @@ public: /** * @brief Implements a boolean AND or NOT operation */ -class DB_PLUGIN_PUBLIC BoolAndOrNotLocalOperation +class DB_PUBLIC BoolAndOrNotLocalOperation : public LocalOperation { public: @@ -128,7 +129,7 @@ private: * With a given wrap_count, the result will only contains shapes where * the original shapes overlap at least "wrap_count" times. */ -class DB_PLUGIN_PUBLIC SelfOverlapMergeLocalOperation +class DB_PUBLIC SelfOverlapMergeLocalOperation : public LocalOperation { public: diff --git a/src/plugins/tools/netx/unit_tests/dbHierProcessorTests.cc b/src/db/unit_tests/dbHierProcessorTests.cc similarity index 99% rename from src/plugins/tools/netx/unit_tests/dbHierProcessorTests.cc rename to src/db/unit_tests/dbHierProcessorTests.cc index 94ac38232..3453aacd9 100644 --- a/src/plugins/tools/netx/unit_tests/dbHierProcessorTests.cc +++ b/src/db/unit_tests/dbHierProcessorTests.cc @@ -30,7 +30,7 @@ static std::string testdata (const std::string &fn) { - return tl::testsrc () + "/src/plugins/tools/netx/testdata/" + fn; + return tl::testsrc () + "/testdata/algo/" + fn; } enum TestMode diff --git a/src/db/unit_tests/unit_tests.pro b/src/db/unit_tests/unit_tests.pro index 07b2e6225..e6b19cd84 100644 --- a/src/db/unit_tests/unit_tests.pro +++ b/src/db/unit_tests/unit_tests.pro @@ -54,7 +54,8 @@ SOURCES = \ dbLoadLayoutOptionsTests.cc \ dbSaveLayoutOptionsTests.cc \ dbHierarchyBuilderTests.cc \ - dbRecursiveShapeIteratorTests.cc + dbRecursiveShapeIteratorTests.cc \ + dbHierProcessorTests.cc INCLUDEPATH += $$TL_INC $$DB_INC $$GSI_INC DEPENDPATH += $$TL_INC $$DB_INC $$GSI_INC diff --git a/src/plugins/tools/netx/db_plugin/dbNetExtractor.cc b/src/plugins/tools/netx/db_plugin/dbNetExtractor.cc deleted file mode 100644 index a8d7edfcb..000000000 --- a/src/plugins/tools/netx/db_plugin/dbNetExtractor.cc +++ /dev/null @@ -1,177 +0,0 @@ - -/* - - KLayout Layout Viewer - Copyright (C) 2006-2018 Matthias Koefferlein - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - - -#include "dbNetExtractor.h" -#include "dbHierProcessor.h" -#include "dbLayoutUtils.h" -#include "dbCellMapping.h" -#include "dbPolygonTools.h" -#include "dbBoxScanner.h" -#include "dbRecursiveShapeIterator.h" -#include "dbBoxConvert.h" -#include "tlLog.h" - -namespace db -{ - -NetExtractor::NetExtractor() - : mp_orig_layout (0), mp_layout (0), mp_top_cell (0), m_nthreads (0) -{ - - // @@@ - -} - -NetExtractor::~NetExtractor () -{ - delete mp_layout; - mp_layout = 0; - mp_top_cell = 0; -} - -void -NetExtractor::set_threads (unsigned int nthreads) -{ - m_nthreads = nthreads; -} - -void -NetExtractor::open (const db::Layout &orig_layout, cell_index_type orig_top_cell) -{ - tl::SelfTimer timer (tl::verbosity () >= 31, tl::to_string (tr ("Open layout"))); - - delete mp_layout; - mp_orig_layout = &orig_layout; - - mp_layout = new db::Layout (); - mp_layout->dbu (orig_layout.dbu ()); - mp_top_cell = &mp_layout->cell (mp_layout->add_cell (orig_layout.cell_name (orig_top_cell))); - - // copy hierarchy - m_cm.clear (); - m_cm.create_from_names_full (*mp_layout, mp_top_cell->cell_index (), orig_layout, orig_top_cell); -} - -void -NetExtractor::output (NetLayer a, const LayerProperties &lp) -{ - mp_layout->set_properties (a.layer_index (), lp); -} - -static double area_ratio (const db::Polygon &poly) -{ - return double (poly.box ().area ()) / double (poly.area ()); -} - -static void split_polygon_into (const db::Polygon &poly, db::Shapes &dest, size_t max_points, double max_area_ratio) -{ - size_t npoints = 0; - for (unsigned int c = 0; c < poly.holes () + 1; ++c) { - npoints += poly.contour (c).size (); - } - - if (npoints > max_points || area_ratio (poly) > max_area_ratio) { - - std::vector split_polygons; - db::split_polygon (poly, split_polygons); - for (std::vector ::const_iterator sp = split_polygons.begin (); sp != split_polygons.end (); ++sp) { - split_polygon_into (*sp, dest, max_points, max_area_ratio); - } - - } else { - - dest.insert (db::PolygonRef (poly, dest.layout ()->shape_repository ())); - - } -} - -NetLayer -NetExtractor::load (unsigned int layer_index) -{ - tl::SelfTimer timer (tl::verbosity () >= 31, tl::to_string (tr ("Loading layer ")) + mp_orig_layout->get_properties (layer_index).to_string ()); - - const double max_area_ratio = 3.0; - const size_t max_points = 16; - - NetLayer lt (mp_layout->insert_layer ()); - mp_layout->set_properties (lt.layer_index(), mp_orig_layout->get_properties (layer_index)); - - for (db::Layout::const_iterator c = mp_orig_layout->begin (); c != mp_layout->end (); ++c) { - - if (m_cm.has_mapping (c->cell_index ())) { - - db::cell_index_type ct = m_cm.cell_mapping (c->cell_index ()); - - db::Shapes &dest_shapes = mp_layout->cell (ct).shapes (lt.layer_index()); - const db::Shapes &orig_shapes = c->shapes (layer_index); - for (db::Shapes::shape_iterator s = orig_shapes.begin (db::ShapeIterator::Polygons | db::ShapeIterator::Paths | db::ShapeIterator::Boxes); ! s.at_end (); ++s) { - - // @@@ TODO: cache splitting and path to polygon conversion - db::Polygon poly; - s->polygon (poly); - - split_polygon_into (poly, dest_shapes, max_points, max_area_ratio); - - } - - } - - } - - return lt; -} - -NetLayer -NetExtractor::bool_and (NetLayer a, NetLayer b) -{ - return and_or_not (a, b, true); -} - -NetLayer -NetExtractor::bool_not (NetLayer a, NetLayer b) -{ - return and_or_not (a, b, false); -} - -NetLayer -NetExtractor::and_or_not (NetLayer a, NetLayer b, bool is_and) -{ - unsigned int lout = mp_layout->insert_layer (); - - db::BoolAndOrNotLocalOperation op (is_and); - db::LocalProcessor proc (mp_layout, mp_top_cell); - proc.set_threads (m_nthreads); - proc.run (&op, a.layer_index (), b.layer_index (), lout); - - return NetLayer (lout); -} - -db::Layout * -NetExtractor::layout_copy () const -{ - tl_assert (mp_layout != 0); - return new db::Layout (*mp_layout); -} - -} - diff --git a/src/plugins/tools/netx/db_plugin/dbNetExtractor.h b/src/plugins/tools/netx/db_plugin/dbNetExtractor.h deleted file mode 100644 index 979ec3a97..000000000 --- a/src/plugins/tools/netx/db_plugin/dbNetExtractor.h +++ /dev/null @@ -1,120 +0,0 @@ - -/* - - KLayout Layout Viewer - Copyright (C) 2006-2018 Matthias Koefferlein - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - - - -#ifndef HDR_dbNetExtractor -#define HDR_dbNetExtractor - -#include "dbPluginCommon.h" -#include "dbLayout.h" -#include "dbCellMapping.h" -#include "tlTypeTraits.h" - -namespace db -{ - -class NetLayer -{ -public: - NetLayer (unsigned int index) - : m_layer_index (index) - { - // .. nothing yet .. - } - - unsigned int layer_index () const - { - return m_layer_index; - } - -private: - unsigned int m_layer_index; -}; - -/** - * @brief The net extractor - * - * ... - */ -class DB_PLUGIN_PUBLIC NetExtractor -{ -public: - /** - * @brief Constructs a net extractor - */ - NetExtractor (); - - ~NetExtractor (); - - // @@@ - void open (const db::Layout &orig_layout, db::cell_index_type orig_top_cell); - NetLayer load (unsigned int layer_index); - NetLayer bool_and (NetLayer a, NetLayer b); - NetLayer bool_not (NetLayer a, NetLayer b); - void output (NetLayer a, const db::LayerProperties &lp); - db::Layout *layout_copy () const; - - void set_threads (unsigned int nthreads); - unsigned int threads () const - { - return m_nthreads; - } - -private: - // no copying - NetExtractor (const db::NetExtractor &); - NetExtractor &operator= (const db::NetExtractor &); - - NetLayer and_or_not (NetLayer a, NetLayer b, bool is_and); - - // @@@ - const db::Layout *mp_orig_layout; // @@@ should be a smart pointer - db::Layout *mp_layout; - db::Cell *mp_top_cell; - db::CellMapping m_cm; - unsigned int m_nthreads; -}; - -} - -namespace tl -{ - -template <> -struct type_traits : public tl::type_traits -{ - // mark "NetLayer" as not having a default ctor - typedef tl::false_tag has_default_constructor; -}; - -template <> -struct type_traits : public tl::type_traits -{ - // mark "NetExtractor" as not copyable - typedef tl::false_tag has_copy_constructor; -}; - -} - -#endif - diff --git a/src/plugins/tools/netx/db_plugin/dbNetExtractorPlugin.cc b/src/plugins/tools/netx/db_plugin/dbNetExtractorPlugin.cc deleted file mode 100644 index f06459c5b..000000000 --- a/src/plugins/tools/netx/db_plugin/dbNetExtractorPlugin.cc +++ /dev/null @@ -1,29 +0,0 @@ - -/* - - KLayout Layout Viewer - Copyright (C) 2006-2018 Matthias Koefferlein - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - - -namespace db -{ - - // @@@ - -} diff --git a/src/plugins/tools/netx/db_plugin/db_plugin.pro b/src/plugins/tools/netx/db_plugin/db_plugin.pro deleted file mode 100644 index 333cf6c44..000000000 --- a/src/plugins/tools/netx/db_plugin/db_plugin.pro +++ /dev/null @@ -1,18 +0,0 @@ - -TARGET = netx -DESTDIR = $$OUT_PWD/../../../../db_plugins - -include($$PWD/../../../db_plugin.pri) - -HEADERS = \ - dbNetExtractor.h \ - dbHierProcessor.h \ - dbLocalOperation.h - -SOURCES = \ - dbNetExtractor.cc \ - dbHierProcessor.cc \ - dbNetExtractorPlugin.cc \ - gsiDeclDbNetExtractor.cc \ - dbLocalOperation.cc - diff --git a/src/plugins/tools/netx/db_plugin/gsiDeclDbNetExtractor.cc b/src/plugins/tools/netx/db_plugin/gsiDeclDbNetExtractor.cc deleted file mode 100644 index 225b5bf1f..000000000 --- a/src/plugins/tools/netx/db_plugin/gsiDeclDbNetExtractor.cc +++ /dev/null @@ -1,90 +0,0 @@ -/* - - KLayout Layout Viewer - Copyright (C) 2006-2018 Matthias Koefferlein - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - - -#include "dbNetExtractor.h" - -#include "gsiDecl.h" - -namespace gsi -{ - -gsi::Class decl_NetLayer ("db", "NetLayer", - gsi::method ("layer_index", &db::NetLayer::layer_index, - "@@@" - ), - "@brief The net extractor\n" - "\n" - "This class has been introduced in version 0.26." -); - -void open2 (db::NetExtractor *ex, const db::Layout *orig_layout, const db::Cell *cell) -{ - ex->open (*orig_layout, cell->cell_index ()); -} - -void output1 (db::NetExtractor *ex, const db::NetLayer &nl, const db::LayerProperties &lp) -{ - ex->output (nl, lp); -} - -void output2 (db::NetExtractor *ex, const db::NetLayer &nl, int layer, int datatype, const std::string &name) -{ - ex->output (nl, db::LayerProperties (layer, datatype, name)); -} - -gsi::Class decl_NetNetExtractor ("db", "NetExtractor", - gsi::method ("open", &db::NetExtractor::open, gsi::arg ("orig_layout"), gsi::arg ("orig_top_cell_index"), - "@@@" - ) + - gsi::method ("threads=", &db::NetExtractor::set_threads, gsi::arg ("nthreads"), - "@@@" - ) + - gsi::method ("threads", &db::NetExtractor::threads, - "@@@" - ) + - gsi::method_ext ("open", &open2, gsi::arg ("orig_layout"), gsi::arg ("orig_top_cell"), - "@@@" - ) + - gsi::method_ext ("output", &output1, gsi::arg ("net_layer"), gsi::arg ("layer"), - "@@@" - ) + - gsi::method_ext ("output", &output2, gsi::arg ("net_layer"), gsi::arg ("layer"), gsi::arg ("datatype"), gsi::arg ("name", std::string ()), - "@@@" - ) + - gsi::method ("load", &db::NetExtractor::load, gsi::arg ("layer_index"), - "@@@" - ) + - gsi::method ("bool_and", &db::NetExtractor::bool_and, gsi::arg ("a"), gsi::arg ("b"), - "@@@" - ) + - gsi::method ("bool_not", &db::NetExtractor::bool_not, gsi::arg ("a"), gsi::arg ("b"), - "@@@" - ) + - gsi::factory ("layout_copy", &db::NetExtractor::layout_copy, - "@@@" - ), - "@brief The net extractor\n" - "\n" - "This class has been introduced in version 0.26." -); - -} diff --git a/src/plugins/tools/netx/netx.pro b/src/plugins/tools/netx/netx.pro deleted file mode 100644 index f42b2a627..000000000 --- a/src/plugins/tools/netx/netx.pro +++ /dev/null @@ -1,11 +0,0 @@ - -TEMPLATE = subdirs - -SUBDIRS = db_plugin unit_tests -unit_tests.depends += db_plugin - -#!equals(HAVE_QT, "0") { -# SUBDIRS += lay_plugin -# lay_plugin.depends += db_plugin -#} - diff --git a/src/plugins/tools/netx/unit_tests/dbNetExtractorTests.cc b/src/plugins/tools/netx/unit_tests/dbNetExtractorTests.cc deleted file mode 100644 index 28ce60281..000000000 --- a/src/plugins/tools/netx/unit_tests/dbNetExtractorTests.cc +++ /dev/null @@ -1,30 +0,0 @@ - -/* - - KLayout Layout Viewer - Copyright (C) 2006-2018 Matthias Koefferlein - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -*/ - - -#include "tlUnitTest.h" - -TEST(1) -{ - // .. nothing yet .. -} - diff --git a/src/plugins/tools/netx/unit_tests/unit_tests.pro b/src/plugins/tools/netx/unit_tests/unit_tests.pro deleted file mode 100644 index a5e77b073..000000000 --- a/src/plugins/tools/netx/unit_tests/unit_tests.pro +++ /dev/null @@ -1,21 +0,0 @@ - -DESTDIR_UT = $$OUT_PWD/../../../.. - -TARGET = net_tracer_tests - -include($$PWD/../../../../lib_ut.pri) - -SOURCES = \ - dbNetExtractorTests.cc \ - dbHierProcessorTests.cc \ - -INCLUDEPATH += $$LAY_INC $$TL_INC $$DB_INC $$GSI_INC $$PWD/../db_plugin $$PWD/../../../common -DEPENDPATH += $$LAY_INC $$TL_INC $$DB_INC $$GSI_INC $$PWD/../db_plugin $$PWD/../../../common - -LIBS += -L$$DESTDIR_UT -lklayout_db -lklayout_tl -lklayout_gsi - -# This makes the test pull the mebes library for testing (not installed) -PLUGINPATH = $$OUT_PWD/../../../../db_plugins -QMAKE_RPATHDIR += $$PLUGINPATH - -LIBS += -L$$PLUGINPATH -lnetx diff --git a/src/plugins/tools/netx/testdata/hlp1.oas b/testdata/algo/hlp1.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp1.oas rename to testdata/algo/hlp1.oas diff --git a/src/plugins/tools/netx/testdata/hlp10.oas b/testdata/algo/hlp10.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp10.oas rename to testdata/algo/hlp10.oas diff --git a/src/plugins/tools/netx/testdata/hlp11.oas b/testdata/algo/hlp11.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp11.oas rename to testdata/algo/hlp11.oas diff --git a/src/plugins/tools/netx/testdata/hlp2.oas b/testdata/algo/hlp2.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp2.oas rename to testdata/algo/hlp2.oas diff --git a/src/plugins/tools/netx/testdata/hlp3.oas b/testdata/algo/hlp3.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp3.oas rename to testdata/algo/hlp3.oas diff --git a/src/plugins/tools/netx/testdata/hlp4.oas b/testdata/algo/hlp4.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp4.oas rename to testdata/algo/hlp4.oas diff --git a/src/plugins/tools/netx/testdata/hlp5.oas b/testdata/algo/hlp5.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp5.oas rename to testdata/algo/hlp5.oas diff --git a/src/plugins/tools/netx/testdata/hlp6.oas b/testdata/algo/hlp6.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp6.oas rename to testdata/algo/hlp6.oas diff --git a/src/plugins/tools/netx/testdata/hlp7.oas b/testdata/algo/hlp7.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp7.oas rename to testdata/algo/hlp7.oas diff --git a/src/plugins/tools/netx/testdata/hlp8.oas b/testdata/algo/hlp8.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp8.oas rename to testdata/algo/hlp8.oas diff --git a/src/plugins/tools/netx/testdata/hlp9.oas b/testdata/algo/hlp9.oas similarity index 100% rename from src/plugins/tools/netx/testdata/hlp9.oas rename to testdata/algo/hlp9.oas