From 283f0d2ee68db808e937003cf3bfb59348136ae6 Mon Sep 17 00:00:00 2001 From: Kilian Weishaupt <kilian.weishaupt@iws.uni-stuttgart.de> Date: Fri, 4 Dec 2020 14:16:08 +0100 Subject: [PATCH] [test][io][rasterimagereader] Test more functionalties --- test/io/rasterimagereader/CMakeLists.txt | 5 +- .../blackwhite_dim_firstline.pbm | 5 ++ .../blackwhite_dim_firstline_binary.pbm | 3 ++ test/io/rasterimagereader/blackwhite_fail.pbm | 5 ++ .../grayscale_fail_binary.pgm | Bin 0 -> 94 bytes .../test_rasterimagereader.cc | 44 ++++++++++++++++++ 6 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 test/io/rasterimagereader/blackwhite_dim_firstline.pbm create mode 100644 test/io/rasterimagereader/blackwhite_dim_firstline_binary.pbm create mode 100644 test/io/rasterimagereader/blackwhite_fail.pbm create mode 100644 test/io/rasterimagereader/grayscale_fail_binary.pgm diff --git a/test/io/rasterimagereader/CMakeLists.txt b/test/io/rasterimagereader/CMakeLists.txt index 5dbae8b466..3488e608f1 100644 --- a/test/io/rasterimagereader/CMakeLists.txt +++ b/test/io/rasterimagereader/CMakeLists.txt @@ -1,4 +1,7 @@ -dune_symlink_to_source_files(FILES blackwhite_j.pbm blackwhite_binary_j.pbm blackwhite_j.txt grayscale_j.pgm grayscale_binary_j.pgm grayscale_j.txt) +dune_symlink_to_source_files(FILES blackwhite_j.pbm blackwhite_binary_j.pbm blackwhite_j.txt + grayscale_j.pgm grayscale_binary_j.pgm grayscale_j.txt + blackwhite_dim_firstline.pbm blackwhite_dim_firstline_binary.pbm + blackwhite_fail.pbm grayscale_fail_binary.pgm) dumux_add_test(NAME test_io_rasterimagereader SOURCES test_rasterimagereader.cc diff --git a/test/io/rasterimagereader/blackwhite_dim_firstline.pbm b/test/io/rasterimagereader/blackwhite_dim_firstline.pbm new file mode 100644 index 0000000000..adfff86bba --- /dev/null +++ b/test/io/rasterimagereader/blackwhite_dim_firstline.pbm @@ -0,0 +1,5 @@ +P1 2 2 +# delete this +1 0 +# delete this +0 1 diff --git a/test/io/rasterimagereader/blackwhite_dim_firstline_binary.pbm b/test/io/rasterimagereader/blackwhite_dim_firstline_binary.pbm new file mode 100644 index 0000000000..2dddbeb483 --- /dev/null +++ b/test/io/rasterimagereader/blackwhite_dim_firstline_binary.pbm @@ -0,0 +1,3 @@ +P4 2 2 +# dimensions given in first line +€@ diff --git a/test/io/rasterimagereader/blackwhite_fail.pbm b/test/io/rasterimagereader/blackwhite_fail.pbm new file mode 100644 index 0000000000..b3f1c44cdb --- /dev/null +++ b/test/io/rasterimagereader/blackwhite_fail.pbm @@ -0,0 +1,5 @@ +P1 +# we expect this to fail because line three contains more than just the two dimensions +2 2 1 +0 +0 1 diff --git a/test/io/rasterimagereader/grayscale_fail_binary.pgm b/test/io/rasterimagereader/grayscale_fail_binary.pgm new file mode 100644 index 0000000000000000000000000000000000000000..225e05dc7e2dfb44c6d4f509addeeb22d36cfa0c GIT binary patch literal 94 zcmWNGOA3H65XHKlQ#^2^OAEb+SE%I`3;wVp>gnrjLP(|{9Ug-3$)wPwROo>m%ZiyP l-jx=45jG<Bdz*P7W;I$z*_E~Ehu()Uh=&&wjN)2z@&nP*9u)up literal 0 HcmV?d00001 diff --git a/test/io/rasterimagereader/test_rasterimagereader.cc b/test/io/rasterimagereader/test_rasterimagereader.cc index f4cc8b7028..491a4fab09 100644 --- a/test/io/rasterimagereader/test_rasterimagereader.cc +++ b/test/io/rasterimagereader/test_rasterimagereader.cc @@ -90,6 +90,35 @@ int main(int argc, char** argv) std::cout << std::endl; + // test file where the dimensions are given in the same line as the magic number and comments are present + const std::vector<bool> reference{1,0,0,1}; + + if (!isEqual(reference, NetPBMReader::readPBM("blackwhite_dim_firstline.pbm", false))) + { + std::cout << "Reading black/white with dimension in first line failed" << std::endl; + return 1; + } + if (!isEqual(reference, NetPBMReader::readPBM("blackwhite_dim_firstline.pbm", false))) + { + std::cout << "Reading black/white (binary) with dimension in first line failed" << std::endl; + return 1; + } + + // test error message for poorly formatted file + try + { + NetPBMReader::readPBM("blackwhite_fail.pbm", false); + } + catch(const Dune::IOError& e) + { + const auto tokens = tokenize(e.what(), "]:"); + if (tokens.back() != " Expecting only dimensions (2 numbers) in line 3") + { + std::cout << e.what() << std::endl; + return 1; + } + } + ////////////////////////////////////////////////// // Test the gray scale image reader ////////////////////////////////////////////////// @@ -126,5 +155,20 @@ int main(int argc, char** argv) return 1; } + // test error message for poorly formatted file + try + { + NetPBMReader::readPBM("grayscale_fail_binary.pgm", false); + } + catch(const Dune::IOError& e) + { + const auto tokens = tokenize(e.what(), "]:"); + if (tokens.back() != " Expecting only intensity (one number) in line 4") + { + std::cout << e.what() << std::endl; + return 1; + } + } + return 0; } -- GitLab