diff --git a/tests/FrameCameraTests.cpp b/tests/FrameCameraTests.cpp
index 03e84db714c7eead212b5ba06ce1abe35f1a74f5..0d23f2878f0c8f4121373e3de65e65a006f0e2b8 100644
--- a/tests/FrameCameraTests.cpp
+++ b/tests/FrameCameraTests.cpp
@@ -343,3 +343,72 @@ TEST_F(FrameIsdTest, Rotation_SPole_Center) {
 
 }
 
+
+// Ellipsoid axis tests:
+TEST_F(FrameIsdTest, SemiMajorAxis100x_Center) {
+   std::string key = "semi_major_axis";
+   std::string newValue = "1.0";
+   isd.clearParams(key);
+   isd.addParam(key,newValue);
+   UsgsAstroFramePlugin frameCameraPlugin;
+         
+   csm::Model *model = frameCameraPlugin.constructModelFromISD(
+         isd,
+         "USGS_ASTRO_FRAME_SENSOR_MODEL");
+   
+   UsgsAstroFrameSensorModel* sensorModel = dynamic_cast<UsgsAstroFrameSensorModel *>(model);
+   
+   ASSERT_NE(sensorModel, nullptr);
+   csm::ImageCoord imagePt(7.5, 7.5);
+   csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0);
+   EXPECT_NEAR(groundPt.x, 1000.0, 1e-8);
+   EXPECT_NEAR(groundPt.y, 0.0, 1e-8);
+   EXPECT_NEAR(groundPt.z, 0.0, 1e-8);
+   
+}
+TEST_F(FrameIsdTest, SemiMajorAxis10x_SlightlyOffCenter) {
+   std::string key = "semi_major_axis";
+   std::string newValue = "0.10";
+   isd.clearParams(key);
+   isd.addParam(key,newValue);
+   UsgsAstroFramePlugin frameCameraPlugin;
+         
+   csm::Model *model = frameCameraPlugin.constructModelFromISD(
+         isd,
+         "USGS_ASTRO_FRAME_SENSOR_MODEL");
+   
+   UsgsAstroFrameSensorModel* sensorModel = dynamic_cast<UsgsAstroFrameSensorModel *>(model);
+   
+   ASSERT_NE(sensorModel, nullptr);
+   csm::ImageCoord imagePt(7.5, 6.5);
+   csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0);
+   //Note: In the following, the tolerance was increased due to the combination of an offset image point and 
+   //      a very large deviation from sphericity.
+   EXPECT_NEAR(groundPt.x, 9.83606557e+01, 1e-7);
+   EXPECT_NEAR(groundPt.y, 0.0, 1e-7);
+   EXPECT_NEAR(groundPt.z, 1.80327869, 1e-7);
+   
+}
+// The following test is for the scenario where the semi_minor_axis is actually larger 
+// than the semi_major_axis:
+TEST_F(FrameIsdTest, SemiMinorAxis10x_SlightlyOffCenter) {
+   std::string key = "semi_minor_axis";
+   std::string newValue = "0.10";
+   isd.clearParams(key);
+   isd.addParam(key,newValue);
+   UsgsAstroFramePlugin frameCameraPlugin;
+         
+   csm::Model *model = frameCameraPlugin.constructModelFromISD(
+         isd,
+         "USGS_ASTRO_FRAME_SENSOR_MODEL");
+   
+   UsgsAstroFrameSensorModel* sensorModel = dynamic_cast<UsgsAstroFrameSensorModel *>(model);
+   
+   ASSERT_NE(sensorModel, nullptr);
+   csm::ImageCoord imagePt(7.5, 6.5);
+   csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0);
+   EXPECT_NEAR(groundPt.x, 9.99803960, 1e-8);
+   EXPECT_NEAR(groundPt.y, 0.0, 1e-8);
+   EXPECT_NEAR(groundPt.z, 1.98000392, 1e-8);
+   
+}
\ No newline at end of file