def testSetBusControllerSecondReturnType02(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     bc1 = busC.BusController()
     self.assertEqual(s.setBusController(bc1), False,
                      'setBusController does not set bus controller')
Пример #2
0
 def testSetPollFrameInvalidrtListErrorMessage06(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     rtList = [56, 44]
     self.assertRaisesRegexp(Exception, "^BusController.setPollFrame:\s\s",
                             bc.setPollFrame, (rtList))
Пример #3
0
 def testSetPollFrameWithNonExistingRTErrorMessage01(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     rtList = [1]
     self.assertRaisesRegexp(Exception, "^BusController.setPollFrame:\s\s",
                             bc.setPollFrame, (rtList))
Пример #4
0
 def testSetPollFrameOnertListReturnValue03(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=30))
     rtList = [30]
     self.assertEqual(bc.setPollFrame(rtList), 1)
 def testLaunchErrorType02(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     for i in range(1, 3):
         s.addRemoteTerminal(rt=remT.RemoteTerminal(address=i))
     bc.setPollFrame(rtList=[1, 2])
     self.assertRaises(ValueError, s.launch, (1.2))
Пример #6
0
 def testSetPollFrameRepeatrtListReturnValue01(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     rt = remT.RemoteTerminal(address=1)
     s.addRemoteTerminal(rt)
     rtList = [1, 1]
     self.assertEqual(bc.setPollFrame(rtList), 2)
 def testLaunchReturnValue03(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     for i in range(1, 6):
         s.addRemoteTerminal(rt=remT.RemoteTerminal(address=i))
     bc.setPollFrame(rtList=[1, 2, 3, 4, 5])
     self.assertEqual(s.launch(), 5, 'launch does not launch buscontroller')
Пример #8
0
 def testPollPolled03(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     bc.setPollFrame(rtList=[])
     bc.poll()
     self.assertEqual(bc.polledTerminals, [],
                      'Buscontroller does not poll properly')
Пример #9
0
 def testPollReturnValue06(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     for i in range(1, 6):
         s.addRemoteTerminal(rt=remT.RemoteTerminal(address=i))
     bc.setPollFrame(rtList=[1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3])
     self.assertEqual(bc.poll(), 3, 'Buscontroller does not poll properly')
Пример #10
0
 def testSetPollFrameTwortListReturnValue02(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=15))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=29))
     rtList = [15, 29]
     self.assertEqual(bc.setPollFrame(rtList), 2)
 def testLaunchPolledNo05(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     for i in range(1, 3):
         s.addRemoteTerminal(rt=remT.RemoteTerminal(address=i))
     bc.setPollFrame(rtList=[1, 2])
     s.launch(frameCount=5)
     self.assertEqual(s.polled, 5, 'launch does not launch buscontroller')
Пример #12
0
 def testSetPollFrameWithNonExistingRTErrorType03(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=1))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=4))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=8))
     rtList = [1, 4, 6, 6, 8]
     self.assertRaises(ValueError, bc.setPollFrame, (rtList))
Пример #13
0
 def testPollAscOrder02(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     for i in range(0, 30, -1):
         s.addRemoteTerminal(rt=remT.RemoteTerminal(address=i))
     bc.setPollFrame(rtList=[])
     bc.poll()
     self.assertEqual(sorted(bc.remoteTerminals), bc.polledTerminals,
                      'Buscontroller does not poll properly')
 def testLaunchErrorMessage02(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     for i in range(1, 3):
         s.addRemoteTerminal(rt=remT.RemoteTerminal(address=i))
     bc.setPollFrame(rtList=[1, 2])
     s.launch(frameCount=5)
     self.assertRaisesRegexp(Exception, "^Satellite.launch:\s\s", s.launch,
                             (1.2))
Пример #15
0
 def testSetPollFrameWithNonExistingRTErrorMessage03(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=1))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=4))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=8))
     rtList = [1, 4, 6, 6, 8]
     self.assertRaisesRegexp(Exception, "^BusController.setPollFrame:\s\s",
                             bc.setPollFrame, (rtList))
Пример #16
0
 def testSetPollFrameFourrtListReturnValue(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=1))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=6))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=27))
     s.addRemoteTerminal(rt=remT.RemoteTerminal(address=29))
     rtList = [1, 6, 27, 29]
     self.assertEqual(bc.setPollFrame(rtList), 4)
    def testScenario(self):
        # Create some remote terminals
        rt1 = remT.RemoteTerminal(1)
        rt2 = remT.RemoteTerminal(2)
        rt3 = remT.RemoteTerminal(3)

        # Create a bus controller
        bc = busC.BusController()

        # Create a satellite and install the subsystems
        s = sat.Satellite()
        s.setBusController(bc)
        s.addRemoteTerminal(rt1)
        s.addRemoteTerminal(rt2)
        s.addRemoteTerminal(rt3)

        # Tell the bus controller the order in which to poll remote terminals
        pollFrame = [1, 2, 2, 3]
        bc.setPollFrame(pollFrame)

        # Start the subsystems
        s.launch()
