From f9ce9594dcaf8059669272445773ea24580c7ee3 Mon Sep 17 00:00:00 2001 From: danshapero Date: Mon, 16 Jan 2017 23:11:35 -0800 Subject: [PATCH] Test for FullMatrix move operations --- tests/full_matrix/full_matrix_move.cc | 52 +++++++++++++++++++ .../full_matrix_move.with_cxx11=on.output | 11 ++++ 2 files changed, 63 insertions(+) create mode 100644 tests/full_matrix/full_matrix_move.cc create mode 100644 tests/full_matrix/full_matrix_move.with_cxx11=on.output diff --git a/tests/full_matrix/full_matrix_move.cc b/tests/full_matrix/full_matrix_move.cc new file mode 100644 index 0000000000..b1b3dda8d8 --- /dev/null +++ b/tests/full_matrix/full_matrix_move.cc @@ -0,0 +1,52 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2017 by the deal.II authors +// +// This file is part of the deal.II library. +// +// The deal.II library is free software; you can use it, redistribute +// it, and/or modify it under the terms of the GNU Lesser General +// Public License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// The full text of the license can be found in the file LICENSE at +// the top level of the deal.II distribution. +// +// --------------------------------------------------------------------- + + +// Check that FullMatrix objects can be move constructed and assigned + +#include "../tests.h" + +#include + +int main() +{ + std::ofstream logfile("output"); + deallog.attach(logfile); + deallog.threshold_double(1.0e-10); + + size_t m = 2, n = 3; + FullMatrix A(m, n); + for (size_t i = 0; i < m; ++i) + for (size_t j = 0; j < n; ++j) + A(i, j) = n * i + j; + + deallog << "Size of A:" << std::endl + << A.m() << " " << A.n() << std::endl; + + FullMatrix B = std::move(A); + + deallog << "Size of B:" << std::endl + << B.m() << " " << B.n() << std::endl; + deallog << "Size of A:" << std::endl + << A.m() << " " << A.n() << std::endl; + + A = std::move(B); + deallog << "Size of B:" << std::endl + << B.m() << " " << B.n() << std::endl; + deallog << "Size of A:" << std::endl + << A.m() << " " << A.n() << std::endl; + + return 0; +} diff --git a/tests/full_matrix/full_matrix_move.with_cxx11=on.output b/tests/full_matrix/full_matrix_move.with_cxx11=on.output new file mode 100644 index 0000000000..973682ba8c --- /dev/null +++ b/tests/full_matrix/full_matrix_move.with_cxx11=on.output @@ -0,0 +1,11 @@ + +DEAL::Size of A: +DEAL::2 3 +DEAL::Size of B: +DEAL::2 3 +DEAL::Size of A: +DEAL::0 0 +DEAL::Size of B: +DEAL::0 0 +DEAL::Size of A: +DEAL::2 3 -- 2.39.5