aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/evaluators.cpp
diff options
context:
space:
mode:
authorGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2011-04-22 22:36:45 +0100
committerGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2011-04-22 22:36:45 +0100
commit3457965bf58e0af559b6c2b43cbeb9bcf15f51f8 (patch)
tree5d0f03f6293af322177b474c689b817ba6ba9cbe /test/evaluators.cpp
parentf924722f3b9df48fc0c7d27cc46e0d8f6c994aa4 (diff)
Implement evaluator for Diagonal.
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);
}