aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/test/cxx11_tensor_fixed_size.cpp
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2015-10-29 17:56:48 -0700
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2015-10-29 17:56:48 -0700
commit31bdafac67268ace9c4eeda4a225379609ce8b99 (patch)
tree4319272836a27e6f126b84876596205e112df143 /unsupported/test/cxx11_tensor_fixed_size.cpp
parentce19e38c1f1f31f7b7588504b3ce93c34bbd7a12 (diff)
Added a few tests to cover rank-0 tensors
Diffstat (limited to 'unsupported/test/cxx11_tensor_fixed_size.cpp')
-rw-r--r--unsupported/test/cxx11_tensor_fixed_size.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/unsupported/test/cxx11_tensor_fixed_size.cpp b/unsupported/test/cxx11_tensor_fixed_size.cpp
index 5252e4d72..1c33fefb3 100644
--- a/unsupported/test/cxx11_tensor_fixed_size.cpp
+++ b/unsupported/test/cxx11_tensor_fixed_size.cpp
@@ -15,6 +15,33 @@ using Eigen::Tensor;
using Eigen::RowMajor;
+static void test_0d()
+{
+ TensorFixedSize<float, Sizes<> > scalar1;
+ TensorFixedSize<float, Sizes<>, RowMajor> scalar2;
+ VERIFY_IS_EQUAL(scalar1.rank(), 0);
+
+ scalar1() = 7.0;
+ scalar2() = 13.0;
+
+ // Test against shallow copy.
+ TensorFixedSize<float, Sizes<> > copy = scalar1;
+ VERIFY_IS_NOT_EQUAL(scalar1.data(), copy.data());
+ VERIFY_IS_APPROX(scalar1(), copy());
+ copy = scalar1;
+ VERIFY_IS_NOT_EQUAL(scalar1.data(), copy.data());
+ VERIFY_IS_APPROX(scalar1(), copy());
+
+ TensorFixedSize<float, Sizes<> > scalar3 = scalar1.sqrt();
+ TensorFixedSize<float, Sizes<>, RowMajor> scalar4 = scalar2.sqrt();
+ VERIFY_IS_EQUAL(scalar3.rank(), 0);
+ VERIFY_IS_APPROX(scalar3(), sqrtf(7.0));
+ VERIFY_IS_APPROX(scalar4(), sqrtf(13.0));
+
+ scalar3 = scalar1 + scalar2;
+ VERIFY_IS_APPROX(scalar3(), 7.0f + 13.0f);
+}
+
static void test_1d()
{
TensorFixedSize<float, Sizes<6> > vec1;
@@ -223,6 +250,7 @@ static void test_array()
void test_cxx11_tensor_fixed_size()
{
+ CALL_SUBTEST(test_0d());
CALL_SUBTEST(test_1d());
CALL_SUBTEST(test_tensor_map());
CALL_SUBTEST(test_2d());