Skip to content
Snippets Groups Projects
Select Git revision
  • 658238a232d9ab55a04527b3d09f38936de6635d
  • master default
  • rocky-linux-9
  • development
  • v1.0.4
  • v1.0.3
  • v1.0.2
7 results

header.php

Blame
  • unitTest.cpp 6.61 KiB
    #include <sstream>
    #include "LabelTranslationManager.h"
    #include "Preference.h"
    #include "IException.h"
    #include "IString.h"
    #include "Preference.h"
    
    using namespace Isis;
    using namespace std;
    /**
     * Child class of LabelTranslationManager to implement pure virtual methods.
     *
     * @author 2017-01-11 Jeannie Backer
     *
     * @internal
     *  @history 2017-01-11 Jeannie Backer - Original Version. Fixes #4584.
     *  @history 2017-10-16 Kristin Berry - Updated for changes to dependency specification format and
     *                        the addition of xml namspaces. References #5202
     */
    class TestTranslationManager : public LabelTranslationManager {
      public:
    
        TestTranslationManager(const QString &transFile) : LabelTranslationManager() {
        AddTable(transFile);
        }
    
        TestTranslationManager(std::istream &transStrm) : LabelTranslationManager() {
        AddTable(transStrm);
        }
    
        ~TestTranslationManager() {
        }
    
        virtual QString Translate(QString nName, int findex = 0) {
          QString inputValue = "Test Input, Index " + toString(findex);
          return PvlTranslationTable::Translate(nName, inputValue);
        }
    };
    
    int main(void) {
    
      Preference::Preferences(true);
      stringstream trnsStrm;
      trnsStrm << "Group = NumberOfLines" << endl;
      trnsStrm << "  Auto" << endl;
      trnsStrm << "  OutputName = Lines" << endl;
      trnsStrm << "  OutputPosition = (\"Object\",\"IsisCube\",";
      trnsStrm <<                      "\"Group\",\"Dimensions\")" << endl;
      trnsStrm << "  InputPosition = (Image,Size)" << endl;
      trnsStrm << "  InputKey = NL" << endl;
      trnsStrm << "  Translation = (*,*)" << endl;
      trnsStrm << "EndGroup" << endl;
      trnsStrm << "Group = NumberOfBands" << endl;
      trnsStrm << "  Auto" << endl;
      trnsStrm << "  Optional" << endl;
      trnsStrm << "  OutputName = Bands" << endl;
      trnsStrm << "  OutputPosition = (\"Object\",\"IsisCube\",";
      trnsStrm <<                      "\"Group\",\"Dimensions\")" << endl;
      trnsStrm << "  InputPosition = (Image,Size)" << endl;
      trnsStrm << "  InputKey = Nb" << endl;
      trnsStrm << "  InputDefault = 1" << endl;
      trnsStrm << "  Translation = (*,*)" << endl;
      trnsStrm << "EndGroup" << endl;
      trnsStrm << "Group = Bonus" << endl;
      trnsStrm << "  Auto" << endl;
      trnsStrm << "  Optional" << endl;
      trnsStrm << "  InputPosition = (Image,Pixel)" << endl;
      trnsStrm << "  InputKey = Bonus" << endl;
      trnsStrm << "  Translation = (*,*)" << endl;
      trnsStrm << "EndGroup" << endl;
      trnsStrm << "Group = Extra" << endl;
      trnsStrm << "  Optional" << endl;
      trnsStrm << "  InputPosition = (Image,Bogus)" << endl;
      trnsStrm << "  InputKey = Extra" << endl;
      trnsStrm << "  Translation = (*,*)" << endl;
      trnsStrm << "EndGroup" << endl;
      trnsStrm << "Group = PixelResolution" << endl;
      trnsStrm << "  InputPosition = (Image,Pixel)" << endl;
      trnsStrm << "  InputKey = Resolution" << endl;
      trnsStrm << "  InputDefault = 1" << endl;
      trnsStrm << "  Translation = (*,*)" << endl;
      trnsStrm << "EndGroup" << endl;
      trnsStrm << "Group = BandName" << endl;
      trnsStrm << "  Auto" << endl;
      trnsStrm << "  OutputName = Band" << endl;
      trnsStrm << "  OutputPosition = (\"Object\",\"IsisCube\",";
      trnsStrm <<                      "\"Object\",\"BandBin\")" << endl;
      trnsStrm << "  InputPosition = (Image,BandInfo)" << endl;
      trnsStrm << "  InputKey = Band" << endl;
      trnsStrm << "  Translation = (*,*)" << endl;
      trnsStrm << "EndGroup" << endl;
      trnsStrm << "Group = CenterLongitude" << endl;
      trnsStrm << "  Auto" << endl;
      trnsStrm << "  OutputPosition = (\"Group\",\"Mapping\")" << endl;
      trnsStrm << "  OutputName = CenterLongitude" << endl;
      trnsStrm << "  InputPosition = IMAGE_MAP_PROJECTION" << endl;
      trnsStrm << "  InputPosition = (QUBE,IMAGE_MAP_PROJECTION)" << endl;
      trnsStrm << "  InputPosition = (SPECTRAL_QUBE,IMAGE_MAP_PROJECTION)" << endl;
      trnsStrm << "  InputKey = CENTER_LONGITUDE" << endl;
      trnsStrm << "  Translation = (*,*)" << endl;
      trnsStrm << "EndGroup" << endl;
    
      trnsStrm << "End" << endl;
    
      TestTranslationManager transMgr(trnsStrm);
    
      try {
        cout << "Testing LabelTranslationManager object" << endl;
    
        cout << endl << "Testing Translate method:" << endl;
        cout << endl << "Translating Extra: ";
        cout << transMgr.Translate("Extra") << endl;
    
        cout << endl << "Testing Auto method:" << endl;
        Pvl translatedLabel;
        transMgr.Auto(translatedLabel);
        cout << endl << translatedLabel << endl;
      }
      catch(IException &e) {
        e.print();
      }
      try {
        cout << endl << "Testing parseSpecification method: att@name|value" << endl;
        transMgr.parseSpecification((QString)"att@name:value");
    
        cout << endl << "Testing parseSpecification method: tag@name|value" << endl;
        transMgr.parseSpecification((QString)"tag@name|value");
    
        cout << endl << "Testing parseSpecification method: att@name" << endl;
        transMgr.parseSpecification((QString)"att@name");
    
        cout << endl << "Testing parseSpecification method: new@name" << endl;
        transMgr.parseSpecification((QString)"new@name");
    
        cout << endl << "Testing parseSpecification method: name|value" << endl;
        transMgr.parseSpecification((QString)"name|value");
    
        cout << endl << "Testing parseSpecification method: value" << endl;
        transMgr.parseSpecification((QString)"value");
    
        cout << endl << "Testing parseSpecification method: namespace:name" << endl;
        transMgr.parseSpecification((QString)"namespace:name");
    
        cout << endl << "Testing parseSpecification method: namespace:name|value" << endl;
        transMgr.parseSpecification((QString)"namespace:name|value");
    
        cout << endl << "Testing parseSpecification method: att@namespace:name|value" << endl;
        transMgr.parseSpecification((QString)"att@namepsace:name|value");
    
        cout << endl << "Testing parseSpecification method: tag@name|value" << endl;
        transMgr.parseSpecification((QString)"tag@namespace:name|value");
      }
      catch(IException &e) {
        e.print();
      }
    
    
      try {
        cout << endl << "Testing parseSpecification method: att|name|value" << endl;
        transMgr.parseSpecification((QString)"att|name|value");
      }
      catch(IException &e) {
        e.print();
      }
    
    
      try {
        cout << endl << "Testing parseSpecification method: att@name@value" << endl;
        transMgr.parseSpecification((QString)"att@name@value");
      }
      catch(IException &e) {
        e.print();
      }
    
      try {
        cout << endl << "Testing parseSpecification method: not@name|value" << endl;
        transMgr.parseSpecification((QString)"not@name|value");
      }
      catch(IException &e) {
        e.print();
      }
    
      try {
        cout << endl << "Testing parseSpecification method: att@name|value1|value2" << endl;
        transMgr.parseSpecification((QString)"att@name|value1|value2");
      }
      catch(IException &e) {
        e.print();
      }
      return 0;
    }