diff --git a/dune/matrix-vector/test/CMakeLists.txt b/dune/matrix-vector/test/CMakeLists.txt
index 7519ef82e11269b0f5bbaf657cd61d772bf9f239..ff2014510d0732066fea5e2d69018bd6e0eab2e1 100644
--- a/dune/matrix-vector/test/CMakeLists.txt
+++ b/dune/matrix-vector/test/CMakeLists.txt
@@ -1,4 +1,3 @@
 dune_add_test(SOURCES arithmetictest.cc)
-dune_add_test(SOURCES genericvectortoolstest.cc)
 dune_add_test(SOURCES staticmatrixtoolstest.cc)
 dune_add_test(SOURCES triangularsolvetest.cc)
diff --git a/dune/matrix-vector/test/genericvectortoolstest.cc b/dune/matrix-vector/test/genericvectortoolstest.cc
deleted file mode 100644
index 1b0354e7a9679d3d32b3766dfb50fdee4e6b6c62..0000000000000000000000000000000000000000
--- a/dune/matrix-vector/test/genericvectortoolstest.cc
+++ /dev/null
@@ -1,246 +0,0 @@
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <dune/common/exceptions.hh>
-#include <dune/common/fvector.hh>
-#include <dune/common/fmatrix.hh>
-#include <dune/common/parallel/mpihelper.hh>
-#include <dune/common/typeutilities.hh>
-
-#include <dune/istl/bcrsmatrix.hh>
-#include <dune/istl/bvector.hh>
-#include <dune/istl/matrixindexset.hh>
-#include <dune/istl/multitypeblockmatrix.hh>
-#include <dune/istl/multitypeblockvector.hh>
-
-#include <dune/matrix-vector/algorithm.hh>
-#include <dune/matrix-vector/genericvectortools.hh>
-
-
-/// custom multitype types to allow for BlockVector nesting
-template <class... Args>
-struct CustomMultiTypeBlockVector : public Dune::MultiTypeBlockVector<Args...> {
-  constexpr static int blocklevel = 1; // fake value
-};
-template <class... Args>
-struct CustomMultiTypeBlockMatrix : public Dune::MultiTypeBlockMatrix<Args...> {
-  constexpr static int blocklevel = 1; // fake value
-};
-// inject matrix traits for CustomMultiTypeBlockMatrix
-namespace Dune { namespace MatrixVector {
-  template <class... Args>
-  struct MatrixTraits<CustomMultiTypeBlockMatrix<Args...>> {
-    enum { isMatrix = true };
-  };
-}}
-
-
-class ResizeTestSuite {
-  /// typedefs
-  using BS = std::bitset<2>;
-  using FV = Dune::FieldVector<double, 3>;
-  using BV = Dune::BlockVector<FV>;
-  using MV = CustomMultiTypeBlockVector<BV, BV, FV>;
-  using FM = Dune::FieldMatrix<double, 3, 10>;
-  using BM = Dune::BCRSMatrix<FM>;
-  using MM = CustomMultiTypeBlockMatrix<
-               CustomMultiTypeBlockMatrix<BM>,
-               CustomMultiTypeBlockMatrix<BM>,
-               CustomMultiTypeBlockMatrix<FM>>;
-  /// instanciation helper
-  auto createBM(size_t n) {
-    BM bm;
-    Dune::MatrixIndexSet indices(n, n+10);
-    indices.exportIdx(bm);
-    return bm;
-  }
-  auto createMM(size_t n1, size_t n2) {
-    using namespace Dune::Indices;
-    MM mm;
-    mm[_0][_0] = createBM(n1);
-    mm[_1][_0] = createBM(n2);
-    return mm;
-  }
-
-  bool checkGetSize() {
-    using namespace Dune::MatrixVector::Generic::Impl;
-    std::cout << "Testing getSize... ";
-
-  auto hasSize = [](auto&& c, auto&& size) {
-    if(getSize(c, Dune::PriorityTag<42>()) != size)
-      DUNE_THROW(Dune::Exception, "Unexpected getSize mismatch.");
-  };
-
-  try {
-    // test vector types
-    using BS = std::bitset<2>;
-    hasSize(BS(), (uint) 2);
-    using FV = Dune::FieldVector<double, 3>;
-    hasSize(FV(), (uint) 3);
-    using BV = Dune::BlockVector<FV>;
-    hasSize(BV(4), (uint) 4);
-    using MV = CustomMultiTypeBlockVector<FV, BV, FV, FV, BV>;
-    hasSize(MV(), (uint) 5);
-    // test matrix types
-    using FM = Dune::FieldMatrix<double, 3, 10>;
-    hasSize(FM(), (uint) 3);
-    using BM = Dune::BCRSMatrix<FM>;
-    BM bm;
-    Dune::MatrixIndexSet indices(4, 10);
-    indices.exportIdx(bm);
-    hasSize(bm, (uint) 4);
-    using MM = CustomMultiTypeBlockMatrix<BM, BM, BM, FM, FM>;
-    hasSize(MM(), (uint) 5);
-  } catch (Dune::Exception e) {
-    std::cout << "FAILURE." << std::endl;
-    std::cout << e << std::endl;
-    return false;
-  }
-
-  std::cout << "done." << std::endl;
-  return true;
-}
-
-  //! yield test access to protected ScalarSwitch method subSizeProvider
-  template <class Vector>
-  struct SubSizeProviderAccess : Dune::MatrixVector::Generic::Impl::ScalarSwitch<Vector> {
-    using Base = Dune::MatrixVector::Generic::Impl::ScalarSwitch<Vector>;
-    template <class T>
-    static decltype(auto) test(T&& t) {
-      return Base::subSizeProvider(std::forward<T>(t));
-    }
-  };
-
-bool checkSubSizeProvider() {
-  using namespace Dune::MatrixVector;
-  std::cout << "Testing subSizeProvider... ";
-
-  // check if the sizeProvider yields the same result as given in t
-  auto pointsToSame = [](auto& o1, auto& o2) {
-    if (&o1 != &o2)
-      DUNE_THROW(Dune::Exception, "Unexpected subSizeProvider.");
-  };
-
-  // check if the sizeProvider yields the correct result for given vector type
-  auto testVectorRange = [&](const auto& v) {
-    sparseRangeFor(v, [&](auto&& vi, auto) {
-      pointsToSame(vi, SubSizeProviderAccess<std::decay_t<decltype(v)>>::test(vi));
-    });
-  };
-
-  // check if the sizeProvider yields the correct result for given matrix type
-  auto testMatrixRange = [&](const auto& m) {
-    sparseRangeFor(m, [&](auto&& mi, auto) {
-      sparseRangeFirst(mi, [&](auto&& mii) {
-        pointsToSame(mii, SubSizeProviderAccess<std::decay_t<decltype(m)>>::test(mi));
-      });
-    });
-  };
-
-  try {
-    // test vector types
-    testVectorRange(FV());
-    testVectorRange(BV(4));
-    testVectorRange(MV());
-    // test matrix types
-    testMatrixRange(FM());
-    testMatrixRange(createBM(4));
-    testMatrixRange(createMM(6,0));
-
-  } catch (Dune::Exception e) {
-    std::cout << "FAILURE." << std::endl;
-    std::cout << e << std::endl;
-    return false;
-  }
-
-  std::cout << "done." << std::endl;
-  return true;
-}
-
-bool checkResize() {
-  using namespace Dune::MatrixVector::Generic;
-  std::cout << "Testing resize... ";
-
-  // test failure for invalid static resize
-  try {
-    resize(FV(), Dune::FieldVector<int, 5>());
-    return false;
-  } catch (Dune::Exception) {
-    // TODO make sure the right exception is thrown
-  }
-
-  auto hasSize = [](auto&& size, auto&& expectedSize) {
-    if(size != expectedSize)
-      DUNE_THROW(Dune::Exception, "Resize created unexpected size.");
-  };
-
-  try {
-    // test vector types
-    BS bs, bs2;
-    resize(bs, bs2);
-    FV fv, fv2;
-    resize(fv, fv2);
-    BV bv, bv2(5);
-    resize(bv, bv2);
-    hasSize(bv.size(), (uint) 5);
-    MV mv, mv2;
-    using namespace Dune::Indices;
-    mv2[_0].resize(5);
-    resize(mv, mv2);
-    hasSize(mv[_0].size(), (uint) 5);
-    hasSize(mv[_1].size(), (uint) 0);
-    hasSize(mv[_2].size(), (uint) 3);
-    // test "natural" matrix types
-    FM fm;
-    resize(fv, fm);
-    BM bm = createBM(4);
-    resize(bv, bm);
-    hasSize(bv.size(), (uint) 4);
-    MM mm = createMM(0, 6);
-    resize(mv, mm);
-    hasSize(mv[_0].size(), (uint) 0);
-    hasSize(mv[_1].size(), (uint) 6);
-    hasSize(mv[_2].size(), (uint) 3);
-    // test "unnatural" matrix types
-    // TODO
-
-  } catch (Dune::Exception e) {
-    std::cout << "FAILURE." << std::endl;
-    std::cout << e << std::endl;
-    return false;
-  }
-
-  std::cout << "done." << std::endl;
-  return true;
-}
-
-public:
-
-bool check() {
-  std::cout << "Resize test starting.." << std::endl;
-  bool passed = true;
-
-  passed = passed and checkGetSize();
-  passed = passed and checkSubSizeProvider();
-  passed = passed and checkResize();
-  // TODO test ignore nodes type
-
-  if(passed)
-    std::cout << "Resize test succeeded.\n" << std::endl;
-  return passed;
-}
-
-};
-
-int main(int argc, char* argv[]) {
-  Dune::MPIHelper::instance(argc, argv);
-
-  bool passed = ResizeTestSuite().check();
-
-
-  if(not passed)
-    return 1;
-
-  return 0;
-}