Skip to content
Snippets Groups Projects
Select Git revision
  • 46f531572144d8c38742994a6838011f8e61a8bd
  • main default protected
  • Kelvinrr-patch-3
  • radius_update
  • revert-616-apollo_pan
  • vims
  • 0.10
  • Kelvinrr-patch-2
  • revert-563-minirf_fix
  • Kelvinrr-patch-1
  • 0.9
  • acpaquette-patch-3
  • acpaquette-patch-2
  • acpaquette-patch-1
  • spiceql
  • ci-coverage
  • 0.10.0
  • 0.9.1
  • 0.9.0
  • 0.8.7
  • 0.8.8
  • 0.8.6
  • 0.8.3
  • 0.8.4
  • 0.8.5
  • 0.8.2
  • 0.8.1
  • 0.8.0
  • 0.7.3
  • 0.7.2
  • 0.7.1
  • 0.7.0
  • 0.6.5
  • 0.6.4
  • 0.6.3
  • 0.6.2
36 results

test_mgs_drivers.py

Blame
  • user avatar
    Jacob Cain authored and GitHub committed
    * added IsisLabelNaifSpiceMGSMOCNarrowAngleDriver
    
    * added tests
    
    * overwrite clock_start_count instead of ephemeris
    
    * Removed spacecraft_clock_start_count overwrite
    46f53157
    History
    test_mgs_drivers.py 5.22 KiB
    import pytest
    import numpy as np
    import os
    import unittest
    from unittest.mock import MagicMock, PropertyMock, patch
    import spiceypy as spice
    import json
    
    from conftest import get_image, get_image_label, get_isd, get_image_kernels, convert_kernels, compare_dicts
    import ale
    from ale.drivers.mgs_drivers import MgsMocWideAngleCameraIsisLabelNaifSpiceDriver, MgsMocNarrowAngleCameraIsisLabelNaifSpiceDriver
    from ale import util
    
    
    @pytest.fixture(scope='module')
    def test_nac_kernels():
        kernels = get_image_kernels('m0402852')
        updated_kernels, binary_kernels = convert_kernels(kernels)
        yield updated_kernels
        for kern in binary_kernels:
            os.remove(kern)
    
    def test_nac_load(test_nac_kernels):
        label_file = get_image_label('m0402852', 'isis')
        compare_dict = get_isd("mgsmocna")
    
        isd_str = ale.loads(label_file, props={'kernels': test_nac_kernels}, verbose=True)
        isd_obj = json.loads(isd_str)
        print(json.dumps(isd_obj, indent=2))
        assert compare_dicts(isd_obj, compare_dict) == []
    
    
    @pytest.fixture(scope='module')
    def test_wac_kernels():
        kernels = get_image_kernels('ab102401')
        updated_kernels, binary_kernels = convert_kernels(kernels)
        yield updated_kernels
        for kern in binary_kernels:
            os.remove(kern)
    
    def test_wac_load(test_wac_kernels):
        label_file = get_image_label('ab102401', 'isis3')
        compare_dict = get_isd("mgsmocwa")
    
        isd_str = ale.loads(label_file, props={'kernels': test_wac_kernels})
        isd_obj = json.loads(isd_str)
        print(json.dumps(isd_obj, indent=2))
        assert compare_dicts(isd_obj, compare_dict) == []
    
    
    class test_wac_isis3_naif(unittest.TestCase):
        def setUp(self):
            label = get_image_label("ab102401", "isis3")
            self.driver = MgsMocWideAngleCameraIsisLabelNaifSpiceDriver(label)
    
        def test_instrument_id(self):
            assert self.driver.instrument_id == "MGS_MOC_WA_RED"
        
        def test_sensor_name(self):
            assert self.driver.sensor_name == "MGS_MOC_WA_RED"
    
        def test_ephemeris_start_time(self):
            with patch('ale.drivers.mgs_drivers.spice.scs2e', return_value=1234) as scs2e:
                assert self.driver.ephemeris_start_time == 1234
                scs2e.assert_called_with(-94, "561812335:32")
    
        def test_ephemeris_stop_time(self):
            with patch('ale.drivers.mgs_drivers.spice.scs2e', return_value=1234) as scs2e:
                assert self.driver.ephemeris_stop_time == 1541.2
                scs2e.assert_called_with(-94, "561812335:32")
    
    
        def test_detector_start_sample(self):
            assert self.driver.detector_start_sample == 673
           
    
        def test_detector_center_sample(self):
            with patch('ale.drivers.mgs_drivers.spice.gdpool', return_value=[1727.5]) as gdpool:
                assert self.driver.detector_center_sample == 1727.5
                gdpool.assert_called_with('INS-94032_CENTER', 0, 1)
    
    
        def test_detector_center_line(self):
            with patch('ale.drivers.mgs_drivers.spice.gdpool', return_value=[0, 1727.5]) as gdpool:
                assert self.driver.detector_center_line == 1727.5
                gdpool.assert_called_with('INS-94032_CENTER', 0, 2)
    
        def test_sensor_model_version(self):
            assert self.driver.sensor_model_version == 1
      
        def test_ikid(self):
            assert self.driver.ikid == -94032
    
        def test_odtk(self):
            assert self.driver.odtk == [0, -.007, .007]
            with patch('ale.drivers.mgs_drivers.MgsMocWideAngleCameraIsisLabelNaifSpiceDriver.instrument_id', return_value='MGS_MOC_WA_BLUE'):
                assert self.driver.odtk == [0, .007, .007]
    
    
    class test_nac_isis3_naif(unittest.TestCase):
        def setUp(self):
            label = get_image_label("m0402852", "isis")
            self.driver = MgsMocNarrowAngleCameraIsisLabelNaifSpiceDriver(label)
    
        def test_instrument_id(self):
            assert self.driver.instrument_id == "MGS_MOC_NA"
        
        def test_sensor_name(self):
            assert self.driver.sensor_name == "MGS_MOC_NA"
    
        def test_ephemeris_start_time(self):
            with patch('ale.drivers.mgs_drivers.spice.scs2e', return_value=1234) as scs2e:
                assert self.driver.ephemeris_start_time == 1234
                scs2e.assert_called_with(-94, "619971158:28")
    
        def test_ephemeris_stop_time(self):
            with patch('ale.drivers.mgs_drivers.spice.scs2e', return_value=1234) as scs2e:
                assert self.driver.ephemeris_stop_time == 1239.9240448
                scs2e.assert_called_with(-94, "619971158:28")
    
    
        def test_detector_start_sample(self):
            assert self.driver.detector_start_sample == 1
           
    
        def test_detector_center_sample(self):
            with patch('ale.drivers.mgs_drivers.spice.gdpool', return_value=[1727.5]) as gdpool:
                assert self.driver.detector_center_sample == 1727.5
                gdpool.assert_called_with('INS-94031_CENTER', 0, 1)
    
    
        def test_detector_center_line(self):
            with patch('ale.drivers.mgs_drivers.spice.gdpool', return_value=[0, 1727.5]) as gdpool:
                assert self.driver.detector_center_line == 1727.5
                gdpool.assert_called_with('INS-94031_CENTER', 0, 2)
    
        def test_sensor_model_version(self):
            assert self.driver.sensor_model_version == 1
      
        def test_ikid(self):
            assert self.driver.ikid == -94031
    
        def test_odtk(self):
            assert self.driver.odtk == [0, 0.0131240578522949, 0.0131240578522949]