Beispiel #1
0
def test_set():
    scan = AbsScan([det], motor, 1, 5, 3)
    assert_equal(scan.start, 1)
    assert_equal(scan.stop, 5)
    assert_equal(scan.num, 3)
    scan.set(start=2)
    assert_equal(scan.start, 2)
    scan.set(num=4)
    assert_equal(scan.num, 4)
    assert_equal(scan.start, 2)
Beispiel #2
0
def test_subs_input():
    def cb1(name, doc):
        pass

    def cb2(name, doc):
        pass

    def cb3(name, doc):
        pass

    def cb_fact4(scan):
        def cb4(name, doc):
            pass

        return cb4

    def cb_fact5(scan):
        def cb5(name, doc):
            pass

        return cb5

    # Test input normalization on OO scans
    obj_ascan = AbsScan([det], motor, 1, 5, 4)
    obj_ascan.subs = cb1
    assert_equal(obj_ascan.subs, {'all': [cb1]})
    obj_ascan.subs.update({'start': [cb2]})
    assert_equal(obj_ascan.subs, {'all': [cb1], 'start': [cb2]})
    obj_ascan.subs = [cb2, cb3]
    assert_equal(obj_ascan.subs, {'all': [cb2, cb3]})

    # Test input normalization on simple scans
    assert_equal(mesh.subs, mesh.default_subs)
    mesh.subs.update({'start': [cb2]})
    expected = dict(mesh.default_subs)
    expected.update({'start': [cb2]})
    assert_equal(mesh.subs, expected)
    mesh.subs = cb2
    assert_equal(mesh.subs, {'all': [cb2]})
    mesh.subs = [cb2, cb3]
    assert_equal(mesh.subs, {'all': [cb2, cb3]})
    mesh.subs.update({'start': [cb1]})
    assert_equal(mesh.subs, {'all': [cb2, cb3], 'start': [cb1]})
Beispiel #3
0
def test_subs_input():
    def cb1(name, doc):
        pass

    def cb2(name, doc):
        pass

    def cb3(name, doc):
        pass

    def cb_fact4(scan):
        def cb4(name, doc):
            pass
        return cb4

    def cb_fact5(scan):
        def cb5(name, doc):
            pass
        return cb5

    # Test input normalization on OO scans
    obj_ascan = AbsScan([det], motor, 1, 5, 4)
    obj_ascan.subs = cb1
    assert_equal(obj_ascan.subs, {'all': [cb1]})
    obj_ascan.subs.update({'start': [cb2]})
    assert_equal(obj_ascan.subs, {'all': [cb1], 'start': [cb2]})
    obj_ascan.subs = [cb2, cb3]
    assert_equal(obj_ascan.subs, {'all': [cb2, cb3]})

    # Test input normalization on simple scans
    assert_equal(mesh.subs, mesh.default_subs)
    mesh.subs.update({'start': [cb2]})
    expected = dict(mesh.default_subs)
    expected.update({'start': [cb2]})
    assert_equal(mesh.subs, expected)
    mesh.subs = cb2
    assert_equal(mesh.subs, {'all': [cb2]})
    mesh.subs = [cb2, cb3]
    assert_equal(mesh.subs, {'all': [cb2, cb3]})
    mesh.subs.update({'start': [cb1]})
    assert_equal(mesh.subs, {'all': [cb2, cb3], 'start': [cb1]})
Beispiel #4
0
def test_set():
    scan = AbsScan([det], motor, 1, 5, 3)
    assert_equal(scan.start, 1)
    assert_equal(scan.stop, 5)
    assert_equal(scan.num, 3)
    scan.set(start=2)
    assert_equal(scan.start, 2)
    scan.set(num=4)
    assert_equal(scan.num, 4)
    assert_equal(scan.start, 2)
Beispiel #5
0
def test_lin_ascan():
    traj = np.linspace(0, 10, 5)
    scan = AbsScan([det], motor, 0, 10, 5)
    yield traj_checker, scan, traj
Beispiel #6
0
def test_subs_input():
    called = defaultdict(lambda: False)
    def cb1(name, doc):
        called['cb1'] = True
    def cb2(name, doc):
        called['cb2'] = True
    def cb3(name, doc):
        called['cb3'] = True
    obj_ascan = AbsScan([det], motor, 1, 3, 3)
    obj_ascan.subs = cb1
    RE(obj_ascan, subs=[cb2, cb3])
    assert_true(called['cb1'])
    assert_true(called['cb2'])
    assert_true(called['cb3'])
    for key in called:
        called[key] = False

    RE(obj_ascan, subs={'all': [cb2, cb3]})
    assert_true(called['cb1'])
    assert_true(called['cb2'])
    assert_true(called['cb3'])
    for key in called:
        called[key] = False

    gs.DETS = [det]
    ascan.subs = cb1
    ascan(motor, 1, 3, 2, subs={'all': [cb2, cb3]})
    assert_true(called['cb1'])
    assert_true(called['cb2'])
    assert_true(called['cb3'])
    for key in called:
        called[key] = False

    def cb_fact4(scan):
        def cb4(name, doc):
            called['cb4'] = True
        return cb4

    def cb_fact5(scan):
        def cb5(name, doc):
            called['cb5'] = True
        return cb5

    ascan.sub_factories = {'all': [cb_fact4]}
    ascan(motor, 1, 3, 2,
          subs={'all': [cb2, cb3]}, sub_factories={'all': [cb_fact5]})
    assert_true(called['cb1'])
    assert_true(called['cb2'])
    assert_true(called['cb3'])
    assert_true(called['cb4'])
    assert_true(called['cb5'])
    for key in called:
        called[key] = False

    # do it again, but rely on normalization
    ascan(motor, 1, 3, 2,
          subs=[cb2, cb3], sub_factories=cb_fact5)
    assert_true(called['cb1'])
    assert_true(called['cb2'])
    assert_true(called['cb3'])
    assert_true(called['cb4'])
    assert_true(called['cb5'])
    for key in called:
        called[key] = False