From: Timo Heister Date: Fri, 27 Aug 2010 13:37:30 +0000 (+0000) Subject: add test for DataOutReader::merge. Currently failing. Why does the -1 change to 0 in X-Git-Tag: v8.0.0~5650 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ae5003e95738fcb1cd4dbd74c9bfeb82938ffd2;p=dealii.git add test for DataOutReader::merge. Currently failing. Why does the -1 change to 0 in the second patch? git-svn-id: https://svn.dealii.org/trunk@21748 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/tests/base/Makefile b/tests/base/Makefile index e3055c1da2..c657cb1143 100644 --- a/tests/base/Makefile +++ b/tests/base/Makefile @@ -84,6 +84,7 @@ tests_x = geometry_info_* \ anisotropic_* \ hierarchical \ data_out_base \ + data_out_reader_* \ data_out_base_* \ function_* \ functions_* \ diff --git a/tests/base/data_out_reader_01.cc b/tests/base/data_out_reader_01.cc new file mode 100644 index 0000000000..d16129fd08 --- /dev/null +++ b/tests/base/data_out_reader_01.cc @@ -0,0 +1,105 @@ +//----------------------------------------------------------------------------- +// $Id: data_out_base_gnuplot.cc 20952 2010-04-06 15:02:46Z bangerth $ +// Version: $Name$ +// +// Copyright (C) 2006, 2007 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//----------------------------------------------------------------------------- + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include + +#include "patches.h" + +// test DataOutReader::merge + +void cat_file(const char * filename) +{ + std::ifstream in(filename); + while (in) + { + std::string s; + std::getline(in, s); + deallog.get_file_stream() << s << "\n"; + } +} + +template +void check(const char * name, DataOutBase::Deal_II_IntermediateFlags flags, + std::ostream& out) +{ + const unsigned int np = 1; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + + DataOutBase::write_deal_II_intermediate(patches, names, vectors, flags, out); + + DataOutReader data; + { + std::ifstream input(name); + data.read (input); + } + DataOutReader additional_data; + { + std::ifstream input(name); + additional_data.read (input); + } + + data.merge (additional_data); + + { + std::ofstream out2( "data_out_reader_01/outfile"); + data.write_deal_II_intermediate (out2); + } + + cat_file("data_out_reader_01/outfile"); +} + + +template +void check_all(std::ostream& log) +{ + char name[100]; + const char* format = "data_out_reader_01/%d%d.d2"; + DataOutBase::Deal_II_IntermediateFlags flags; + { + sprintf(name, format, dim, spacedim, ""); + + std::ofstream out(name); + + check(name, flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_reader_01/output"); + deallog.attach(logfile); + + // check_all<1,1>(logfile); + // check_all<1,2>(logfile); + check_all<2,2>(logfile); + // check_all<2,3>(logfile); + // check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_reader_01/cmp/generic b/tests/base/data_out_reader_01/cmp/generic new file mode 100644 index 0000000000..f9bc181acd --- /dev/null +++ b/tests/base/data_out_reader_01/cmp/generic @@ -0,0 +1,24 @@ + +2 2 +[deal.II intermediate format graphics data] +[written by deal.II 6.3.pre] +[Version: 3] +5 +x1 +x2 +x3 +x4 +i +1 +[deal.II intermediate Patch<2,2>] +0 0 1 0 1 1 0 1 +4294967295 4294967295 4294967295 4294967295 +4294967295 1 +0 +5 4 +0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 1 2 3 + + +0 + +