Пример #1
0
def test_global_id():
    """Test that formatting a global id does raise.

    """
    shape = Modulation()
    with pytest.raises(RuntimeError):
        shape.format_global_vars_id('r')
    def test_overflow_check_A(self):
        self.root.time_constrained = True
        self.root.sequence_duration = '1'
        pulse1 = Pulse(kind='Analogical',
                       def_1='0.1',
                       def_2='0.5',
                       channel='Ch1_A',
                       shape=SquareShape(amplitude='1.0'),
                       modulation=Modulation(frequency='2.5',
                                             kind='sin',
                                             activated=True))
        pulse2 = Pulse(kind='Analogical',
                       def_1='0.1',
                       def_2='0.5',
                       channel='Ch1_A',
                       shape=SquareShape(amplitude='1.0'),
                       modulation=Modulation(frequency='2.5',
                                             kind='sin',
                                             activated=True))
        self.root.add_child_item(0, pulse1)
        self.root.add_child_item(1, pulse2)

        res, infos, errors = self.compile(self.root, self.driver)
        print(errors)
        assert not res
        assert 'Ch1_A' in errors
    def test_overlapping_pulses(self):
        self.root.time_constrained = True
        self.root.sequence_duration = '1'
        pulse1 = Pulse(kind='Analogical',
                       def_1='0.1',
                       def_2='0.5',
                       channel='Ch1_A',
                       shape=SquareShape(amplitude='1.0'),
                       modulation=Modulation(frequency='2.5',
                                             kind='sin',
                                             activated=True))
        pulse2 = Pulse(kind='Analogical',
                       def_1='0.1',
                       def_2='0.5',
                       channel='Ch1_A',
                       shape=SquareShape(amplitude='1.0'),
                       modulation=Modulation(frequency='2.5',
                                             kind='sin',
                                             phase='Pi',
                                             activated=True))
        self.root.add_child_item(0, pulse1)
        self.root.add_child_item(1, pulse2)

        res, infos, errors = self.compile(self.root, None)
        print(errors)
        assert res
        assert infos['sequence_ch1'] == 'Test_Ch1'
Пример #4
0
def test_eval_modulation1():
    """Test evaluating the entries of an inactive modulation.

    """
    modulation = Modulation()
    root_vars = {'a': 1.0}
    missing = set()
    errors = {}

    assert modulation.eval_entries({}, root_vars, missing, errors)
    assert missing == set()
    assert errors == {}
    assert_array_equal(modulation.compute(np.zeros(1), 'mus'), 1.0)
Пример #5
0
def test_eval_modulation4():
    """Test evaluating the entries of an active modulation when some vars
    are missing.
    Issue on phase.

    """
    modulation = Modulation(activated=True)
    modulation.frequency = '1.0'
    modulation.phase = '0.0*{a}'

    root_vars = {}
    missing = set()
    errors = {}

    assert not modulation.eval_entries({}, root_vars, missing, errors)
    assert missing == set('a')
Пример #6
0
def test_eval_modulation6():
    """Test evaluating the entries of an active modulation when some entries
    are incorrect.
    Issue on phase.

    """
    modulation = Modulation(activated=True)
    modulation.frequency = '1.0'
    modulation.phase = '0.0*'

    root_vars = {}
    missing = set()
    errors = {}

    assert not modulation.eval_entries({}, root_vars, missing, errors)
    assert missing == set()
    assert '0_modulation_phase' in errors
Пример #7
0
def test_eval_modulation2bis():
    """Test evaluating the entries of an active modulation.

    """
    modulation = Modulation(activated=True)
    modulation.frequency = '1.0*{a}'
    modulation.phase = '90.0'
    modulation.phase_unit = 'deg'
    modulation.kind = 'cos'

    root_vars = {'a': 1.0}
    missing = set()
    errors = {}

    assert modulation.eval_entries({}, root_vars, missing, errors)
    assert missing == set()
    assert errors == {}
    assert_array_almost_equal(modulation.compute(np.array([0, 0.25]), 'mus'),
                              np.array([0, -1]))
Пример #8
0
def test_analysing_modulation_dependencies(workbench,
                                           modulation_dep_collector):
    """Test analysing the dependencies of a modulation.

    """
    dep = set()
    errors = dict()
    run = modulation_dep_collector.analyse(workbench, Modulation(), getattr,
                                           dep, errors)

    assert not run
    assert 'exopy_pulses.Modulation' in dep
    assert not errors

    dep = set()
    run = modulation_dep_collector.analyse(workbench,
                                           {'modulation_id': '__dummy__'},
                                           getitem, dep, errors)
    assert not run
    assert not dep
    assert '__dummy__' in errors