Package SimPy :: Module testRT_Behavior_OO |
[hide private]
[frames] | no frames]

# Source Code for Module SimPy.testRT_Behavior_OO

     1  #!/usr / bin / env python

     2  # coding=utf-8

     3  from SimPy.SimulationRT import *
     4  """testRT_Behavior_OO.py

     5  Tests SimulationRT for degree to which simulation time

     6  and wallclock time can be synchronized.

     7

     8  OO API.

     9  """
    10  # $Revision: 419 $ $Date: 2010-03-29 16:03:43 +0200 (Mon, 29 Mar 2010) $

    11

    12  print "Under test: SimulationRT.py %s"% version
    13  __version__ = '2.1 $Revision: 419 $ $Date: 2010-03-29 16:03:43 +0200 (Mon, 29 Mar 2010) $ '
    14  print 'testRT_Behavior.py %s'%__version__
    15

    16 -class Ticker(Process):
    17 -    def tick(self):
    18          self.timing = []
    19          while True:
    20              yield hold,self,1
    21              tSim = self.sim.now()
    22              tRT = self.sim.rtnow()
    23              self.timing.append((tSim,tRT))
    24

    25  s=SimulationRT()
    26  s.initialize()
    27  t=Ticker(sim=s)
    28  s.activate(t,t.tick())
    29  s.simulate(until=10,real_time=True,rel_speed=1)
    30

    31  print "Speed ratio set: 1"
    32  print "------------------"
    33  for tSim,tRT in t.timing:
    34      print "tSim:%s, tRT:%s, speed ratio:%s"%(tSim,tRT,tSim/tRT)
    35

    36  s1=SimulationRT()
    37  s1.initialize()
    38  t=Ticker(sim=s1)
    39  s1.activate(t,t.tick())
    40  s1.simulate(until=10,real_time=True,rel_speed=5)
    41

    42  print
    43  print "Speed ratio set: 5"
    44  print "------------------"
    45  for tSim,tRT in t.timing:
    46      print "tSim:%s, tRT:%s, speed ratio:%s"%(tSim,tRT,tSim/tRT)
    47