1*bf2c3715SXin Li // This file is part of Eigen, a lightweight C++ template library 2*bf2c3715SXin Li // for linear algebra. 3*bf2c3715SXin Li // 4*bf2c3715SXin Li // Copyright (C) 2009 Keir Mierle <[email protected]> 5*bf2c3715SXin Li // 6*bf2c3715SXin Li // This Source Code Form is subject to the terms of the Mozilla 7*bf2c3715SXin Li // Public License v. 2.0. If a copy of the MPL was not distributed 8*bf2c3715SXin Li // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9*bf2c3715SXin Li 10*bf2c3715SXin Li #include "main.h" 11*bf2c3715SXin Li 12*bf2c3715SXin Li template<DenseIndex rows, DenseIndex cols> resizeLikeTest()13*bf2c3715SXin Livoid resizeLikeTest() 14*bf2c3715SXin Li { 15*bf2c3715SXin Li MatrixXf A(rows, cols); 16*bf2c3715SXin Li MatrixXf B; 17*bf2c3715SXin Li Matrix<double, rows, cols> C; 18*bf2c3715SXin Li B.resizeLike(A); 19*bf2c3715SXin Li C.resizeLike(B); // Shouldn't crash. 20*bf2c3715SXin Li VERIFY(B.rows() == rows && B.cols() == cols); 21*bf2c3715SXin Li 22*bf2c3715SXin Li VectorXf x(rows); 23*bf2c3715SXin Li RowVectorXf y; 24*bf2c3715SXin Li y.resizeLike(x); 25*bf2c3715SXin Li VERIFY(y.rows() == 1 && y.cols() == rows); 26*bf2c3715SXin Li 27*bf2c3715SXin Li y.resize(cols); 28*bf2c3715SXin Li x.resizeLike(y); 29*bf2c3715SXin Li VERIFY(x.rows() == cols && x.cols() == 1); 30*bf2c3715SXin Li } 31*bf2c3715SXin Li resizeLikeTest12()32*bf2c3715SXin Livoid resizeLikeTest12() { resizeLikeTest<1,2>(); } resizeLikeTest1020()33*bf2c3715SXin Livoid resizeLikeTest1020() { resizeLikeTest<10,20>(); } resizeLikeTest31()34*bf2c3715SXin Livoid resizeLikeTest31() { resizeLikeTest<3,1>(); } 35*bf2c3715SXin Li EIGEN_DECLARE_TEST(resize)36*bf2c3715SXin LiEIGEN_DECLARE_TEST(resize) 37*bf2c3715SXin Li { 38*bf2c3715SXin Li CALL_SUBTEST(resizeLikeTest12() ); 39*bf2c3715SXin Li CALL_SUBTEST(resizeLikeTest1020() ); 40*bf2c3715SXin Li CALL_SUBTEST(resizeLikeTest31() ); 41*bf2c3715SXin Li } 42