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

# Source Code for Module SimPy.testRT_Behavior

     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  Non-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 = now()
    22              tRT = rtnow()
    23              self.timing.append((tSim,tRT))
    24

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

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

    35  initialize()
    36  t=Ticker()
    37  activate(t,t.tick())
    38  simulate(until=10,real_time=True,rel_speed=5)
    39

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