aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/test/cxx11_tensor_of_strings.cpp
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2015-01-14 15:46:04 -0800
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2015-01-14 15:46:04 -0800
commitb5124e7cfda27ed99dcfcec8cb1b674efa1ef4a3 (patch)
tree7f8378843a756af14785e563689b4765e062a953 /unsupported/test/cxx11_tensor_of_strings.cpp
parent54e3633b437e44ed4d370c9f8868535192308ca3 (diff)
Created many additional tests
Diffstat (limited to 'unsupported/test/cxx11_tensor_of_strings.cpp')
-rw-r--r--unsupported/test/cxx11_tensor_of_strings.cpp54
1 files changed, 32 insertions, 22 deletions
diff --git a/unsupported/test/cxx11_tensor_of_strings.cpp b/unsupported/test/cxx11_tensor_of_strings.cpp
index 0ffa341c4..8d05d154e 100644
--- a/unsupported/test/cxx11_tensor_of_strings.cpp
+++ b/unsupported/test/cxx11_tensor_of_strings.cpp
@@ -8,19 +8,18 @@
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
#include "main.h"
-#include <string>
+
#include <Eigen/CXX11/Tensor>
-using std::string;
using Eigen::Tensor;
using Eigen::TensorMap;
static void test_assign()
{
- string data1[6];
- TensorMap<Tensor<string, 2>> mat1(data1, 2, 3);
- string data2[6];
- const TensorMap<Tensor<const string, 2>> mat2(data2, 2, 3);
+ std::string data1[6];
+ TensorMap<Tensor<std::string, 2>> mat1(data1, 2, 3);
+ std::string data2[6];
+ const TensorMap<Tensor<const std::string, 2>> mat2(data2, 2, 3);
for (int i = 0; i < 6; ++i) {
std::ostringstream s1;
@@ -31,16 +30,16 @@ static void test_assign()
data2[i] = s2.str();
}
- Tensor<string, 2> rslt1;
+ Tensor<std::string, 2> rslt1;
rslt1 = mat1;
- Tensor<string, 2> rslt2;
+ Tensor<std::string, 2> rslt2;
rslt2 = mat2;
- Tensor<string, 2> rslt3 = mat1;
- Tensor<string, 2> rslt4 = mat2;
+ Tensor<std::string, 2> rslt3 = mat1;
+ Tensor<std::string, 2> rslt4 = mat2;
- Tensor<string, 2> rslt5(mat1);
- Tensor<string, 2> rslt6(mat2);
+ Tensor<std::string, 2> rslt5(mat1);
+ Tensor<std::string, 2> rslt6(mat2);
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
@@ -57,8 +56,8 @@ static void test_assign()
static void test_concat()
{
- Tensor<string, 2> t1(2, 3);
- Tensor<string, 2> t2(2, 3);
+ Tensor<std::string, 2> t1(2, 3);
+ Tensor<std::string, 2> t2(2, 3);
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
@@ -71,7 +70,7 @@ static void test_concat()
}
}
- Tensor<string, 2> result = t1.concatenate(t2, 1);
+ Tensor<std::string, 2> result = t1.concatenate(t2, 1);
VERIFY_IS_EQUAL(result.dimension(0), 2);
VERIFY_IS_EQUAL(result.dimension(1), 6);
@@ -86,7 +85,7 @@ static void test_concat()
static void test_slices()
{
- Tensor<string, 2> data(2, 6);
+ Tensor<std::string, 2> data(2, 6);
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
std::ostringstream s1;
@@ -99,8 +98,8 @@ static void test_slices()
const Eigen::DSizes<ptrdiff_t, 2> first_half{{0, 0}};
const Eigen::DSizes<ptrdiff_t, 2> second_half{{0, 3}};
- Tensor<string, 2> t1 = data.slice(first_half, half_size);
- Tensor<string, 2> t2 = data.slice(second_half, half_size);
+ Tensor<std::string, 2> t1 = data.slice(first_half, half_size);
+ Tensor<std::string, 2> t2 = data.slice(second_half, half_size);
for (int i = 0; i < 2; ++i) {
for (int j = 0; j < 3; ++j) {
@@ -113,8 +112,8 @@ static void test_slices()
static void test_additions()
{
- Tensor<string, 1> data1(3);
- Tensor<string, 1> data2(3);
+ Tensor<std::string, 1> data1(3);
+ Tensor<std::string, 1> data2(3);
for (int i = 0; i < 3; ++i) {
data1(i) = "abc";
std::ostringstream s1;
@@ -122,16 +121,26 @@ static void test_additions()
data2(i) = s1.str();
}
- Tensor<string, 1> sum = data1 + data2;
+ Tensor<std::string, 1> sum = data1 + data2;
for (int i = 0; i < 3; ++i) {
std::ostringstream concat;
concat << "abc" << i;
- string expected = concat.str();
+ std::string expected = concat.str();
VERIFY_IS_EQUAL(sum(i), expected);
}
}
+static void test_initialization()
+{
+ Tensor<std::string, 2> a(2, 3);
+ a.setConstant(std::string("foo"));
+ for (int i = 0; i < 2*3; ++i) {
+ VERIFY_IS_EQUAL(a(i), std::string("foo"));
+ }
+}
+
+
void test_cxx11_tensor_of_strings()
{
// Beware: none of this is likely to ever work on a GPU.
@@ -139,4 +148,5 @@ void test_cxx11_tensor_of_strings()
CALL_SUBTEST(test_concat());
CALL_SUBTEST(test_slices());
CALL_SUBTEST(test_additions());
+ CALL_SUBTEST(test_initialization());
}