From 3439c89b6ae475230814a28d009d2bfcfe8f494b Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Sat, 28 Nov 2015 15:57:45 -0600 Subject: [PATCH] Add tests. --- tests/base/signaling_nan_derivative_form.cc | 59 +++++++++++++++++++ .../base/signaling_nan_derivative_form.output | 3 + tests/base/signaling_nan_symmetric_tensor.cc | 58 ++++++++++++++++++ .../signaling_nan_symmetric_tensor.output | 3 + tests/base/signaling_nan_tensor.cc | 58 ++++++++++++++++++ tests/base/signaling_nan_tensor.output | 3 + 6 files changed, 184 insertions(+) create mode 100644 tests/base/signaling_nan_derivative_form.cc create mode 100644 tests/base/signaling_nan_derivative_form.output create mode 100644 tests/base/signaling_nan_symmetric_tensor.cc create mode 100644 tests/base/signaling_nan_symmetric_tensor.output create mode 100644 tests/base/signaling_nan_tensor.cc create mode 100644 tests/base/signaling_nan_tensor.output diff --git a/tests/base/signaling_nan_derivative_form.cc b/tests/base/signaling_nan_derivative_form.cc new file mode 100644 index 0000000000..18d9cfde09 --- /dev/null +++ b/tests/base/signaling_nan_derivative_form.cc @@ -0,0 +1,59 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2015 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 numbers::signaling_nan +// +// the test only checks that the function can be called. It would have +// been nicer to output the tensors (which would also verify the +// correct output type, as well as that indeed *each* element is +// correctly filled), but outputting a sNaN triggers a floating point +// exception as well + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + + + +template +void check () +{ + numbers::signaling_nan >(); + numbers::signaling_nan >(); + + deallog << "OK" << std::endl; +} + + +int main () +{ + std::ofstream logfile("output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + check (); + check (); + + return 0; +} + + diff --git a/tests/base/signaling_nan_derivative_form.output b/tests/base/signaling_nan_derivative_form.output new file mode 100644 index 0000000000..8b3b075900 --- /dev/null +++ b/tests/base/signaling_nan_derivative_form.output @@ -0,0 +1,3 @@ + +DEAL::OK +DEAL::OK diff --git a/tests/base/signaling_nan_symmetric_tensor.cc b/tests/base/signaling_nan_symmetric_tensor.cc new file mode 100644 index 0000000000..105d40c7c5 --- /dev/null +++ b/tests/base/signaling_nan_symmetric_tensor.cc @@ -0,0 +1,58 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2015 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 numbers::signaling_nan +// +// the test only checks that the function can be called. It would have +// been nicer to output the tensors (which would also verify the +// correct output type, as well as that indeed *each* element is +// correctly filled), but outputting a sNaN triggers a floating point +// exception as well + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + + +template +void check () +{ + numbers::signaling_nan >(); + numbers::signaling_nan >(); + + deallog << "OK" << std::endl; +} + + +int main () +{ + std::ofstream logfile("output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + check (); + check (); + + return 0; +} + + diff --git a/tests/base/signaling_nan_symmetric_tensor.output b/tests/base/signaling_nan_symmetric_tensor.output new file mode 100644 index 0000000000..8b3b075900 --- /dev/null +++ b/tests/base/signaling_nan_symmetric_tensor.output @@ -0,0 +1,3 @@ + +DEAL::OK +DEAL::OK diff --git a/tests/base/signaling_nan_tensor.cc b/tests/base/signaling_nan_tensor.cc new file mode 100644 index 0000000000..88ad0d2ebb --- /dev/null +++ b/tests/base/signaling_nan_tensor.cc @@ -0,0 +1,58 @@ +// --------------------------------------------------------------------- +// +// Copyright (C) 2015 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 numbers::signaling_nan +// +// the test only checks that the function can be called. It would have +// been nicer to output the tensors (which would also verify the +// correct output type, as well as that indeed *each* element is +// correctly filled), but outputting a sNaN triggers a floating point +// exception as well + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + + +template +void check () +{ + numbers::signaling_nan >(); + numbers::signaling_nan >(); + numbers::signaling_nan >(); + + deallog << "OK" << std::endl; +} + + +int main () +{ + std::ofstream logfile("output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + check (); + check (); + + return 0; +} + diff --git a/tests/base/signaling_nan_tensor.output b/tests/base/signaling_nan_tensor.output new file mode 100644 index 0000000000..8b3b075900 --- /dev/null +++ b/tests/base/signaling_nan_tensor.output @@ -0,0 +1,3 @@ + +DEAL::OK +DEAL::OK -- 2.39.5