Example #1
0
    def test_build_sequence_branch_false(self):
        sequencer = DummySequencer(DummySequencingHardware())
        block = DummyInstructionBlock()

        delegator = DummySequencingElement()
        if_branch = DummySequencingElement()
        else_branch = DummySequencingElement()
        callback = IterationCallbackDummy(False)

        condition = SoftwareCondition(lambda loop_iteration: callback.callback(loop_iteration))
        condition.build_sequence_branch(delegator, if_branch, else_branch, sequencer, [], block)

        self.assertEqual(0, callback.loop_iteration)
        self.assertFalse(block.instructions)
        self.assertEqual({block: [(else_branch, [])]}, sequencer.sequencing_stacks)

        condition.build_sequence_branch(delegator, if_branch, else_branch, sequencer, [], block)
        self.assertEqual(0, callback.loop_iteration)