def test_traverse_sequence(): """Test traversing a pulse sequence. """ root = RootSequence() context = TestContext() root.context = context root.external_vars = OrderedDict({'a': 1.5}) pulse1 = Pulse(def_1='1.0', def_2='{a}') pulse2 = Pulse(def_1='{a} + 1.0', def_2='3.0') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) pulse4 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) seq = BaseSequence() add_children(root, [pulse1, pulse2, pulse3, seq]) add_children(seq, [pulse4]) items = root.traverse() assert len(list(items)) == 11 assert list( root.traverse(0)) == [root, pulse1, pulse2, pulse3, seq, context]
def test_build_from_config(): """Test building a pulse sequence. """ root = RootSequence() context = TestContext() root.context = context root.external_vars = {'a': 1.5} pulse1 = Pulse(def_1='1.0', def_2='{a}') pulse2 = Pulse(def_1='{a} + 1.0', def_2='3.0') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) pulse4 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) seq = BaseSequence() add_children(root, [pulse1, pulse2, pulse3, seq]) add_children(seq, [pulse4]) pref = root.preferences_from_members() dependecies = {'ecpy.pulses.items': {'ecpy_pulses.BaseSequence': BaseSequence, 'ecpy_pulses.Pulse': Pulse}, 'ecpy.pulses.shapes': {'ecpy_pulses.SquareShape': SquareShape}, 'ecpy.pulses.contexts': {'ecpy_pulses.TestContext': TestContext}} aux = RootSequence.build_from_config(pref, dependecies) assert aux.external_vars == {'a': 1.5} assert len(aux.items) == 4 assert isinstance(aux.context, TestContext) pulse1 = aux.items[0] assert pulse1.def_1 == '1.0' assert pulse1.def_2 == '{a}' pulse2 = aux.items[1] assert pulse2.def_1 == '{a} + 1.0' assert pulse2.def_2 == '3.0' pulse3 = aux.items[2] assert pulse3.def_1 == '{2_stop} + 0.5' assert pulse3.def_2 == '10' assert pulse3.kind == 'Analogical' assert isinstance(pulse3.shape, SquareShape) seq = aux.items[3] assert len(seq.items) == 1
def sequence(): """Create a sequence. """ root = RootSequence() context = TestContext(sampling=0.5) root.context = context root.external_vars = OrderedDict({'a': None}) root.local_vars = OrderedDict({'b': '2*{a}'}) pulse1 = Pulse(def_1='1.0', def_2='{a}', def_mode=str('Start/Stop')) pulse2 = Pulse(def_1='{a} + 1.0', def_2='3.0') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10 + {b}') for i, c in enumerate((pulse1, pulse2, pulse3)): root.add_child_item(i, c) return root
def sequence(): """Create a sequence. """ root = RootSequence() context = TestContext(sampling=0.5) root.context = context root.external_vars = {"a": 1.5} root.local_vars = {"b": "2*{a}"} pulse1 = Pulse(def_1="1.0", def_2="{a}") pulse2 = Pulse(def_1="{a} + 1.0", def_2="3.0") pulse3 = Pulse(def_1="{2_stop} + 0.5", def_2="10 + {b}") for i, c in enumerate((pulse1, pulse2, pulse3)): root.add_child_item(i, c) return root
def test_traverse_sequence(): """Test traversing a pulse sequence. """ root = RootSequence() context = TestContext() root.context = context root.external_vars = {'a': 1.5} pulse1 = Pulse(def_1='1.0', def_2='{a}') pulse2 = Pulse(def_1='{a} + 1.0', def_2='3.0') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) pulse4 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) seq = BaseSequence() add_children(root, [pulse1, pulse2, pulse3, seq]) add_children(seq, [pulse4]) items = root.traverse() assert len(list(items)) == 11 assert list(root.traverse(0)) == [root, pulse1, pulse2, pulse3, seq, context]
def test_build_from_config(): """Test building a pulse sequence. """ root = RootSequence() context = TestContext() root.context = context root.external_vars = OrderedDict({'a': 1.5}) pulse1 = Pulse(def_1='1.0', def_2='{a}') pulse2 = Pulse(def_1='{a} + 1.0', def_2='3.0') pulse3 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) pulse4 = Pulse(def_1='{2_stop} + 0.5', def_2='10', kind='Analogical', shape=SquareShape()) seq = BaseSequence() add_children(root, [pulse1, pulse2, pulse3, seq]) add_children(seq, [pulse4]) pref = root.preferences_from_members() dependecies = { 'ecpy.pulses.item': { 'ecpy_pulses.BaseSequence': BaseSequence, 'ecpy_pulses.Pulse': Pulse }, 'ecpy.pulses.shape': { 'ecpy_pulses.SquareShape': SquareShape }, 'ecpy.pulses.context': { 'ecpy_pulses.TestContext': TestContext } } aux = RootSequence.build_from_config(pref, dependecies) assert aux.external_vars == {'a': 1.5} assert len(aux.items) == 4 assert isinstance(aux.context, TestContext) pulse1 = aux.items[0] assert pulse1.parent assert pulse1.def_1 == '1.0' assert pulse1.def_2 == '{a}' pulse2 = aux.items[1] assert pulse2.parent assert pulse2.def_1 == '{a} + 1.0' assert pulse2.def_2 == '3.0' pulse3 = aux.items[2] assert pulse3.parent assert pulse3.def_1 == '{2_stop} + 0.5' assert pulse3.def_2 == '10' assert pulse3.kind == 'Analogical' assert isinstance(pulse3.shape, SquareShape) seq = aux.items[3] assert seq.parent assert len(seq.items) == 1