def test_4_StarSensor_ServiceRequest(self): s = StarSensor(.1) if (s.serviceRequest() == None): print('Test 4.1 StarSensor.ServiceRequest(): PASSED: Returned None when null environment object') else: print('Test 4.1 StarSensor.ServiceRequest(): FAILED: Didnt return None when null environment object') e = Environment() e.setRotationalPeriod(40000000) s.configure(e) print(s.serviceRequest())
def test_2_StarSensor_initializeSensor(self): s = StarSensor(.1) try: s.initializeSensor('hi') print('Test 2.1 StarSensor.initializeSensor() FAILED: Raised Exception when invalid filename passed') except: print('Test 2.1 StarSensor.initializeSensor() PASSED: Raised Exception when invalid filename passed') if (s.initializeSensor('data.txt') == 3): print('Test 2.2 StarSensor.initializeSensor() PASSED: Returned Correct value (number of stars) when passed file') else: print('Test 2.2 StarSensor.initializeSensor() FAILED: Returned InCorrect value (number of stars) when passed file')
def test_3_StarSensor_configure(self): s = StarSensor(.1) e = Environment() if (s.configure(e)): print ('Test 3.1 StarSensor.configure() PASSED: returned true with valid Environment') else: print ('Test 3.1 StarSensor.configure() FAILED: returned false with valid Environment') try: s.configure('hi') print ('Test 3.2 StarSensor.configure() FAILED: Threw Error when passed invalid environment') except: print ('Test 3.2 StarSensor.configure() PASSED: Threw Error when passed invalid environment')
def test400_020_ShouldCalculateMagnitudeHexValueInitiallyWithDifferentFOV( self): myEnv = Environment.Environment() myEnv.setRotationalPeriod(1000000) mySensor = StarSensor.StarSensor(0.034906585) mySensor.initializeSensor(starFile="SaoChart.txt") mySensor.configure(myEnv) self.assertEquals(mySensor.serviceRequest(), '0035')
def test400_050_ShouldCalculateMagnitudeHexValueAtEighteenthHour(self): myEnv = Environment.Environment() myEnv.setRotationalPeriod(1000000) myEnv.incrementTime(microseconds=43200000000 + 21600000000) mySensor = StarSensor.StarSensor(0.034906585) mySensor.initializeSensor(starFile="SaoChart.txt") mySensor.configure(myEnv) self.assertEquals(mySensor.serviceRequest(), '8000')
def test600_010_ShouldCalculateRAAndDECOfSensor(self): myEnv = Environment.Environment() myEnv.setRotationalPeriod(1000000) mySensor = StarSensor.StarSensor(0.034906585) mySensor.initializeSensor(starFile="SaoChart.txt") mySensor.configure(myEnv) output = [1.5707963267948966, 0.0] self.assertEquals(mySensor.getSensorPosition(), output)
def test600_020_ShouldCalculateRAAndDECOfSensorAtTwelthHour(self): myEnv = Environment.Environment() myEnv.setRotationalPeriod(1000000) myEnv.incrementTime(microseconds=43200000000) mySensor = StarSensor.StarSensor(0.034906585) mySensor.initializeSensor(starFile="SaoChart.txt") mySensor.configure(myEnv) output = [4.71238898038469, 0.0] self.assertEquals(mySensor.getSensorPosition(), output)
def test300_010_ShouldConfigureWithEnvironment(self): mySensor = StarSensor.StarSensor(0.1) env = Environment.Environment() env.setRotationalPeriod(1000000) self.assertEquals(mySensor.configure(env), True)
def test200_940ShouldRaiseExceptionOnFileWithDuplicateData(self): with self.assertRaises(ValueError) as context: mySensor = StarSensor.StarSensor(0.1) mySensor.initializeSensor(starFile="SaoChartDuplicate.txt")
def test200_950ShouldRaiseExceptionOnFileNameNotString(self): with self.assertRaises(ValueError) as context: mySensor = StarSensor.StarSensor(0.1) mySensor.initializeSensor(starFile=2)
def test200_910ShouldRaiseExceptionOnMissingFileName(self): with self.assertRaises(ValueError) as context: mySensor = StarSensor.StarSensor(0.1) mySensor.initializeSensor()
def test200_920ShouldRaiseExceptionOnIncorrectFileName(self): with self.assertRaises(ValueError) as context: mySensor = StarSensor.StarSensor(0.1) mySensor.initializeSensor(starFile="Sao")
def test100_920ShouldRaiseExceptionOnMissingFOV(self): with self.assertRaises(ValueError) as context: StarSensor.StarSensor()
def test200_010_ShouldInitializeStarSensorWithStarFile(self): mySensor = StarSensor.StarSensor(0.1) self.assertEquals(mySensor.initializeSensor(starFile="SaoChart.txt"), 9040)
def test100_010_ShouldConstruct(self): self.assertIsInstance(StarSensor.StarSensor(0.1), StarSensor.StarSensor)
def test100_910ShouldRaiseExceptionOnInvalidFOV(self): with self.assertRaises(ValueError) as context: StarSensor.StarSensor(0)
''' Created on Sep 27, 2015 @author: sum ''' import CA02.prod.StarSensor as StarSensor from CA02.prod import Environment import CA01.prod.StarCatalog as StarCatalog import math ss = StarSensor.StarSensor(0.034906585) a = ss.initializeSensor(starFile='SaoCharts.txt') env = Environment.Environment() a = env.getTime() env.setRotationalPeriod(microseconds=1000000) c = ss.configure(env) sCat = StarCatalog.StarCatalog() sCat.loadCatalog(starFile='SaoCharts.txt') s = sCat.getMagnitude(0, math.pi / 2, 0.034906585) print 24 * 60 * 60 * 1000000 / 2 print env.getTime() print 'yo' x = ss.serviceRequest() print 'yo' print x print env.getTime() env.incrementTime(21600000000 * 3 - env.getTime()) print 'yo'
def test_5_StarSensor_getSensorPosition(self): import math s = StarSensor(.1) e = Environment() s.configure(e) try: s.getSensorPosition() print('Test 5.1 StarSensor.getSensorPosition: FAILED: Threw Error when null rotationalTime') except: print('Test 5.1 StarSensor.getSensorPosition: PASSED: Threw Error when null rotationalTime') e = Environment() e.setRotationalPeriod(4000000) s.configure(e) list = s.getSensorPosition() if (list[0] == 2.0*math.pi and list[1] == 0): print('Test 5.2 StarSensor.getSensorPosition: PASSED: returned correct value when time == 0') else: print('Test 5.2 StarSensor.getSensorPosition: PASSED: returned correct value when time == 0') e.incrementTime(40) s.configure(e) list = s.getSensorPosition() if (list[0] >= -2*math.pi and list[1] >= -2*math.pi): print('Test 5.3 StarSensor.getSensorPosition: PASSED: returned correct value when running normally') else: print('Test 5.3 StarSensor.getSensorPosition: FAILED: returned incorrect value when running normally')
def test300_910ShouldRaiseExceptionOnMissingEnvironment(self): with self.assertRaises(ValueError) as context: mySensor = StarSensor.StarSensor(0.1) mySensor.configure()
def test500_050_ShouldCalculateHexValueOfNoStar(self): mySensor = StarSensor.StarSensor(0.1) self.assertEquals(mySensor.convertHexadecimal(brightestStar=None), None)
def test500_040_ShouldCalculateHexValueOfNegativeTwenty(self): mySensor = StarSensor.StarSensor(0.1) self.assertEquals(mySensor.convertHexadecimal(brightestStar=-20), 'ff37')
def test500_030_ShouldCalculateHexValueOfSixPointFiftyFive(self): mySensor = StarSensor.StarSensor(0.1) self.assertEquals(mySensor.convertHexadecimal(brightestStar=6.55), '0041')
def test500_020_ShouldCalculateHexValueOfOne(self): mySensor = StarSensor.StarSensor(0.1) self.assertEquals(mySensor.convertHexadecimal(brightestStar=1), '000a')
def test300_920ShouldRaiseExceptionOnPassingNonEnvironmentInstance(self): with self.assertRaises(ValueError) as context: mySensor = StarSensor.StarSensor(0.1) env = 2 mySensor.configure(env)
def test600_030_ShouldCalculateRAAndDECAsNoneWhenNotConfigured(self): myEnv = Environment.Environment() myEnv.setRotationalPeriod(1000000) mySensor = StarSensor.StarSensor(0.034906585) output = [None, None] self.assertEquals(mySensor.getSensorPosition(), output)
def test400_030_ShouldCalculateNoneMagnitudeHexValueIfNotConfigured(self): myEnv = Environment.Environment() myEnv.setRotationalPeriod(1000000) mySensor = StarSensor.StarSensor(0.034906585) mySensor.initializeSensor(starFile="SaoChart.txt") self.assertEquals(mySensor.serviceRequest(), None)
def getComponent(self): if (self.component['component'] == "Environment"): self.instance = Environment.Environment() parms = self.component['parms'] if len(parms) == 0: raise ValueError( "Controller.initialize: Environment requires additional information." ) for parm in parms: if (str(parm['name']) == 'rotationalPeriod') and (parm['value'] != None): self.instance.setRotationalPeriod((int)(parm['value'])) elif (str(parm['name']) == 'startTime') and (parm['value'] != None): self.instance.setStartTime((int)(parm['value'])) elif (str(parm['name']) == 'degradation') and (parm['value'] != None): self.instance.setDegradation((int)(parm['value'])) else: raise ValueError( "Controller.initialize: Environment requires additional information." ) return self.instance elif (self.component['component'] == "Monitor"): self.instance = Monitor.Monitor() parms = self.component['parms'] if len(parms) == 0: raise ValueError( "Controller.initialize: Monitor requires additional information." ) for parm in parms: if (str(parm['name']) == 'logFile'): self.instance.initialize(str(parm['value'])) else: raise ValueError( "Controller.initialize: Monitor requires additional information." ) return self.instance elif (self.component['component'] == "StarSensor"): parms = self.component['parms'] if len(parms) != 2: raise ValueError( "Controller.initialize: StarSensor requires additional information." ) for parm in parms: if (str(parm['name']) == 'fieldOfView'): self.instance = StarSensor.StarSensor( (float)(parm['value'])) elif (str(parm['name']) == 'starFile'): pass else: raise ValueError( "Controller.initialize: StarSensor requires additional information." ) for parm in parms: if (str(parm['name']) == 'starFile'): self.instance.initializeSensor(str(parm['value'])) elif (str(parm['name']) == 'fieldOfView'): pass else: raise ValueError( "Controller.initialize: StarSensor requires additional information." ) return self.instance elif (self.component['component'] == "Device"): self.instance = Device.Device() return self.instance elif (self.component['component'] == "SolarCollector"): self.instance = SolarCollector.SolarCollector() return self.instance else: raise ValueError( "Controller.initialize: The device(s) mentioned in XML is incorrect." )