xref: /aosp_15_r20/external/eigen/test/resize.cpp (revision bf2c37156dfe67e5dfebd6d394bad8b2ab5804d4)
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 Li void 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 Li void resizeLikeTest12() { resizeLikeTest<1,2>(); }
resizeLikeTest1020()33*bf2c3715SXin Li void resizeLikeTest1020() { resizeLikeTest<10,20>(); }
resizeLikeTest31()34*bf2c3715SXin Li void resizeLikeTest31() { resizeLikeTest<3,1>(); }
35*bf2c3715SXin Li 
EIGEN_DECLARE_TEST(resize)36*bf2c3715SXin Li EIGEN_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