From a64aa21c98bab3caa169bb5d21410bd2f9431aab Mon Sep 17 00:00:00 2001 From: Jesse Mapel Date: Fri, 22 Feb 2019 11:19:26 -0700 Subject: [PATCH] Final LS tests and release prep (#188) * Added image locus tests * Pan LS tests now pass * updated release date in plugin * Forgot to update plugin release date test --- src/UsgsAstroPlugin.cpp | 2 +- tests/LineScanCameraTests.cpp | 83 +++++++------------- tests/PluginTests.cpp | 2 +- tests/data/constAngularVelocityLineScan.json | 18 ++--- 4 files changed, 40 insertions(+), 65 deletions(-) diff --git a/src/UsgsAstroPlugin.cpp b/src/UsgsAstroPlugin.cpp index cf6e017..563f24d 100644 --- a/src/UsgsAstroPlugin.cpp +++ b/src/UsgsAstroPlugin.cpp @@ -28,7 +28,7 @@ using json = nlohmann::json; // Declaration of static variables const std::string UsgsAstroPlugin::_PLUGIN_NAME = "UsgsAstroPluginCSM"; const std::string UsgsAstroPlugin::_MANUFACTURER_NAME = "UsgsAstrogeology"; -const std::string UsgsAstroPlugin::_RELEASE_DATE = "20170425"; +const std::string UsgsAstroPlugin::_RELEASE_DATE = "20190222"; const int UsgsAstroPlugin::_N_SENSOR_MODELS = 2; const std::string UsgsAstroPlugin::_ISD_KEYWORD[] = diff --git a/tests/LineScanCameraTests.cpp b/tests/LineScanCameraTests.cpp index 2f63651..627b570 100644 --- a/tests/LineScanCameraTests.cpp +++ b/tests/LineScanCameraTests.cpp @@ -46,35 +46,35 @@ TEST_F(ConstVelocityLineScanSensorModel, Inversion) { EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); } -TEST_F(ConstVelocityLineScanSensorModel, OffBody1) { +TEST_F(ConstVelocityLineScanSensorModel, OffBody) { csm::ImageCoord imagePt(4.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); EXPECT_NEAR(groundPt.x, 0.063995905, 1e-8); EXPECT_NEAR(groundPt.y, -7.999488033, 1e-8); EXPECT_NEAR(groundPt.z, 8, 1e-8); } -TEST_F(ConstVelocityLineScanSensorModel, OffBody2) { - csm::ImageCoord imagePt(4.5, 12.0); - csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); - // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); - // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); -} -TEST_F(ConstVelocityLineScanSensorModel, OffBody3) { - csm::ImageCoord imagePt(12.5, 4.0); - csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); - // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); - // EXPECT_NEAR(groundPt.z, 14.99325304, 1e-8); +TEST_F(ConstVelocityLineScanSensorModel, ProximateImageLocus) { + csm::ImageCoord imagePt(8.5, 8.0); + csm::EcefCoord groundPt(5, 5, 5); + csm::EcefLocus locus = sensorModel->imageToProximateImagingLocus(imagePt, groundPt); + EXPECT_DOUBLE_EQ(locus.direction.x, -1.0); + EXPECT_DOUBLE_EQ(locus.direction.y, 0.0); + EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); + EXPECT_DOUBLE_EQ(locus.point.x, 5.0); + EXPECT_DOUBLE_EQ(locus.point.y, 0.0); + EXPECT_DOUBLE_EQ(locus.point.z, 0.0); } -TEST_F(ConstVelocityLineScanSensorModel, OffBody4) { - csm::ImageCoord imagePt(12.0, 12.0); - csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); - // EXPECT_NEAR(groundPt.y, -14.99325304, 1e-8); - // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); +TEST_F(ConstVelocityLineScanSensorModel, RemoteImageLocus) { + csm::ImageCoord imagePt(8.5, 8.0); + csm::EcefLocus locus = sensorModel->imageToRemoteImagingLocus(imagePt); + EXPECT_DOUBLE_EQ(locus.direction.x, -1.0); + EXPECT_DOUBLE_EQ(locus.direction.y, 0.0); + EXPECT_DOUBLE_EQ(locus.direction.z, 0.0); + EXPECT_DOUBLE_EQ(locus.point.x, 10.0); + EXPECT_DOUBLE_EQ(locus.point.y, 0.0); + EXPECT_DOUBLE_EQ(locus.point.z, 0.0); } // Pan tests @@ -82,11 +82,9 @@ TEST_F(ConstVelocityLineScanSensorModel, OffBody4) { TEST_F(ConstAngularVelocityLineScanSensorModel, Center) { csm::ImageCoord imagePt(8.5, 8.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_DOUBLE_EQ(groundPt.x, 10.0); - // EXPECT_DOUBLE_EQ(groundPt.y, 0.0); - // EXPECT_DOUBLE_EQ(groundPt.z, 0.0); - - std::cerr << sensorModel->getModelState() << std::endl; + EXPECT_DOUBLE_EQ(groundPt.x, 10.0); + EXPECT_DOUBLE_EQ(groundPt.y, 0.0); + EXPECT_DOUBLE_EQ(groundPt.z, 0.0); } TEST_F(ConstAngularVelocityLineScanSensorModel, Inversion) { @@ -94,39 +92,16 @@ TEST_F(ConstAngularVelocityLineScanSensorModel, Inversion) { csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); csm::ImageCoord imageReprojPt = sensorModel->groundToImage(groundPt); - // EXPECT_DOUBLE_EQ(imagePt.line, imageReprojPt.line); - // EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); + EXPECT_DOUBLE_EQ(imagePt.line, imageReprojPt.line); + EXPECT_DOUBLE_EQ(imagePt.samp, imageReprojPt.samp); } -TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody1) { +TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody) { csm::ImageCoord imagePt(4.5, 4.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_NEAR(groundPt.x, 0.063995905, 1e-8); - // EXPECT_NEAR(groundPt.y, -7.999488033, 1e-8); - // EXPECT_NEAR(groundPt.z, 8, 1e-8); -} -TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody2) { - csm::ImageCoord imagePt(4.5, 12.0); - csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); - // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); - // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); -} - -TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody3) { - csm::ImageCoord imagePt(12.5, 4.0); - csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); - // EXPECT_NEAR(groundPt.y, 14.99325304, 1e-8); - // EXPECT_NEAR(groundPt.z, 14.99325304, 1e-8); -} - -TEST_F(ConstAngularVelocityLineScanSensorModel, OffBody4) { - csm::ImageCoord imagePt(12.0, 12.0); - csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); - // EXPECT_NEAR(groundPt.x, 0.44979759, 1e-8); - // EXPECT_NEAR(groundPt.y, -14.99325304, 1e-8); - // EXPECT_NEAR(groundPt.z, -14.99325304, 1e-8); + EXPECT_NEAR(groundPt.x, 4.15414478, 1e-8); + EXPECT_NEAR(groundPt.y, -7.98311067, 1e-8); + EXPECT_NEAR(groundPt.z, 63.82129588, 1e-8); } TEST_F(ConstVelocityLineScanSensorModel, calculateAttitudeCorrection) { diff --git a/tests/PluginTests.cpp b/tests/PluginTests.cpp index f034b41..62da7c5 100644 --- a/tests/PluginTests.cpp +++ b/tests/PluginTests.cpp @@ -21,7 +21,7 @@ TEST(PluginTests, ManufacturerName) { TEST(PluginTests, ReleaseDate) { UsgsAstroPlugin testPlugin; - EXPECT_EQ("20170425", testPlugin.getReleaseDate()); + EXPECT_EQ("20190222", testPlugin.getReleaseDate()); } TEST(PluginTests, NumModels) { diff --git a/tests/data/constAngularVelocityLineScan.json b/tests/data/constAngularVelocityLineScan.json index cf467fd..c5c991c 100644 --- a/tests/data/constAngularVelocityLineScan.json +++ b/tests/data/constAngularVelocityLineScan.json @@ -54,15 +54,15 @@ [1000.0, 0.0, 0.0] ], "velocities": [ - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0], - [0.0, 0.0, 0.0] + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0], + [0.0, 10.0, 0.0] ] }, "sensor_orientation": { -- GitLab