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 plans obj_ascan = AbsScanPlan([det], motor, 1, 5, 4) obj_ascan.subs = cb1 assert obj_ascan.subs == {'all': [cb1], 'start': [], 'stop': [], 'descriptor': [], 'event': []} obj_ascan.subs.update({'start': [cb2]}) assert obj_ascan.subs == {'all': [cb1], 'start': [cb2], 'stop': [], 'descriptor': [], 'event': []} obj_ascan.subs = [cb2, cb3] assert obj_ascan.subs == {'all': [cb2, cb3], 'start': [], 'stop': [], 'descriptor': [], 'event': []}
def test_set(): scan = AbsScanPlan([det], motor, 1, 5, 3) assert scan.start == 1 assert scan.stop == 5 assert scan.num == 3 scan.set(start=2) assert scan.start == 2 scan.set(num=4) assert scan.num == 4 assert scan.start == 2
#might want to put in configuration file import scanoutput from bluesky.plans import AbsScanPlan from bluesky.scientific_callbacks import PeakStats from bluesky.scientific_callbacks import plot_peak_stats from imp import reload import matplotlib.pylab as plt import sys #sys.path.append('/nfs/xf05id1/src/srxtools/') #Oleg specifically energy.move_u_gap.put(False) energy.move_c2_x.put(False) energy.u_gap.read_attrs.append('elevation') olegplan = AbsScanPlan([bpmAD, pu], energy, 8.143, 7.792, 20) #olegplan=AbsScanPlan([bpmAD, pu], energy, 8.143, 7.792, 176) livetableitem = [energy.energy, bpmAD.stats1.total, bpmAD.stats3.total] liveploty = bpmAD.stats3.total.name liveplotx = energy.energy.name liveplotfig = plt.figure() ps = [] ps.append(PeakStats(energy.energy.name, bpmAD.stats3.total.name)) #for executing the current plan #RE(olegplan, [LiveTable(livetableitem), LivePlot(liveploty, x=liveplotx, fig=liveplotfig), ps[-1]]) #figureofmerit=oleg_afterscan(ps) #def ud_crab_plan(pu, us_u, us_l, ds_u, ds_l, other_dets):
def test_lin_ascan(): traj = np.linspace(0, 10, 5) scan = AbsScanPlan([det], motor, 0, 10, 5) traj_checker(scan, traj)