aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/evaluators.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/evaluators.cpp')
-rw-r--r--test/evaluators.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/test/evaluators.cpp b/test/evaluators.cpp
index fa545c7a5..5a123f0ad 100644
--- a/test/evaluators.cpp
+++ b/test/evaluators.cpp
@@ -197,7 +197,22 @@ void test_evaluators()
VERIFY_IS_APPROX_EVALUATOR(arr2, arr1.reverse());
VERIFY_IS_APPROX_EVALUATOR(arr2, arr1.colwise().reverse());
VERIFY_IS_APPROX_EVALUATOR(arr2, arr1.rowwise().reverse());
-
arr2.reverse() = arr1;
VERIFY_IS_APPROX(arr2, arr1.reverse());
+
+ // test Diagonal
+ VERIFY_IS_APPROX_EVALUATOR(vec1, mat1.diagonal());
+ vec1.resize(5);
+ VERIFY_IS_APPROX_EVALUATOR(vec1, mat1.diagonal(1));
+ VERIFY_IS_APPROX_EVALUATOR(vec1, mat1.diagonal<-1>());
+ vec1.setRandom();
+
+ mat2 = mat1;
+ copy_using_evaluator(mat1.diagonal(1), vec1);
+ mat2.diagonal(1) = vec1;
+ VERIFY_IS_APPROX(mat1, mat2);
+
+ copy_using_evaluator(mat1.diagonal<-1>(), mat1.diagonal(1));
+ mat2.diagonal<-1>() = mat2.diagonal(1);
+ VERIFY_IS_APPROX(mat1, mat2);
}