array_of_string.cpp 953 B

1234567891011121314151617181920212223242526272829303132
  1. // This file is part of Eigen, a lightweight C++ template library
  2. // for linear algebra.
  3. //
  4. // Copyright (C) 2016 Gael Guennebaud <gael.guennebaud@inria.fr>
  5. //
  6. // This Source Code Form is subject to the terms of the Mozilla
  7. // Public License v. 2.0. If a copy of the MPL was not distributed
  8. // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
  9. #include "main.h"
  10. void test_array_of_string()
  11. {
  12. typedef Array<std::string,1,Dynamic> ArrayXs;
  13. ArrayXs a1(3), a2(3), a3(3), a3ref(3);
  14. a1 << "one", "two", "three";
  15. a2 << "1", "2", "3";
  16. a3ref << "one (1)", "two (2)", "three (3)";
  17. std::stringstream s1;
  18. s1 << a1;
  19. VERIFY_IS_EQUAL(s1.str(), std::string(" one two three"));
  20. a3 = a1 + std::string(" (") + a2 + std::string(")");
  21. VERIFY((a3==a3ref).all());
  22. a3 = a1;
  23. a3 += std::string(" (") + a2 + std::string(")");
  24. VERIFY((a3==a3ref).all());
  25. a1.swap(a3);
  26. VERIFY((a1==a3ref).all());
  27. VERIFY((a3!=a3ref).all());
  28. }