Пример #18
0
 def test100_020_ShouldPollAllRts(self):
     theBC = busC.BusController()
     self.sat.setBusController(theBC)
     self.assertEquals(3, theBC.poll())
Пример #19
0
 def testSetPollFrameEmptyrtListReturnValue(self):
     bc = busC.BusController()
     rtList = []
     self.assertEqual(bc.setPollFrame(rtList), 0)
Пример #20
0
 def test100_010_ShouldPollSpecifiedRt(self):
     theBC = busC.BusController()
     self.sat.setBusController(theBC)
     theBC.setPollFrame([self.rt1.getAddress()])
     self.assertEquals(1, theBC.poll())
 def test100_010_ShouldDetermineApproximateBusBehavior(self):
     theBC = busC.BusController()
     self.sat.setBusController(theBC)
     theBC.setPollFrame([self.rt1.getAddress()])
     # polling rt1:
     # Because this is a blackbox test at the satellite level, we don't have
     # direct visibility into exactly what is being written to the bus,
     # only how many words have been written. (NB: We have unit tests
     # at the component level that, presumably, pass. This gives us
     # confidence that the components work in isolation. What we
     # want to do now is get some degree of confidence that they work
     # when integrated together.)
     # What we know:
     # * the original specs say that a remote terminal has p(no service) = .5
     # and p(service requested) = .5
     # * if service is requested, then p(transmit) = .5 and p(receive) = .5
     # * overall, this means that p(no service) = .5, p(transmit) = .25,
     # p(receive)=.25
     #
     # * our scenarios specify that a remote terminal transmits/receives n words,
     # where n is the address
     #
     # Given this information:
     # 1. rt1 requests no service
     # BC requests status = 1 word
     # RT responds with status = 1 word
     # = 2 words
     #
     # 2. rt1 requests service, service is transmit command
     # BC requests status = 1 word
     # RT responds with status = 1 word
     # BC requests vector word = 1 word
     # RT responds with status + transmit command = 2 words
     # BC issues transmit command = 1 word
     # RT responds with status + 1 data word = 2 words
     # = 8 words
     #
     # 3. rt1 requests service, service is receive command
     # BC requests status = 1 word
     # RT responds with status = 1 word
     # BC requests vector word = 1 word
     # RT responds with status + receive command = 2 words
     # BC issues receive command + 1 data word = 2 word
     # RT responds with status = 1 words
     # = 8 words
     #
     #
     # Each time we run BusController.poll(), we will get 1 in return.
     # This doesn't give us much insight.
     #
     # But, we can run run Satellite.launch() and get an idea of whether our
     # software is approximating our expected behavior by examining the number
     # of words written to the bus. Given the probabilities above,
     # we expect, on the average, 5 words written each time RT1 is polled.
     # Alternative 1: Satellite.launch(n) should return n*5
     sampleSize = 10000
     averageWordCount = 5
     expectedCount = float(sampleSize * averageWordCount)
     actualCount = float(self.sat.launch(sampleSize))
     self.assertAlmostEquals(
         abs(actualCount - expectedCount) / expectedCount, 1.0, 1)
     # Alternative 2: Call Satellite.launch(1) n times.
     # 2 should be returned half the time, 8 the other half.
     sampleSize = 10000
     twoWordTally = 0
     eightWordTally = 0
     for samples in range(sampleSize):
         result = self.sat.launch(1)
     if (result == 2):
         twoWordTally += 1
     elif (result == 8):
         eightWordTally += 1
     else:
         self.fail()
         self.assertAlmostEquals(
             float(twoWordTally) / float(eightWordTally), 1.0, 1)
Пример #22
0
 def testSetPollFrameWithNonExistingRTErrorType01(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     rtList = [1]
     self.assertRaises(ValueError, bc.setPollFrame, (rtList))
Пример #23
0
 def testSetPollFrameNoParamsReturnValue(self):
     bc = busC.BusController()
     self.assertEqual(bc.setPollFrame(), 0)
Пример #24
0
 def testSetPollFrameInvalidrtListErrorType06(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     rtList = [56, 44]
     self.assertRaises(ValueError, bc.setPollFrame, (rtList))
Пример #25
0
 def testBusControllerInstantiationStatusChange(self):
     bc = busC.BusController()
     self.assertEqual(bc.rtList.__len__(), 0)
Пример #26
0
 def testBusControllerInstantiationReturnType(self):
     bc = busC.BusController()
     assert (isinstance(bc, busC.BusController))
Пример #27
0
 def testPollReturnValue03(self):
     s = sat.Satellite()
     bc = busC.BusController()
     s.setBusController(bc)
     bc.setPollFrame(rtList=[])
     self.assertEqual(bc.poll(), 0, 'Buscontroller does not poll properly')
 def testSetBusControllerFirstReturnType02(self):
     s = sat.Satellite()
     bc = busC.BusController()
     self.assertEqual(s.setBusController(bc), True,
                      'setBusController does not set bus controller')