diff options
author | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2011-04-22 22:36:45 +0100 |
---|---|---|
committer | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2011-04-22 22:36:45 +0100 |
commit | 3457965bf58e0af559b6c2b43cbeb9bcf15f51f8 (patch) | |
tree | 5d0f03f6293af322177b474c689b817ba6ba9cbe /test/evaluators.cpp | |
parent | f924722f3b9df48fc0c7d27cc46e0d8f6c994aa4 (diff) |
Implement evaluator for Diagonal.
Diffstat (limited to 'test/evaluators.cpp')
-rw-r--r-- | test/evaluators.cpp | 17 |
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); } |