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) 2016 Gael Guennebaud <[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
EIGEN_DECLARE_TEST(array_of_string)12*bf2c3715SXin Li EIGEN_DECLARE_TEST(array_of_string)
13*bf2c3715SXin Li {
14*bf2c3715SXin Li typedef Array<std::string,1,Dynamic> ArrayXs;
15*bf2c3715SXin Li ArrayXs a1(3), a2(3), a3(3), a3ref(3);
16*bf2c3715SXin Li a1 << "one", "two", "three";
17*bf2c3715SXin Li a2 << "1", "2", "3";
18*bf2c3715SXin Li a3ref << "one (1)", "two (2)", "three (3)";
19*bf2c3715SXin Li std::stringstream s1;
20*bf2c3715SXin Li s1 << a1;
21*bf2c3715SXin Li VERIFY_IS_EQUAL(s1.str(), std::string(" one two three"));
22*bf2c3715SXin Li a3 = a1 + std::string(" (") + a2 + std::string(")");
23*bf2c3715SXin Li VERIFY((a3==a3ref).all());
24*bf2c3715SXin Li
25*bf2c3715SXin Li a3 = a1;
26*bf2c3715SXin Li a3 += std::string(" (") + a2 + std::string(")");
27*bf2c3715SXin Li VERIFY((a3==a3ref).all());
28*bf2c3715SXin Li
29*bf2c3715SXin Li a1.swap(a3);
30*bf2c3715SXin Li VERIFY((a1==a3ref).all());
31*bf2c3715SXin Li VERIFY((a3!=a3ref).all());
32*bf2c3715SXin Li }
33