Commit 4adebccf authored by Jesse Mapel's avatar Jesse Mapel Committed by Kelvin Rodriguez
Browse files

Moved Kernel and KernelDb unitTests to GTest (#3626)

* Converted Kernel test to GTest

* Changed kernel type 0 to None

* Stub kernel db gtest

* Added another test

* Fixed KernelDb tests

* Added HiRISE test

* Fixed HiRISE test

* Added CRISM test

* fixed CK Config test

* Removed old KernelDb unit test

* Removed None type from kernels

* Fixed rename

* removed inline
parent 1b86a747
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ namespace Isis {
   * Constructs a Kernel object with "Unknown" Type
   */
  Kernel::Kernel() {
    m_kernelType = (Type)0;
    m_kernelType = static_cast<Type>(0);
    m_kernels.clear();
  }

@@ -74,7 +74,7 @@ namespace Isis {
    if (strng == "RECONSTRUCTED") return Reconstructed;
    if (strng == "SMITHED") return Smithed;

    return (Type)0;
    return static_cast<Kernel::Type>(0);
  };

  /**
+12 −0
Original line number Diff line number Diff line
@@ -87,5 +87,17 @@ namespace Isis {
      QStringList m_kernels; //!< List of kernel file names
      Type m_kernelType;     //!< Enumeration value indicating the kernel type
  };

  /**
   * Logical operator for combining Type flags.
   *
   * @param a The first Type flag.
   * @param b The second Type flag.
   *
   * @return Type flag that contains all Types in a and all Types in b.
   */
  Kernel::Type operator|(Kernel::Type a, Kernel::Type b) {
      return static_cast<Kernel::Type>(static_cast<int>(a) | static_cast<int>(b));
  }
};
#endif
+0 −92
Original line number Diff line number Diff line
Testing static conversion methods...

Convert Type to char array...
1     Predicted
2     Nadir
4     Reconstructed
8     Smithed
0     Unknown
3     Unknown

Convert QString to Type...
Predicted     1
NADIR         2
reconstructed 4
SmItHeD       8
Unknown       0
junk          0



Testing empty constructor Kernel()... 
Kernel Type (enum): 0
Kernel Type (QString): Unknown
Number of Kernel Files: 0
Kernel Files: 
Alternate way of accessing info, should match previous lines
Number of Kernel Files: 0
Kernel Files: 



Testing setKernels and setType... 
Kernel Type (enum): 1
Kernel Type (QString): Predicted
Number of Kernel Files: 2
Kernel Files: 
	kernelFile1
	kernelFile2
Alternate way of accessing info, should match previous lines
Number of Kernel Files: 2
Kernel Files: 
	kernelFile1
	kernelFile2



Testing constructor Kernel(type, data)... 
Kernel Type (enum): 2
Kernel Type (QString): Nadir
Number of Kernel Files: 2
Kernel Files: 
	kernelFile1
	kernelFile2
Alternate way of accessing info, should match previous lines
Number of Kernel Files: 2
Kernel Files: 
	kernelFile1
	kernelFile2



Testing kernel.push_back()... 
Kernel Type (enum): 2
Kernel Type (QString): Nadir
Number of Kernel Files: 3
Kernel Files: 
	kernelFile1
	kernelFile2
	kernelFile3
Alternate way of accessing info, should match previous lines
Number of Kernel Files: 3
Kernel Files: 
	kernelFile1
	kernelFile2
	kernelFile3



Test < operator: is row < column? 
			Unknown	Predicted	Nadir	Recon	Smithed
Unknown			0		1		1		1		1
Predicted		0		0		1		1		1
Nadir			0		0		0		1		1
Reconstructed	0		0		0		0		1
Smithed			0		0		0		0		0



Testing errors... 

Testing invalid enumeration: 
+0 −143
Original line number Diff line number Diff line
#include <iostream>

#include <QString>
#include <QStringList>

#include "IException.h"
#include "Kernel.h"
#include "Preference.h"

using namespace std;
using namespace Isis;

void printKernelInfo(Kernel &kernel);
void printLessThanOperatorComparisons();

int main(int argc, char *argv[]) {
  Preference::Preferences(true);

  Kernel::Type predicted     = Kernel::Type(1);
  Kernel::Type nadir         = Kernel::Type(2);
  Kernel::Type reconstructed = Kernel::Type(4);
  Kernel::Type smithed       = Kernel::Type(8);
  Kernel::Type unknown       = Kernel::Type(0);
  Kernel::Type junk          = Kernel::Type(3);

  cout << "Testing static conversion methods..." << endl;
  cout << endl;
  cout << "Convert Type to char array..." << endl;
  cout << "1     " << Kernel::typeEnum(predicted) << endl;    
  cout << "2     " << Kernel::typeEnum(nadir) << endl;        
  cout << "4     " << Kernel::typeEnum(reconstructed) << endl;
  cout << "8     " << Kernel::typeEnum(smithed) << endl;      
  cout << "0     " << Kernel::typeEnum(unknown) << endl;
  cout << "3     " << Kernel::typeEnum(junk) << endl;
  cout << endl;
  cout << "Convert QString to Type..." << endl;
  cout << "Predicted     " << Kernel::typeEnum("Predicted") << endl;
  cout << "NADIR         " << Kernel::typeEnum("NADIR") << endl;
  cout << "reconstructed " << Kernel::typeEnum("reconstructed") << endl;
  cout << "SmItHeD       " << Kernel::typeEnum("SmItHeD") << endl;
  cout << "Unknown       " << Kernel::typeEnum("Unknown") << endl;
  cout << "junk          " << Kernel::typeEnum("junk") << endl;
  cout << endl;
  cout << endl;
  cout << endl;
  cout << "Testing empty constructor Kernel()... " << endl;
  Kernel kern;
  printKernelInfo(kern);
  
  cout << "Testing setKernels and setType... " << endl;
  QStringList data;
  data.push_back("kernelFile1"); 
  data.push_back("kernelFile2"); 
  kern.setKernels(data);
  kern.setType(predicted);
  printKernelInfo(kern);

  cout << "Testing constructor Kernel(type, data)... " << endl;
  Kernel otherKernel(nadir,  data);
  printKernelInfo(otherKernel);

  cout << "Testing kernel.push_back()... " << endl;
  otherKernel.push_back("kernelFile3");
  kern.setType(reconstructed);
  printKernelInfo(otherKernel);

  cout << "Test < operator: is row < column? " << endl;
  printLessThanOperatorComparisons();
  cout << endl;
  cout << endl;
  cout << endl;
  cout << "Testing errors... " << endl;
  cout << endl;
  cout << "Testing invalid enumeration: " << endl;
  cout << endl;
  return 0;
}

/**
 * Method that prints the kernel information
 * 
 * @param kernel Kernel object
 */
void printKernelInfo(Kernel &kernel) {
  cout << "Kernel Type (enum): " << kernel.type() << endl;
  cout << "Kernel Type (QString): " << Kernel::typeEnum(kernel.type()) << endl;

  QStringList kFiles = kernel.kernels();
  cout << "Number of Kernel Files: " << kFiles.size() << endl;
  cout << "Kernel Files: " << endl;
  for (int i = 0; i < kFiles.size(); i++) {
    cout << "\t" << kFiles[i] << endl;
  }
  cout << "Alternate way of accessing info, should match previous lines" << endl;
  cout << "Number of Kernel Files: " << kernel.size() << endl;
  cout << "Kernel Files: " << endl;
  for (int i = 0; i < kernel.size(); i++) {
    cout << "\t" << kernel[i] << endl;
  }
  cout << endl;
  cout << endl;
  cout << endl;
  return;
}

/**
 * Method that prints the comparison table using the Kernel class definition of 
 * the < operator 
 */
void printLessThanOperatorComparisons() {
  QStringList data;
  Kernel unknown(Kernel::Type(0),  data);
  Kernel predicted(Kernel::Type(1),  data);
  Kernel nadir(Kernel::Type(2),  data);
  Kernel reconstructed(Kernel::Type(4),  data);
  Kernel smithed(Kernel::Type(8),  data);
  cout << "\t\t\tUnknown\tPredicted\tNadir\tRecon\tSmithed" << endl; 
  cout << "Unknown\t\t\t"   << (unknown < unknown) << "\t\t"
                            << (unknown < predicted) << "\t\t"
                            << (unknown < nadir) << "\t\t"
                            << (unknown < reconstructed) << "\t\t" 
                            << (unknown < smithed) << endl; 
  cout << "Predicted\t\t"   << (predicted < unknown) << "\t\t"
                            << (predicted < predicted) << "\t\t" 
                            << (predicted < nadir) << "\t\t" 
                            << (predicted < reconstructed) << "\t\t" 
                            << (predicted < smithed) << endl; 
  cout << "Nadir\t\t\t"     << (nadir < unknown) << "\t\t" 
                            << (nadir < predicted) << "\t\t" 
                            << (nadir < nadir) << "\t\t" 
                            << (nadir < reconstructed) << "\t\t" 
                            << (nadir < smithed) << endl; 
  cout << "Reconstructed\t" << (reconstructed < unknown) << "\t\t" 
                            << (reconstructed < predicted) << "\t\t" 
                            << (reconstructed < nadir) << "\t\t" 
                            << (reconstructed < reconstructed) << "\t\t" 
                            << (reconstructed < smithed) << endl; 
  cout << "Smithed\t\t\t"   << (smithed < unknown) << "\t\t" 
                            << (smithed < predicted) << "\t\t" 
                            << (smithed < nadir) << "\t\t" 
                            << (smithed < reconstructed) << "\t\t" 
                            << (smithed < smithed) << endl; 
}
+0 −507
Original line number Diff line number Diff line
Pvl Label 1: 
Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2005 JUN 15 12:00:00.000 TDB"
    StopTime       = "2005 DEC 15 12:00:00.000 TDB"
    SpacecraftName = IdealSpacecraft
    InstrumentId   = IdealCamera
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object

Object = Label
  Bytes = 65536
End_Object

Object = History
  Name      = IsisCube
  StartByte = 196609
  Bytes     = 695
End_Object

Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2005 JUN 15 12:00:00.000 TDB"
    StopTime       = "2005 DEC 15 12:00:00.000 TDB"
    SpacecraftName = IdealSpacecraft
    InstrumentId   = IdealCamera
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object
End

LeapSecond Kernels: 
$base/lsTest

TargetAttitudeShape Kernels: 
$base/pckTest

TargetPosition Kernels: 
$base/spkTest1
$base/spkTest2

SpacecraftPointing Kernels: 
$base/ckTest1

Instrument Kernels: 
$base/ikTest3
$base/ikTest4

SpacecraftClock Kernels: 
$base/sclkTest

SpacecraftPosition Kernels: 
$base/spkTest1
$base/spkTest2

Frame Kernels: 
$base/fkTest

InstrumentAddendum Kernels: 
$base/iakTest

Dems: 
$base/demTest1
$base/demTest2
/---------------------------------------/


Pvl Label 2: 
Object = IsisCube
  Group = Instrument
    StartTime      = "2005 JUN 15 12:00:00.000 TDB"
    StopTime       = "2005 JUN 15 12:14:00.000 TDB"
    SpacecraftName = IdealSpacecraft
    InstrumentId   = IdealCamera
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object
End

LeapSecond Kernels: 
$base/lsTest

TargetAttitudeShape Kernels: 
$base/pckTest

TargetPosition Kernels: 
$base/spkTest1
$base/spkTest2

SpacecraftPointing Kernels: 
$base/ckTest2.1
$base/ckTest2.2

Instrument Kernels: 
$base/ikTest3
$base/ikTest4

SpacecraftClock Kernels: 
$base/sclkTest

SpacecraftPosition Kernels: 
$base/spkTest1
$base/spkTest2

Frame Kernels: 
$base/fkTest

InstrumentAddendum Kernels: 
$base/iakTest

Dems: 
$base/demTest1
$base/demTest2
/---------------------------------------/


Mro (non-CRISM) Instrument Label: 
Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2008 JAN 12 00:00:00.0"
    StopTime       = "2008 JAN 12 00:00:00.0"
    SpacecraftName = MarsReconnaissanceOrbiter
    InstrumentId   = HiRISE
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object

Object = Label
  Bytes = 65536
End_Object

Object = History
  Name      = IsisCube
  StartByte = 196609
  Bytes     = 695
End_Object

Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2005 JUN 15 12:00:00.000 TDB"
    StopTime       = "2005 DEC 15 12:00:00.000 TDB"
    SpacecraftName = IdealSpacecraft
    InstrumentId   = IdealCamera
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object
End

Database Files read in by loadSystemDb()
$base/kernels/lsk/kernels.????.db
$base/kernels/pck/kernels.????.db
$base/kernels/spk/kernels.????.db
$base/dems/kernels.????.db
$mro/kernels/ck/kernels.????.db
$mro/kernels/fk/kernels.????.db
$mro/kernels/ik/kernels.????.db
$mro/kernels/sclk/kernels.????.db
$mro/kernels/spk/kernels.????.db
$mro/kernels/iak/kernels.????.db

TargetPosition Kernels: 
$base/kernels/spk/de430.bsp

SpacecraftPointing Kernels: 
$mro/kernels/ck/mro_sc_psp_080108_080114.bc

SpacecraftPosition Kernels: 
$mro/kernels/spk/mro_psp6_ssd_mro110c.bsp
/---------------------------------------/


Mro CRISM Label: 
Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2008 JAN 12 00:00:00.0"
    StopTime       = "2008 JAN 12 00:00:00.0"
    SpacecraftName = MarsReconnaissanceOrbiter
    InstrumentId   = CRISM
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object

Object = Label
  Bytes = 65536
End_Object

Object = History
  Name      = IsisCube
  StartByte = 196609
  Bytes     = 695
End_Object

Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2005 JUN 15 12:00:00.000 TDB"
    StopTime       = "2005 DEC 15 12:00:00.000 TDB"
    SpacecraftName = IdealSpacecraft
    InstrumentId   = IdealCamera
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object
End

Database Files read in by loadSystemDb()
$base/kernels/lsk/kernels.????.db
$base/kernels/pck/kernels.????.db
$base/kernels/spk/kernels.????.db
$base/dems/kernels.????.db
$mro/kernels/ck/kernels.????.db
$mro/kernels/ck/crism_kernels.????.db
$mro/kernels/fk/kernels.????.db
$mro/kernels/ik/kernels.????.db
$mro/kernels/sclk/kernels.????.db
$mro/kernels/spk/kernels.????.db
$mro/kernels/iak/kernels.????.db

TargetPosition Kernels: 
$base/kernels/spk/de430.bsp

SpacecraftPointing Kernels: 
$mro/kernels/ck/mro_sc_psp_080108_080114.bc
$mro/kernels/ck/mro_crm_psp_080101_080131.bc

SpacecraftPosition Kernels: 
$mro/kernels/spk/mro_psp6_ssd_mro110c.bsp
/---------------------------------------/


Label, no StopTime: 
Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2008 JAN 12 00:00:00.0"
    SpacecraftName = MarsReconnaissanceOrbiter
    InstrumentId   = CRISM
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object

Object = Label
  Bytes = 65536
End_Object

Object = History
  Name      = IsisCube
  StartByte = 196609
  Bytes     = 695
End_Object

Object = IsisCube
  Object = Core
    StartByte   = 65537
    Format      = Tile
    TileSamples = 128
    TileLines   = 128

    Group = Dimensions
      Samples = 126
      Lines   = 126
      Bands   = 2
    End_Group

    Group = Pixels
      Type       = Real
      ByteOrder  = Lsb
      Base       = 0.0
      Multiplier = 1.0
    End_Group
  End_Object

  Group = Test
    Keyword = "This is a test"
  End_Group

  Group = Instrument
    StartTime      = "2005 JUN 15 12:00:00.000 TDB"
    StopTime       = "2005 DEC 15 12:00:00.000 TDB"
    SpacecraftName = IdealSpacecraft
    InstrumentId   = IdealCamera
  End_Group

  Group = TestGroup
    TestKeyword = TestValue
  End_Group
End_Object
End

LeapSecond Kernels: 
No LeapSecond Kernels

TargetAttitudeShape Kernels: 
**ERROR** No existing files found with a numerial version matching [pckTest????] in [.].

TargetPosition Kernels: 
$missionName/spkSmith

SpacecraftPointing Kernels: 

Instrument Kernels: 
No Instrument Kernels

SpacecraftClock Kernels: 
No SpacecraftClock Kernels

SpacecraftPosition Kernels: 
No SpacecraftPosition Kernels

Frame Kernels: 
No Frame Kernels

InstrumentAddendum Kernels: 
No InstrumentAddendum Kernels

Dems: 
No DEMs
Loading