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)
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]})
def test_lin_ascan(): traj = np.linspace(0, 10, 5) scan = AbsScan([det], motor, 0, 10, 5) yield traj_checker, scan, traj
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