コード例 #1
0
ファイル: test_environment.py プロジェクト: fchauvel/MAD
    def test_look_up_bindings_in_parent(self):
        env1 = Environment()
        env1.define("my_var", 4)
        env2 = env1.create_local_environment()
        env3 = env2.create_local_environment()

        self.assertEqual(env3.look_up("my_var"), 4)
コード例 #2
0
    def test_look_up_bindings_in_parent(self):
        env1 = Environment()
        env1.define("my_var", 4)
        env2 = env1.create_local_environment()
        env3 = env2.create_local_environment()

        self.assertEqual(env3.look_up("my_var"), 4)
コード例 #3
0
ファイル: test_environment.py プロジェクト: fchauvel/MAD
    def test_look_up_masked_bindings(self):
        env1 = Environment()
        env1.define("my_var", 8)
        env2 = env1.create_local_environment()
        env2.define("my_var", 7)
        env3 = env2.create_local_environment()
        env3.define("my_var", 6)

        self.assertEqual(env1.look_up("my_var"), 8)
        self.assertEqual(env2.look_up("my_var"), 7)
        self.assertEqual(env3.look_up("my_var"), 6)
コード例 #4
0
    def test_look_up_masked_bindings(self):
        env1 = Environment()
        env1.define("my_var", 8)
        env2 = env1.create_local_environment()
        env2.define("my_var", 7)
        env3 = env2.create_local_environment()
        env3.define("my_var", 6)

        self.assertEqual(env1.look_up("my_var"), 8)
        self.assertEqual(env2.look_up("my_var"), 7)
        self.assertEqual(env3.look_up("my_var"), 6)
コード例 #5
0
class Simulation:
    """
    Represent the general simulation, including the current schedule and the associated trace
    """

    # TODO: This should inherits from SimulatedEntity as well

    def __init__(self, storage):
        self._storage = storage
        self._scheduler = Scheduler()
        self.environment = Environment()
        self.environment.define(Symbols.SIMULATION, self)
        self._next_request_id = 1
        self.factory = Factory()

    def run_until(self, end, display=None):
        self._scheduler.simulate_until(end, display)

    @property
    def log(self):
        return self._storage.log

    @property
    def schedule(self):
        return self._scheduler

    def evaluate(self, expression, continuation=lambda x: x):
        return Evaluation(self.environment, expression, self.factory,
                          continuation).result

    def next_request_id(self):
        id = self._next_request_id
        self._next_request_id += 1
        return id

    @property
    def services(self):
        return self._find_by_type(Service)

    @property
    def clients(self):
        return self._find_by_type(ClientStub)

    def _find_by_type(self, type):
        return [
            each_value
            for each_value in list(self.environment.bindings.values())
            if isinstance(each_value, type)
        ]
コード例 #6
0
ファイル: factory.py プロジェクト: fchauvel/MAD
class Simulation:
    """
    Represent the general simulation, including the current schedule and the associated trace
    """
    # TODO: This should inherits from SimulatedEntity as well

    def __init__(self, storage):
        self._storage = storage
        self._scheduler = Scheduler()
        self.environment = Environment()
        self.environment.define(Symbols.SIMULATION, self)
        self._next_request_id = 1
        self.factory = Factory()

    def run_until(self, end, display=None):
        self._scheduler.simulate_until(end, display)

    @property
    def log(self):
        return self._storage.log

    @property
    def schedule(self):
        return self._scheduler

    def evaluate(self, expression, continuation=lambda x: x):
        return Evaluation(self.environment, expression, self.factory, continuation).result

    def next_request_id(self):
        id = self._next_request_id
        self._next_request_id += 1
        return id

    @property
    def services(self):
        return self._find_by_type(Service)

    @property
    def clients(self):
        return self._find_by_type(ClientStub)

    def _find_by_type(self, type):
        return [each_value
                for each_value in self.environment.bindings.values()
                if isinstance(each_value, type)]
コード例 #7
0
ファイル: test_environment.py プロジェクト: fchauvel/MAD
 def test_look_up_a_missing_binding(self):
     env1 = Environment()
     env1.define("var1", 5)
     self.assertIsNone(env1.look_up("missing_symbol"))
コード例 #8
0
 def test_look_up_a_missing_binding(self):
     env1 = Environment()
     env1.define("var1", 5)
     self.assertIsNone(env1.look_up("missing_symbol"))