Skip to content

Commit 6088780

Browse files
committed
{test} Move DIST extension test code to own file
1 parent c3a792f commit 6088780

7 files changed

Lines changed: 251 additions & 137 deletions

File tree

test/include/Helpers.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// libE57Format testing Copyright © 2022 Andy Maloney <asmaloney@gmail.com>
33
// SPDX-License-Identifier: BSL-1.0
44

5+
#include "E57SimpleData.h"
6+
57
// GoogleTest's ASSERT_NO_THROW() doesn't let us show any info about the exceptions.
68
// This wrapper macro will output the e57::E57Exception context on failure.
79
// The static_assert is simply there to require a semicolon after the macro so it matches the
@@ -26,3 +28,9 @@
2628

2729
#define VALIDATE_BASIC ( E57_VALIDATION_LEVEL > VALIDATION_OFF )
2830
#define VALIDATE_DEEP ( E57_VALIDATION_LEVEL > VALIDATION_BASIC )
31+
32+
namespace TestHelper
33+
{
34+
// Checks that the E57 file header has the expected values
35+
void CheckFileHeader( const e57::E57Root &fileHeader );
36+
}

test/src/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
target_sources( ${PROJECT_NAME}
55
PRIVATE
66
main.cpp
7+
Helpers.cpp
78
RandomNum.cpp
89
TestData.cpp
910
test_ImageFile.cpp
11+
test_extension_DIST.cpp
1012
test_SimpleData.cpp
1113
test_SimpleReader.cpp
1214
test_SimpleWriter.cpp

test/src/Helpers.cpp

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#include "gtest/gtest.h"
2+
3+
#include "Helpers.h"
4+
5+
namespace TestHelper
6+
{
7+
void CheckFileHeader( const e57::E57Root &fileHeader )
8+
{
9+
// These are invariant.
10+
// See ASTM Standard Table 12.
11+
12+
EXPECT_EQ( fileHeader.formatName, "ASTM E57 3D Imaging Data File" );
13+
EXPECT_EQ( fileHeader.versionMajor, 1 );
14+
EXPECT_EQ( fileHeader.versionMinor, 0 );
15+
}
16+
}

test/src/TestData.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// libE57Format testing Copyright © 2022 Andy Maloney <asmaloney@gmail.com>
22
// SPDX-License-Identifier: BSL-1.0
33

4-
#include <fstream>
54
#include <sys/stat.h>
65

76
#include "gtest/gtest.h"

test/src/test_SimpleReader.cpp

Lines changed: 10 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,6 @@
88
#include "Helpers.h"
99
#include "TestData.h"
1010

11-
namespace
12-
{
13-
void CheckFileHeader( const e57::E57Root &fileHeader )
14-
{
15-
// These are invariant.
16-
// See ASTM Standard Table 12.
17-
18-
EXPECT_EQ( fileHeader.formatName, "ASTM E57 3D Imaging Data File" );
19-
EXPECT_EQ( fileHeader.versionMajor, 1 );
20-
EXPECT_EQ( fileHeader.versionMinor, 0 );
21-
}
22-
}
23-
2411
TEST( SimpleReader, PathError )
2512
{
2613
E57_ASSERT_THROW( e57::Reader( "./no-path/empty.e57", {} ) );
@@ -39,7 +26,7 @@ TEST( SimpleReaderData, Empty )
3926
e57::E57Root fileHeader;
4027
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
4128

42-
CheckFileHeader( fileHeader );
29+
TestHelper::CheckFileHeader( fileHeader );
4330
EXPECT_EQ( fileHeader.guid, "Empty File GUID" );
4431

4532
delete reader;
@@ -58,7 +45,7 @@ TEST( SimpleReaderData, ZeroPoints )
5845
e57::E57Root fileHeader;
5946
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
6047

61-
CheckFileHeader( fileHeader );
48+
TestHelper::CheckFileHeader( fileHeader );
6249
EXPECT_EQ( fileHeader.guid, "Zero Points GUID" );
6350

6451
e57::Data3D data3DHeader;
@@ -95,7 +82,7 @@ TEST( SimpleReaderData, ZeroPointsInvalid )
9582
e57::E57Root fileHeader;
9683
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
9784

98-
CheckFileHeader( fileHeader );
85+
TestHelper::CheckFileHeader( fileHeader );
9986
EXPECT_EQ( fileHeader.guid, "{EC1A0DE4-F76F-44CE-E527-789EEB818347}" );
10087

10188
e57::Data3D data3DHeader;
@@ -127,7 +114,7 @@ TEST( SimpleReaderData, InvalidCVHeader )
127114
e57::E57Root fileHeader;
128115
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
129116

130-
CheckFileHeader( fileHeader );
117+
TestHelper::CheckFileHeader( fileHeader );
131118
EXPECT_EQ( fileHeader.guid, "InvalidCVHeader GUID" );
132119

133120
e57::Data3D data3DHeader;
@@ -192,7 +179,7 @@ TEST( SimpleReaderData, ColouredCubeFloat )
192179
e57::E57Root fileHeader;
193180
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
194181

195-
CheckFileHeader( fileHeader );
182+
TestHelper::CheckFileHeader( fileHeader );
196183
EXPECT_EQ( fileHeader.guid, "Coloured Cube File GUID" );
197184

198185
e57::Data3D data3DHeader;
@@ -230,7 +217,7 @@ TEST( SimpleReaderData, ColouredCubeFloatToDouble )
230217
e57::E57Root fileHeader;
231218
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
232219

233-
CheckFileHeader( fileHeader );
220+
TestHelper::CheckFileHeader( fileHeader );
234221
EXPECT_EQ( fileHeader.guid, "Coloured Cube File GUID" );
235222

236223
e57::Data3D data3DHeader;
@@ -268,7 +255,7 @@ TEST( SimpleReaderData, BunnyDouble )
268255
e57::E57Root fileHeader;
269256
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
270257

271-
CheckFileHeader( fileHeader );
258+
TestHelper::CheckFileHeader( fileHeader );
272259
EXPECT_EQ( fileHeader.guid, "{19AA90ED-145E-4B3B-922C-80BC00648844}" );
273260

274261
e57::Data3D data3DHeader;
@@ -306,7 +293,7 @@ TEST( SimpleReaderData, BunnyInt32 )
306293
e57::E57Root fileHeader;
307294
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
308295

309-
CheckFileHeader( fileHeader );
296+
TestHelper::CheckFileHeader( fileHeader );
310297
EXPECT_EQ( fileHeader.guid, "{991574D2-854C-4CEF-8CB8-D0132E4BCD0A}" );
311298

312299
e57::Data3D data3DHeader;
@@ -344,7 +331,7 @@ TEST( SimpleReaderData, ColourRepresentation )
344331
e57::E57Root fileHeader;
345332
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
346333

347-
CheckFileHeader( fileHeader );
334+
TestHelper::CheckFileHeader( fileHeader );
348335
EXPECT_EQ( fileHeader.guid, "6107aa44-6289-4e9c-80bd-f36cc3fbd44b" );
349336

350337
e57::Data3D data3DHeader;
@@ -384,7 +371,7 @@ TEST( SimpleReaderData, EXT_DIST_PinholeImageWithDistortionParameters )
384371
e57::E57Root fileHeader;
385372
ASSERT_TRUE( reader->GetE57Root( fileHeader ) );
386373

387-
CheckFileHeader( fileHeader );
374+
TestHelper::CheckFileHeader( fileHeader );
388375
EXPECT_EQ( fileHeader.guid, "Pinhole image with distortion parameters GUID" );
389376

390377
{

test/src/test_SimpleWriter.cpp

Lines changed: 0 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -691,116 +691,3 @@ TEST( SimpleWriterData, VisualRefImage )
691691

692692
delete writer;
693693
}
694-
695-
TEST( SimpleWriterData, EXT_DIST_PinholeImageWithDistortionParameters )
696-
{
697-
e57::WriterOptions options;
698-
options.guid = "Pinhole image with distortion parameters GUID";
699-
700-
e57::Writer *writer = nullptr;
701-
702-
E57_ASSERT_NO_THROW(
703-
writer = new e57::Writer( "./PinholeImageWithDistortionParameters.e57", options ) );
704-
705-
std::ifstream image( TestData::Path() + "/images/dummyImage.jpg",
706-
std::ifstream::ate | std::ifstream::binary );
707-
708-
ASSERT_EQ( image.rdstate(), std::ios_base::goodbit );
709-
710-
const int64_t cImageSize = image.tellg();
711-
712-
image.clear();
713-
image.seekg( 0 );
714-
715-
auto imageBuffer = new char[cImageSize];
716-
717-
image.read( imageBuffer, cImageSize );
718-
719-
ASSERT_EQ( image.rdstate(), std::ios_base::goodbit );
720-
721-
{
722-
// test writing image with all parameters set
723-
e57::Image2D image2DHeader;
724-
image2DHeader.name = "JPEG Image Test 1";
725-
image2DHeader.guid = "Pinhole Image 1 - JPEG Image GUID";
726-
image2DHeader.description = "JPEG image test 1 - distortion with all parameters specified";
727-
image2DHeader.pinholeRepresentation.imageWidth = 1;
728-
image2DHeader.pinholeRepresentation.imageHeight = 1;
729-
image2DHeader.pinholeRepresentation.jpegImageSize = cImageSize;
730-
731-
auto &pcd = image2DHeader.pinholeCameraDistortionExt;
732-
pcd = std::make_unique<e57::Extension::PinholeCameraDistortion>();
733-
734-
pcd->cameraNumber = 1;
735-
pcd->type = "Testing type";
736-
pcd->CV_K1 = 1.01;
737-
pcd->CV_K2 = 2.02;
738-
pcd->CV_K3 = 3.03;
739-
pcd->CV_K4 = 4.04;
740-
pcd->CV_K5 = 5.05;
741-
pcd->CV_K6 = 6.06;
742-
pcd->CV_P1 = 11.11;
743-
pcd->CV_P2 = 12.12;
744-
pcd->CV_CX = 21.21;
745-
pcd->CV_CY = 22.22;
746-
pcd->CV_FX = 31.31;
747-
pcd->CV_FY = 32.32;
748-
pcd->CV_HEIGHT = 1;
749-
pcd->CV_WIDTH = 1;
750-
751-
std::size_t bytesWritten = 0;
752-
E57_ASSERT_NO_THROW( bytesWritten = writer->WriteImage2DData( image2DHeader, e57::ImageJPEG,
753-
e57::ProjectionPinhole, 0,
754-
imageBuffer, cImageSize ); );
755-
756-
ASSERT_EQ( bytesWritten, cImageSize );
757-
}
758-
759-
{
760-
// test writing image with some parameters omitted
761-
e57::Image2D image2DHeader;
762-
image2DHeader.name = "JPEG Image Test 2";
763-
image2DHeader.guid = "Pinhole Image 2 - JPEG Image GUID";
764-
image2DHeader.description = "JPEG image test 2 - distortion with some parameters omitted";
765-
image2DHeader.pinholeRepresentation.imageWidth = 1;
766-
image2DHeader.pinholeRepresentation.imageHeight = 1;
767-
image2DHeader.pinholeRepresentation.jpegImageSize = cImageSize;
768-
769-
auto &pcd = image2DHeader.pinholeCameraDistortionExt;
770-
pcd = std::make_unique<e57::Extension::PinholeCameraDistortion>();
771-
pcd->cameraNumber = 2;
772-
pcd->CV_K1 = 1.01;
773-
pcd->CV_K2 = 2.02;
774-
pcd->CV_HEIGHT = 1;
775-
pcd->CV_WIDTH = 1;
776-
777-
std::size_t bytesWritten = 0;
778-
E57_ASSERT_NO_THROW( bytesWritten = writer->WriteImage2DData( image2DHeader, e57::ImageJPEG,
779-
e57::ProjectionPinhole, 0,
780-
imageBuffer, cImageSize ); );
781-
782-
ASSERT_EQ( bytesWritten, cImageSize );
783-
}
784-
785-
{
786-
// test writing image without distortion header
787-
e57::Image2D image2DHeader;
788-
image2DHeader.name = "JPEG Image Test 3";
789-
image2DHeader.guid = "Pinhole Image 3 - JPEG Image GUID";
790-
image2DHeader.description = "JPEG image test 3 - without distortion header";
791-
image2DHeader.pinholeRepresentation.imageWidth = 1;
792-
image2DHeader.pinholeRepresentation.imageHeight = 1;
793-
image2DHeader.pinholeRepresentation.jpegImageSize = cImageSize;
794-
795-
std::size_t bytesWritten = 0;
796-
E57_ASSERT_NO_THROW( bytesWritten = writer->WriteImage2DData( image2DHeader, e57::ImageJPEG,
797-
e57::ProjectionPinhole, 0,
798-
imageBuffer, cImageSize ); );
799-
800-
ASSERT_EQ( bytesWritten, cImageSize );
801-
}
802-
803-
delete[] imageBuffer;
804-
805-
delete writer;
806-
}

0 commit comments

Comments
 (0)