Loading tests/CMakeLists.txt +1 −1 Original line number Diff line number Diff line cmake_minimum_required(VERSION 3.10) # Link runCSMCameraModelTests with what we want to test and the GTest and pthread library add_executable(runCSMCameraModelTests TestyMcTestFace.cpp) add_executable(runCSMCameraModelTests TestyMcTestFace.cpp FrameCameraTests.cpp) target_link_libraries(runCSMCameraModelTests usgscsm ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} pthread) gtest_discover_tests(runCSMCameraModelTests WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests) tests/FrameCameraTests.cpp 0 → 100644 +77 −0 Original line number Diff line number Diff line #include "UsgsAstroFramePlugin.h" #include "UsgsAstroFrameSensorModel.h" #include <json.hpp> #include <sstream> #include <fstream> #include <gtest/gtest.h> using json = nlohmann::json; class FrameSensorModel : public ::testing::Test { protected: UsgsAstroFrameSensorModel *sensorModel; void SetUp() override { sensorModel = NULL; std::ifstream isdFile("data/simpleFramerISD.json"); json jsonIsd = json::parse(isdFile); csm::Isd isd; for (json::iterator it = jsonIsd.begin(); it != jsonIsd.end(); ++it) { json jsonValue = it.value(); if (jsonValue.size() > 1) { for (int i = 0; i < jsonValue.size(); i++) { isd.addParam(it.key(), jsonValue[i].dump()); } } else { isd.addParam(it.key(), jsonValue.dump()); } } isdFile.close(); UsgsAstroFramePlugin frameCameraPlugin; csm::Model *model = frameCameraPlugin.constructModelFromISD( isd, "USGS_ASTRO_FRAME_SENSOR_MODEL"); sensorModel = dynamic_cast<UsgsAstroFrameSensorModel *>(model); ASSERT_NE(sensorModel, nullptr); } void TearDown() override { if (sensorModel) { delete sensorModel; sensorModel = NULL; } } }; TEST_F(FrameSensorModel, Center) { csm::ImageCoord imagePt(7.0, 7.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); EXPECT_NEAR(groundPt.x, 10.0, 1e-8); EXPECT_NEAR(groundPt.y, 0, 1e-8); EXPECT_NEAR(groundPt.z, 0, 1e-8); } TEST_F(FrameSensorModel, OffBody) { 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); 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 tests/TestMain.cpp 0 → 100644 +6 −0 Original line number Diff line number Diff line #include "gtest/gtest.h" int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } No newline at end of file tests/data/simpleFramerISD.json +3 −3 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ "focal_length": 50, "focal_length_epsilon": 1.0, "ifov": 6.0, "model_name": "UsgsAstroFramePluginCSM", "model_name": "USGS_ASTRO_FRAME_SENSOR_MODEL", "spacecraft_name": "TEST_CRAFT", "instrument_id": "TEST_SENSOR", "target_name": "TEST_BALL", Loading Loading @@ -46,8 +46,8 @@ "omega": 0, "phi": -1.5707963267948966, "kappa": 3.141592653589793, "semi_major_axis": 10, "semi_minor_axis": 10, "semi_major_axis":0.01, "semi_minor_axis":0.01, "transx": [ 0.0, 0.1, Loading Loading
tests/CMakeLists.txt +1 −1 Original line number Diff line number Diff line cmake_minimum_required(VERSION 3.10) # Link runCSMCameraModelTests with what we want to test and the GTest and pthread library add_executable(runCSMCameraModelTests TestyMcTestFace.cpp) add_executable(runCSMCameraModelTests TestyMcTestFace.cpp FrameCameraTests.cpp) target_link_libraries(runCSMCameraModelTests usgscsm ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES} pthread) gtest_discover_tests(runCSMCameraModelTests WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests)
tests/FrameCameraTests.cpp 0 → 100644 +77 −0 Original line number Diff line number Diff line #include "UsgsAstroFramePlugin.h" #include "UsgsAstroFrameSensorModel.h" #include <json.hpp> #include <sstream> #include <fstream> #include <gtest/gtest.h> using json = nlohmann::json; class FrameSensorModel : public ::testing::Test { protected: UsgsAstroFrameSensorModel *sensorModel; void SetUp() override { sensorModel = NULL; std::ifstream isdFile("data/simpleFramerISD.json"); json jsonIsd = json::parse(isdFile); csm::Isd isd; for (json::iterator it = jsonIsd.begin(); it != jsonIsd.end(); ++it) { json jsonValue = it.value(); if (jsonValue.size() > 1) { for (int i = 0; i < jsonValue.size(); i++) { isd.addParam(it.key(), jsonValue[i].dump()); } } else { isd.addParam(it.key(), jsonValue.dump()); } } isdFile.close(); UsgsAstroFramePlugin frameCameraPlugin; csm::Model *model = frameCameraPlugin.constructModelFromISD( isd, "USGS_ASTRO_FRAME_SENSOR_MODEL"); sensorModel = dynamic_cast<UsgsAstroFrameSensorModel *>(model); ASSERT_NE(sensorModel, nullptr); } void TearDown() override { if (sensorModel) { delete sensorModel; sensorModel = NULL; } } }; TEST_F(FrameSensorModel, Center) { csm::ImageCoord imagePt(7.0, 7.0); csm::EcefCoord groundPt = sensorModel->imageToGround(imagePt, 0.0); EXPECT_NEAR(groundPt.x, 10.0, 1e-8); EXPECT_NEAR(groundPt.y, 0, 1e-8); EXPECT_NEAR(groundPt.z, 0, 1e-8); } TEST_F(FrameSensorModel, OffBody) { 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); 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
tests/TestMain.cpp 0 → 100644 +6 −0 Original line number Diff line number Diff line #include "gtest/gtest.h" int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } No newline at end of file
tests/data/simpleFramerISD.json +3 −3 Original line number Diff line number Diff line Loading @@ -12,7 +12,7 @@ "focal_length": 50, "focal_length_epsilon": 1.0, "ifov": 6.0, "model_name": "UsgsAstroFramePluginCSM", "model_name": "USGS_ASTRO_FRAME_SENSOR_MODEL", "spacecraft_name": "TEST_CRAFT", "instrument_id": "TEST_SENSOR", "target_name": "TEST_BALL", Loading Loading @@ -46,8 +46,8 @@ "omega": 0, "phi": -1.5707963267948966, "kappa": 3.141592653589793, "semi_major_axis": 10, "semi_minor_axis": 10, "semi_major_axis":0.01, "semi_minor_axis":0.01, "transx": [ 0.0, 0.1, Loading