From 737e6218813a19220076a8894edd339b837343c2 Mon Sep 17 00:00:00 2001 From: Andrew Bell Date: Fri, 28 Oct 2016 17:07:29 -0500 Subject: [PATCH] Add TextWriterTest Close #1076 --- test/data/text/utm17_2.txt | 2 +- test/unit/CMakeLists.txt | 1 + test/unit/io/text/TextWriterTest.cpp | 105 +++++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 test/unit/io/text/TextWriterTest.cpp diff --git a/test/data/text/utm17_2.txt b/test/data/text/utm17_2.txt index afd67e60ff..a03955fc89 100644 --- a/test/data/text/utm17_2.txt +++ b/test/data/text/utm17_2.txt @@ -1,4 +1,4 @@ -X Y Z +X Y Z 289814.15 4320978.61 170.76 289814.64 4320978.84 170.76 289815.12 4320979.06 170.75 diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index 432450f556..4a2dff95ab 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -100,6 +100,7 @@ PDAL_ADD_TEST(pdal_io_sbet_reader_test FILES io/sbet/SbetReaderTest.cpp) PDAL_ADD_TEST(pdal_io_sbet_writer_test FILES io/sbet/SbetWriterTest.cpp) PDAL_ADD_TEST(pdal_io_terrasolid_test FILES io/terrasolid/TerrasolidReaderTest.cpp) PDAL_ADD_TEST(pdal_io_text_test FILES io/text/TextReaderTest.cpp) +PDAL_ADD_TEST(pdal_io_text_writer_test FILES io/text/TextWriterTest.cpp) # # sources for the native filters diff --git a/test/unit/io/text/TextWriterTest.cpp b/test/unit/io/text/TextWriterTest.cpp new file mode 100644 index 0000000000..ae50df9cc8 --- /dev/null +++ b/test/unit/io/text/TextWriterTest.cpp @@ -0,0 +1,105 @@ +/****************************************************************************** + * Copyright (c) 2016, Hobu Inc. (info@hobu.co) + * + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following + * conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Hobu, Inc. nor the + * names of its contributors may be used to endorse or promote + * products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + ****************************************************************************/ + +#include + +#include "Support.hpp" + +#include +#include + +using namespace pdal; + +TEST(TextWriterTest, t1) +{ + std::string outfile(Support::temppath("utm17.txt")); + std::string infile(Support::datapath("text/utm17_1.txt")); + + FileUtils::deleteFile(outfile); + + TextReader r; + Options ro; + + ro.add("filename", infile); + r.setOptions(ro); + + TextWriter w; + Options wo; + + wo.add("filename", outfile); + wo.add("order", "X,Y,Z"); + wo.add("quote_header", false); + wo.add("precision", 2); + w.setOptions(wo); + w.setInput(r); + + PointTable t; + + w.prepare(t); + w.execute(t); + + EXPECT_EQ(Support::compare_text_files(infile, outfile), true); +} + +TEST(TextWriterTest, t2) +{ + std::string outfile(Support::temppath("utm17.txt")); + std::string infile(Support::datapath("text/utm17_2.txt")); + + FileUtils::deleteFile(outfile); + + TextReader r; + Options ro; + + ro.add("filename", infile); + r.setOptions(ro); + + TextWriter w; + Options wo; + + wo.add("filename", outfile); + wo.add("order", "X,Y,Z"); + wo.add("quote_header", false); + wo.add("precision", 2); + wo.add("delimiter", " "); + w.setOptions(wo); + w.setInput(r); + + PointTable t; + + w.prepare(t); + w.execute(t); + + EXPECT_EQ(Support::compare_text_files(infile, outfile), true); +}