From 6f8edc500bf472ea1f91ee334ad90e3f0df1f659 Mon Sep 17 00:00:00 2001
From: Kaj Williams <kewilliams@usgs.gov>
Date: Mon, 20 Aug 2018 15:14:20 -0700
Subject: [PATCH] updated frame camera tests for four corners of ccd

---
 tests/FrameCameraTests.cpp | 42 ++++++++++++++++++++++++++++++--------
 1 file changed, 34 insertions(+), 8 deletions(-)

diff --git a/tests/FrameCameraTests.cpp b/tests/FrameCameraTests.cpp
index 22e63ca..e5bddd4 100644
--- a/tests/FrameCameraTests.cpp
+++ b/tests/FrameCameraTests.cpp
@@ -52,6 +52,10 @@ class FrameSensorModel : public ::testing::Test {
       }
 };
 
+//NOTE: The imagePt layour is (Lines,Samples)
+//      Also subtract 0.5 from the lines/samples. Hence Samples=0 and Lines=15 -> 14.5,-0.5
+
+//centered and slightly off-center:
 TEST_F(FrameSensorModel, Center) {
    csm::ImageCoord imagePt(7.0, 7.0);
    csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0);
@@ -59,19 +63,41 @@ TEST_F(FrameSensorModel, Center) {
    EXPECT_NEAR(groundPt.y, 0, 1e-8);
    EXPECT_NEAR(groundPt.z, 0, 1e-8);
 }
+TEST_F(FrameSensorModel, SlightlyOffCenter) {
+   csm::ImageCoord imagePt(7.0, 6.0);
+   csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0);
+   EXPECT_NEAR(groundPt.x, 9.80194018, 1e-8);
+   EXPECT_NEAR(groundPt.y, 0, 1e-8);
+   EXPECT_NEAR(groundPt.z, 1.98039612, 1e-8);
+}
 
-TEST_F(FrameSensorModel, OffBody) {
+//Test all four corners:
+TEST_F(FrameSensorModel, OffBody1) {
    csm::ImageCoord imagePt(14.5, -0.5);
    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(FrameSensorModel, SlightlyOffCenter) {
-   csm::ImageCoord imagePt(7.0, 6.0);
+TEST_F(FrameSensorModel, OffBody2) {
+   csm::ImageCoord imagePt(-0.5, 14.5);
    csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0);
-   EXPECT_NEAR(groundPt.x, 9.80194018, 1e-8);
-   EXPECT_NEAR(groundPt.y, 0, 1e-8);
-   EXPECT_NEAR(groundPt.z, 1.98039612, 1e-8);
-}
\ No newline at end of file
+   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(FrameSensorModel, OffBody3) {
+   csm::ImageCoord imagePt(-0.5, -0.5);
+   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(FrameSensorModel, OffBody4) {
+   csm::ImageCoord imagePt(14.5, 14.5);
+   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);
+}
+
-- 
GitLab