summaryrefslogtreecommitdiffhomepage
path: root/eigen/test/zerosized.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2019-03-03 21:09:10 +0100
committerStanislaw Halik <sthalik@misaki.pl>2019-03-03 21:10:13 +0100
commitf0238cfb6997c4acfc2bd200de7295f3fa36968f (patch)
treeb215183760e4f615b9c1dabc1f116383b72a1b55 /eigen/test/zerosized.cpp
parent543edd372a5193d04b3de9f23c176ab439e51b31 (diff)
don't index Eigen
Diffstat (limited to 'eigen/test/zerosized.cpp')
-rw-r--r--eigen/test/zerosized.cpp102
1 files changed, 0 insertions, 102 deletions
diff --git a/eigen/test/zerosized.cpp b/eigen/test/zerosized.cpp
deleted file mode 100644
index 477ff00..0000000
--- a/eigen/test/zerosized.cpp
+++ /dev/null
@@ -1,102 +0,0 @@
-// This file is part of Eigen, a lightweight C++ template library
-// for linear algebra.
-//
-// Copyright (C) 2011 Benoit Jacob <jacob.benoit.1@gmail.com>
-//
-// This Source Code Form is subject to the terms of the Mozilla
-// Public License v. 2.0. If a copy of the MPL was not distributed
-// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-#include "main.h"
-
-
-template<typename MatrixType> void zeroReduction(const MatrixType& m) {
- // Reductions that must hold for zero sized objects
- VERIFY(m.all());
- VERIFY(!m.any());
- VERIFY(m.prod()==1);
- VERIFY(m.sum()==0);
- VERIFY(m.count()==0);
- VERIFY(m.allFinite());
- VERIFY(!m.hasNaN());
-}
-
-
-template<typename MatrixType> void zeroSizedMatrix()
-{
- MatrixType t1;
- typedef typename MatrixType::Scalar Scalar;
-
- if (MatrixType::SizeAtCompileTime == Dynamic || MatrixType::SizeAtCompileTime == 0)
- {
- zeroReduction(t1);
- if (MatrixType::RowsAtCompileTime == Dynamic)
- VERIFY(t1.rows() == 0);
- if (MatrixType::ColsAtCompileTime == Dynamic)
- VERIFY(t1.cols() == 0);
-
- if (MatrixType::RowsAtCompileTime == Dynamic && MatrixType::ColsAtCompileTime == Dynamic)
- {
-
- MatrixType t2(0, 0), t3(t1);
- VERIFY(t2.rows() == 0);
- VERIFY(t2.cols() == 0);
-
- zeroReduction(t2);
- VERIFY(t1==t2);
- }
- }
-
- if(MatrixType::MaxColsAtCompileTime!=0 && MatrixType::MaxRowsAtCompileTime!=0)
- {
- Index rows = MatrixType::RowsAtCompileTime==Dynamic ? internal::random<Index>(1,10) : Index(MatrixType::RowsAtCompileTime);
- Index cols = MatrixType::ColsAtCompileTime==Dynamic ? internal::random<Index>(1,10) : Index(MatrixType::ColsAtCompileTime);
- MatrixType m(rows,cols);
- zeroReduction(m.template block<0,MatrixType::ColsAtCompileTime>(0,0,0,cols));
- zeroReduction(m.template block<MatrixType::RowsAtCompileTime,0>(0,0,rows,0));
- zeroReduction(m.template block<0,1>(0,0));
- zeroReduction(m.template block<1,0>(0,0));
- Matrix<Scalar,Dynamic,Dynamic> prod = m.template block<MatrixType::RowsAtCompileTime,0>(0,0,rows,0) * m.template block<0,MatrixType::ColsAtCompileTime>(0,0,0,cols);
- VERIFY(prod.rows()==rows && prod.cols()==cols);
- VERIFY(prod.isZero());
- prod = m.template block<1,0>(0,0) * m.template block<0,1>(0,0);
- VERIFY(prod.size()==1);
- VERIFY(prod.isZero());
- }
-}
-
-template<typename VectorType> void zeroSizedVector()
-{
- VectorType t1;
-
- if (VectorType::SizeAtCompileTime == Dynamic || VectorType::SizeAtCompileTime==0)
- {
- zeroReduction(t1);
- VERIFY(t1.size() == 0);
- VectorType t2(DenseIndex(0)); // DenseIndex disambiguates with 0-the-null-pointer (error with gcc 4.4 and MSVC8)
- VERIFY(t2.size() == 0);
- zeroReduction(t2);
-
- VERIFY(t1==t2);
- }
-}
-
-void test_zerosized()
-{
- zeroSizedMatrix<Matrix2d>();
- zeroSizedMatrix<Matrix3i>();
- zeroSizedMatrix<Matrix<float, 2, Dynamic> >();
- zeroSizedMatrix<MatrixXf>();
- zeroSizedMatrix<Matrix<float, 0, 0> >();
- zeroSizedMatrix<Matrix<float, Dynamic, 0, 0, 0, 0> >();
- zeroSizedMatrix<Matrix<float, 0, Dynamic, 0, 0, 0> >();
- zeroSizedMatrix<Matrix<float, Dynamic, Dynamic, 0, 0, 0> >();
- zeroSizedMatrix<Matrix<float, 0, 4> >();
- zeroSizedMatrix<Matrix<float, 4, 0> >();
-
- zeroSizedVector<Vector2d>();
- zeroSizedVector<Vector3i>();
- zeroSizedVector<VectorXf>();
- zeroSizedVector<Matrix<float, 0, 1> >();
- zeroSizedVector<Matrix<float, 1, 0> >();
-}