aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Desire NUENTSA <desire.nuentsa_wakam@inria.fr>2013-01-21 15:36:18 +0100
committerGravatar Desire NUENTSA <desire.nuentsa_wakam@inria.fr>2013-01-21 15:36:18 +0100
commit5dcf6caa36180901d1a62cb3b0183bbcba639fa2 (patch)
tree75443a64025546f113e863138db5d8d9d806f9e6
parent392ffce3b92302007b1b6769d08ff4896b489ffe (diff)
Unit test for the Metis Ordering package
-rw-r--r--test/CMakeLists.txt14
-rw-r--r--test/metis_support.cpp38
2 files changed, 49 insertions, 3 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index f676ee9eb..8f8fedc91 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -86,6 +86,14 @@ else()
ei_add_property(EIGEN_MISSING_BACKENDS "PaStiX, ")
endif()
+if(METIS_FOUND)
+ add_definitions("-DEIGEN_METIS_SUPPORT")
+ include_directories(${METIS_INCLUDES})
+ ei_add_property(EIGEN_TESTED_BACKENDS "METIS, ")
+else()
+ ei_add_property(EIGEN_MISSING_BACKENDS "METIS, ")
+endif()
+
find_package(SPQR)
if(SPQR_FOUND AND BLAS_FOUND AND LAPACK_FOUND)
if(CHOLMOD_FOUND)
@@ -247,9 +255,9 @@ if(SPQR_FOUND AND CHOLMOD_FOUND)
ei_add_test(spqr_support "" "${SPQR_ALL_LIBS}")
endif()
-# if(SPQR_FOUND AND CHOLMOD_FOUND)
-# ei_add_test(sparseLM "" "${SPQR_ALL_LIBS}")
-# endif()
+if(METIS_FOUND)
+ei_add_test(metis_support "" "${METIS_LIBRARIES}")
+endif()
string(TOLOWER "${CMAKE_CXX_COMPILER}" cmake_cxx_compiler_tolower)
if(cmake_cxx_compiler_tolower MATCHES "qcc")
diff --git a/test/metis_support.cpp b/test/metis_support.cpp
new file mode 100644
index 000000000..2cc920263
--- /dev/null
+++ b/test/metis_support.cpp
@@ -0,0 +1,38 @@
+// This file is part of Eigen, a lightweight C++ template library
+// for linear algebra.
+//
+// Copyright (C) 2012 Désiré Nuentsa-Wakam <desire.nuentsa_wakam@inria.fr>
+//
+// Eigen is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 3 of the License, or (at your option) any later version.
+//
+// Alternatively, 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.
+//
+// Eigen 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 Lesser General Public License or the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License and a copy of the GNU General Public License along with
+// Eigen. If not, see <http://www.gnu.org/licenses/>.
+#include "sparse_solver.h"
+#include <Eigen/SparseLU>
+#include <unsupported/Eigen/SparseExtra>
+
+template<typename T> void test_metis_T()
+{
+ SparseLU<SparseMatrix<T, ColMajor>, COLAMDOrdering<int> > sparselu_metis;
+
+ check_sparse_square_solving(sparselu_metis);
+}
+
+void test_metis_support()
+{
+ CALL_SUBTEST_1(test_metis_T<double>());
+}