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