Skip to content
Snippets Groups Projects
Select Git revision
  • 97f713ab4d48866e14a28d02f85ccc56214ca72e
  • master default protected
  • fix-issue-901
  • fix-issue-928
  • fix-issue-896-zmq-publish
  • fix-issue-885
  • fix-issue-921
  • fix-910
  • fix-issue-804
  • srt-bandQ-receiver
  • fix-issue-855
  • stable
  • srt-bandW-receiver
  • fix-issue-805
  • feature-med-c-band-srv
  • fix-issue-760
  • fix-issue-628
  • fix-issue-588
  • fix-issue-derotator-328
  • OffsetReview
  • DerotatorAndMinorServo
  • discos1.0.6h
  • discos1.0.6f
  • discos1.0.6e
  • discos1.0.6d
  • discos1.0.6c
  • discos1.0.6b
  • discos1.0.6a
  • discos1.0.6
  • discos1.0.5
  • discos1.0.4
  • discos1.0.3
  • discos1.0.2
  • discos1.0.1
  • discos1.0.0
  • discos1.0-rc02
  • discos1.0-rc01
  • escs-0.5
  • escs-0.4
  • nuraghe-0.6
  • noto-0.1
41 results

Positioner03.xml

Blame
  • PluginTests.cpp 8.02 KiB
    #include "UsgsAstroFrameSensorModel.h"
    #include "UsgsAstroLsSensorModel.h"
    #include "UsgsAstroPlugin.h"
    
    #include <fstream>
    #include <sstream>
    
    #include <gtest/gtest.h>
    
    #include "Fixtures.h"
    
    TEST(PluginTests, PluginName) {
      UsgsAstroPlugin testPlugin;
      EXPECT_EQ("UsgsAstroPluginCSM", testPlugin.getPluginName());
    }
    
    TEST(PluginTests, ManufacturerName) {
      UsgsAstroPlugin testPlugin;
      EXPECT_EQ("UsgsAstrogeology", testPlugin.getManufacturer());
    }
    
    TEST(PluginTests, ReleaseDate) {
      UsgsAstroPlugin testPlugin;
      EXPECT_EQ("20190222", testPlugin.getReleaseDate());
    }
    
    TEST(PluginTests, NumModels) {
      UsgsAstroPlugin testPlugin;
      EXPECT_EQ(5, testPlugin.getNumModels());
    }
    
    TEST(PluginTests, BadISDFile) {
      UsgsAstroPlugin testPlugin;
      csm::Isd badIsd("Not a file");
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromISD(
          badIsd, "USGS_ASTRO_FRAME_SENSOR_MODEL"));
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromISD(
          badIsd, "USGS_ASTRO_LINE_SCANNER_SENSOR_MODEL"));
    }
    
    TEST(FrameStateTests, NoStateName) {
      UsgsAstroPlugin testPlugin;
      std::string badState = "{\"not_a_name\":\"bad_name\"}";
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_FRAME_SENSOR_MODEL", badState));
    }
    
    TEST(FrameStateTests, BadStateName) {
      UsgsAstroPlugin testPlugin;
      std::string badState = "{\"m_model_name\":\"bad_name\"}";
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_FRAME_SENSOR_MODEL", badState));
    }
    
    TEST(FrameStateTests, BadStateValue) {
      UsgsAstroPlugin testPlugin;
      std::string badState =
          "{"
          "\"m_model_name\":\"USGS_ASTRO_FRAME_SENSOR_MODEL\","
          "\"bad_param\":\"bad_value\"}";
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_FRAME_SENSOR_MODEL", badState));
    }
    
    TEST(FrameStateTests, MissingStateValue) {
      UsgsAstroPlugin testPlugin;
      std::string badState =
          "{"
          "\"m_model_name\":\"USGS_ASTRO_FRAME_SENSOR_MODEL\"}";
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_FRAME_SENSOR_MODEL", badState));
    }
    
    TEST_F(FrameIsdTest, Constructible) {
      UsgsAstroPlugin testPlugin;
      EXPECT_TRUE(testPlugin.canModelBeConstructedFromISD(
          isd, "USGS_ASTRO_FRAME_SENSOR_MODEL"));
    }
    
    TEST_F(FrameIsdTest, ConstructibleFromState) {
      UsgsAstroPlugin testPlugin;
      std::string modelState = testPlugin.getStateFromISD(isd);
      EXPECT_TRUE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_FRAME_SENSOR_MODEL", modelState));
    }
    
    TEST_F(FrameIsdTest, NotConstructible) {
      UsgsAstroPlugin testPlugin;
      isd.setFilename("data/constVelocityLineScan.img");
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromISD(
          isd, "USGS_ASTRO_FRAME_SENSOR_MODEL"));
    }
    
    TEST_F(FrameIsdTest, ConstructValidCamera) {
      UsgsAstroPlugin testPlugin;
      std::shared_ptr<csm::Model> cameraModel(NULL);
      EXPECT_NO_THROW(cameraModel = std::shared_ptr<csm::Model>(testPlugin.constructModelFromISD
                                                                (isd, "USGS_ASTRO_FRAME_SENSOR_MODEL", NULL)));
      UsgsAstroFrameSensorModel *frameModel =
        dynamic_cast<UsgsAstroFrameSensorModel *>(cameraModel.get());
      EXPECT_NE(frameModel, nullptr);
    }
    
    TEST_F(FrameIsdTest, ConstructInvalidCamera) {
      UsgsAstroPlugin testPlugin;
      isd.setFilename("data/empty.img");
      std::shared_ptr<csm::Model> cameraModel(NULL);
      try {
        cameraModel = std::shared_ptr<csm::Model>(testPlugin.constructModelFromISD(isd, "USGS_ASTRO_FRAME_SENSOR_MODEL", nullptr));
        FAIL() << "Expected an error";
      } catch (csm::Error &e) {
        EXPECT_EQ(e.getError(), csm::Error::SENSOR_MODEL_NOT_CONSTRUCTIBLE);
      } catch (...) {
        FAIL() << "Expected csm SENSOR_MODEL_NOT_CONSTRUCTIBLE error";
      }
    }
    
    TEST_F(ConstVelLineScanIsdTest, Constructible) {
      UsgsAstroPlugin testPlugin;
      EXPECT_TRUE(testPlugin.canModelBeConstructedFromISD(
          isd, "USGS_ASTRO_LINE_SCANNER_SENSOR_MODEL"));
    }
    
    TEST_F(ConstVelLineScanIsdTest, ConstructibleFromState) {
      UsgsAstroPlugin testPlugin;
      std::string modelState = testPlugin.getStateFromISD(isd);
      EXPECT_TRUE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_LINE_SCANNER_SENSOR_MODEL", modelState));
    }
    
    TEST_F(ConstVelLineScanIsdTest, NotConstructible) {
      UsgsAstroPlugin testPlugin;
      isd.setFilename("data/simpleFramerISD.img");
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromISD(
          isd, "USGS_ASTRO_LINE_SCANNER_SENSOR_MODEL"));
    }
    
    TEST_F(ConstVelLineScanIsdTest, ConstructValidCamera) {
      UsgsAstroPlugin testPlugin;
      std::shared_ptr<csm::Model> cameraModel(NULL);
      EXPECT_NO_THROW(cameraModel = std::shared_ptr<csm::Model>(testPlugin.constructModelFromISD
                                                                (isd, "USGS_ASTRO_LINE_SCANNER_SENSOR_MODEL", NULL)));
      UsgsAstroLsSensorModel *frameModel =
        dynamic_cast<UsgsAstroLsSensorModel *>(cameraModel.get());
      EXPECT_NE(frameModel, nullptr);
    }
    
    TEST_F(ConstVelLineScanIsdTest, ConstructInvalidCamera) {
      UsgsAstroPlugin testPlugin;
      isd.setFilename("data/empty.img");
      csm::Model *cameraModel = NULL;
      try {
        std::shared_ptr<csm::Model> cameraModel(testPlugin.constructModelFromISD
                                                (isd, "USGS_ASTRO_LINE_SCANNER_SENSOR_MODEL", nullptr));
        FAIL() << "Expected an error";
      } catch (csm::Error &e) {
        EXPECT_EQ(e.getError(), csm::Error::SENSOR_MODEL_NOT_CONSTRUCTIBLE);
      } catch (...) {
        FAIL() << "Expected csm SENSOR_MODEL_NOT_CONSTRUCTIBLE error";
      }
    
    }
    
    TEST_F(ConstVelocityLineScanSensorModel, ConstructibleFromSupState) {
      UsgsAstroPlugin testPlugin;
      std::string modelState;
      EXPECT_TRUE(readFileInString(supFile, modelState));
      sanitize(modelState);
      EXPECT_TRUE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_LINE_SCANNER_SENSOR_MODEL", modelState));
    }
    
    TEST_F(SarIsdTest, Constructible) {
      UsgsAstroPlugin testPlugin;
      csm::WarningList warnings;
      EXPECT_TRUE(testPlugin.canModelBeConstructedFromISD(
          isd, "USGS_ASTRO_SAR_SENSOR_MODEL", &warnings));
      for (auto &warn : warnings) {
        std::cerr << "Warning in " << warn.getFunction() << std::endl;
        std::cerr << "  " << warn.getMessage() << std::endl;
      }
    }
    
    TEST_F(SarIsdTest, ConstructibleFromState) {
      UsgsAstroPlugin testPlugin;
      csm::WarningList warnings;
      std::string modelState = testPlugin.getStateFromISD(isd);
      EXPECT_TRUE(testPlugin.canModelBeConstructedFromState(
          "USGS_ASTRO_SAR_SENSOR_MODEL", modelState, &warnings));
      for (auto &warn : warnings) {
        std::cerr << "Warning in " << warn.getFunction() << std::endl;
        std::cerr << "  " << warn.getMessage() << std::endl;
      }
    }
    
    TEST_F(SarIsdTest, NotConstructible) {
      UsgsAstroPlugin testPlugin;
      isd.setFilename("data/simpleFramerISD.img");
      EXPECT_FALSE(testPlugin.canModelBeConstructedFromISD(
          isd, "USGS_ASTRO_SAR_SENSOR_MODEL"));
    }
    
    TEST_F(SarIsdTest, ConstructValidCamera) {
      UsgsAstroPlugin testPlugin;
      csm::WarningList warnings;
      std::shared_ptr<csm::Model> cameraModel(NULL);
      EXPECT_NO_THROW(cameraModel = std::shared_ptr<csm::Model>(testPlugin.constructModelFromISD
                                                                (isd, "USGS_ASTRO_SAR_SENSOR_MODEL",
                                                                 &warnings)));
      for (auto &warn : warnings) {
        std::cerr << "Warning in " << warn.getFunction() << std::endl;
        std::cerr << "  " << warn.getMessage() << std::endl;
      }
      UsgsAstroSarSensorModel *sarModel =
        dynamic_cast<UsgsAstroSarSensorModel *>(cameraModel.get());
      EXPECT_NE(sarModel, nullptr);
    }
    
    TEST_F(SarIsdTest, ConstructInvalidCamera) {
      UsgsAstroPlugin testPlugin;
      isd.setFilename("data/empty.img");
      std::shared_ptr<csm::Model> cameraModel(NULL);
      try {
        cameraModel = std::shared_ptr<csm::Model>(testPlugin.constructModelFromISD
                                                  (isd, "USGS_ASTRO_SAR_SENSOR_MODEL", nullptr));
        FAIL() << "Expected an error";
    
      } catch (csm::Error &e) {
        EXPECT_EQ(e.getError(), csm::Error::SENSOR_MODEL_NOT_CONSTRUCTIBLE);
      } catch (...) {
        FAIL() << "Expected csm SENSOR_MODEL_NOT_CONSTRUCTIBLE error";
      }
    }
    
    int main(int argc, char **argv) {
      ::testing::InitGoogleTest(&argc, argv);
      return RUN_ALL_TESTS();
    }