import numpy as np import pylab as pl from ptsa.data import ArrayWrapper, Events from ptsa.wavelet import phase_pow_multi # some general info nchan = 2 samplerate = 200 nsamples = samplerate * 100 event_dur = samplerate * 1 buf_dur = 1.0 # generate fake data dat = np.random.rand(nchan, nsamples) aw = ArrayWrapper(dat, samplerate) # generate fake events eoffset = np.arange(event_dur * 2, nsamples - (2 * event_dur), event_dur) esrc = [aw] * len(eoffset) nrec = len(eoffset) / 2 recalled = [True] * nrec + [False] * (len(eoffset) - nrec) events = Events( np.rec.fromarrays([esrc, eoffset, recalled], names='esrc,eoffset,recalled')) # load in data with events (filter at the same time) rdat = events[events.recalled == True].get_data( 0, # channel 1.0, # duration in sec 0.0, # offset in sec
def setUp(self): self.dat = np.random.rand(10,1000) self.aw = ArrayWrapper(self.dat,200) self.eoffsets = [80,140,270]
class test_Events(TestCase): def setUp(self): self.dat = np.random.rand(10,1000) self.aw = ArrayWrapper(self.dat,200) self.eoffsets = [80,140,270] def test_new(self): tst = Setup() test = tst.test1xyz.view(Events) test = tst.test1xy.view(Events) test = tst.test1xz.view(Events) test = tst.test1yz.view(Events) test = tst.test1x.view(Events) test = tst.test1y.view(Events) test = tst.test1z.view(Events) test = tst.test2sox.view(Events) test = tst.test2so.view(Events) test = tst.test2sx.view(Events) test = tst.test2sox1.view(Events) test = tst.test2sox2.view(Events) test = tst.test2sox3.view(Events) test = tst.test2soxy.view(Events) test = tst.test2soxyz.view(Events) test = tst.test2soxz.view(Events) test = tst.test2soyz.view(Events) test = tst.test2soy.view(Events) test = tst.test2soz.view(Events) def test_remove_fields(self): tst = Setup() test_a = tst.test1xyz.view(Events).remove_fields('z') test_b = tst.test1xy.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('y') test_b = tst.test1xz.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('x') test_b = tst.test1yz.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields( 'y').remove_fields('z') test_b = tst.test1x.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('y','z') test_b = tst.test1x.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('z','y') test_b = tst.test1x.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields( 'z').remove_fields('y') test_b = tst.test1x.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields( 'y').remove_fields('x') test_b = tst.test1z.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('y','x') test_b = tst.test1z.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('x','y') test_b = tst.test1z.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields( 'x').remove_fields('y') test_b = tst.test1z.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields( 'x').remove_fields('z') test_b = tst.test1y.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('x','z') test_b = tst.test1y.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields('z','x') test_b = tst.test1y.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events).remove_fields( 'z').remove_fields('x') test_b = tst.test1y.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xy.view(Events).remove_fields('y') test_b = tst.test1x.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xy.view(Events).remove_fields('x') test_b = tst.test1y.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xz.view(Events).remove_fields('z') test_b = tst.test1x.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1xz.view(Events).remove_fields('x') test_b = tst.test1z.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1yz.view(Events).remove_fields('z') test_b = tst.test1y.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test1yz.view(Events).remove_fields('y') test_b = tst.test1z.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z') test_b = tst.test2soxy.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y') test_b = tst.test2soxz.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x') test_b = tst.test2soyz.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y','z') test_b = tst.test2sox.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z','y') test_b = tst.test2sox.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'z').remove_fields('y') test_b = tst.test2sox.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'y').remove_fields('z') test_b = tst.test2sox.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x','y','z') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x','z','y') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y','x','z') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y','z','x') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z','y','x') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z','x','y') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'x').remove_fields('y').remove_fields('z') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'x').remove_fields('z').remove_fields('y') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'y').remove_fields('x').remove_fields('z') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'y').remove_fields('z').remove_fields('x') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'z').remove_fields('x').remove_fields('y') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events).remove_fields( 'z').remove_fields('y').remove_fields('x') test_b = tst.test2so.view(Events) assert_array_equal(test_a,test_b) def test_add_fields(self): tst = Setup() x = np.array([1.0,3.0]) y = np.array([2,4]) z = np.array(['bla1','bla2']) test_a = tst.test1xyz.view(Events) self.assertRaises(ValueError,tst.test1xyz.view(Events).add_fields,x=x) self.assertRaises(ValueError,tst.test1xyz.view(Events).add_fields,y=int) test_b = tst.test1xy.view(Events).add_fields(z=z) assert_array_equal(test_a,test_b) test_a = test_a.add_fields(a=int) test_b = test_b.add_fields(a=int) self.assertTrue(test_a.shape==test_b.shape) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f,v in test_a.dtype.fields.iteritems(): if f!='a': assert_array_equal(test_a[f],test_b[f]) self.assertTrue(test_a.dtype[f]==test_b.dtype[f]) test_a = tst.test1xyz.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y).add_fields(z=z) assert_array_equal(test_a,test_b) test_a = tst.test1xyz.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y,z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f,v in test_a.dtype.fields.iteritems(): assert_array_equal(test_a[f],test_b[f]) self.assertTrue(test_a.dtype[f]==test_b.dtype[f]) for field in test_a.dtype.names: assert_array_equal(test_a[field],test_b[field]) test_a = tst.test1xy.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y) assert_array_equal(test_a,test_b) test_a = tst.test1xz.view(Events) test_b = tst.test1x.view(Events).add_fields(z=z) assert_array_equal(test_a,test_b) test_a = tst.test1yz.view(Events) test_b = tst.test1y.view(Events).add_fields(z=z) assert_array_equal(test_a,test_b) x = np.array([[42.,33.],[22.,11.]]) y = np.array([[1,2],[3,4]]) z = np.array([['z1','z2'],['z3','z4']]) test_a = tst.test2soxyz.view(Events) test_b = tst.test2soxy.view(Events).add_fields(z=z) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2sox.view(Events).add_fields(y=y,z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f,v in test_a.dtype.fields.iteritems(): assert_array_equal(test_a[f],test_b[f]) self.assertTrue(test_a.dtype[f]==test_b.dtype[f]) for field in test_a.dtype.names: assert_array_equal(test_a[field],test_b[field]) test_a = tst.test2soxyz.view(Events) test_b = tst.test2sox.view(Events).add_fields(y=y).add_fields(z=z) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2so.view(Events).add_fields(x=x).add_fields( y=y).add_fields(z=z) assert_array_equal(test_a,test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2so.view(Events).add_fields(x=x,y=y,z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f,v in test_a.dtype.fields.iteritems(): assert_array_equal(test_a[f],test_b[f]) self.assertTrue(test_a.dtype[f]==test_b.dtype[f]) def test_get_data(self): # get data directly from the wrapper # ed = self.aw.get_event_data(3,self.eoffsets,.5,-.1,.25) # ed = self.aw.get_event_data(3,self.eoffsets,.15,.375,.25) ed = self.aw.get_event_data(3,self.eoffsets,1.25,1.75,.25) # create same array by hand: # ed2 = np.array([[self.dat[3,60:161],self.dat[3,120:221], # self.dat[3,250:351]]]) ed2 = np.array([[self.dat[3,330:431],self.dat[3,390:491], self.dat[3,520:621]]]) assert_array_equal(ed,ed2) # get data from a events # make some events events = np.rec.fromarrays(([self.aw]*len(self.eoffsets),self.eoffsets), names='esrc,eoffset').view(Events) # ed3 = events.get_data(3,.5,-.1,.25) ed3 = events.get_data(3,1.25,1.75,.25) # assert_array_almost_equal(ed[:],ed3[:],decimal=6) assert_array_equal(ed,ed3) # get data directly from the wrapper # ed = self.aw.get_event_data(3,self.eoffsets,.5,.1,.25) ed = self.aw.get_event_data(3,self.eoffsets,1.25,1.75,.25) # create same array by hand: # ed2 = np.array([self.dat[3,100:201],self.dat[3,160:261], # self.dat[3,290:391]]) assert_array_equal(ed,ed2) # get data from a events # make some events events = np.rec.fromarrays(([self.aw]*len(self.eoffsets),self.eoffsets), names='esrc,eoffset').view(Events) # ed3 = events.get_data(3,.5,.1,.25) ed3 = events.get_data(3,1.25,1.75,.25) # assert_array_almost_equal(ed[:],ed3[:],decimal=6) assert_array_equal(ed,ed3)
class test_Events(TestCase): def setUp(self): self.dat = np.random.rand(10, 1000) self.aw = ArrayWrapper(self.dat, 200) self.eoffsets = [80, 140, 270] def test_new(self): tst = Setup() test = tst.test1xyz.view(Events) test = tst.test1xy.view(Events) test = tst.test1xz.view(Events) test = tst.test1yz.view(Events) test = tst.test1x.view(Events) test = tst.test1y.view(Events) test = tst.test1z.view(Events) test = tst.test2sox.view(Events) test = tst.test2so.view(Events) test = tst.test2sx.view(Events) test = tst.test2sox1.view(Events) test = tst.test2sox2.view(Events) test = tst.test2sox3.view(Events) test = tst.test2soxy.view(Events) test = tst.test2soxyz.view(Events) test = tst.test2soxz.view(Events) test = tst.test2soyz.view(Events) test = tst.test2soy.view(Events) test = tst.test2soz.view(Events) def test_remove_fields(self): tst = Setup() test_a = tst.test1xyz.view(Events).remove_fields("z") test_b = tst.test1xy.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("y") test_b = tst.test1xz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("x") test_b = tst.test1yz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("y").remove_fields("z") test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("y", "z") test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("z", "y") test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("z").remove_fields("y") test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("y").remove_fields("x") test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("y", "x") test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("x", "y") test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("x").remove_fields("y") test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("x").remove_fields("z") test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("x", "z") test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("z", "x") test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields("z").remove_fields("x") test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xy.view(Events).remove_fields("y") test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xy.view(Events).remove_fields("x") test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xz.view(Events).remove_fields("z") test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xz.view(Events).remove_fields("x") test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1yz.view(Events).remove_fields("z") test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1yz.view(Events).remove_fields("y") test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("z") test_b = tst.test2soxy.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("y") test_b = tst.test2soxz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("x") test_b = tst.test2soyz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("y", "z") test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("z", "y") test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("z").remove_fields("y") test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("y").remove_fields("z") test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("x", "y", "z") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("x", "z", "y") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("y", "x", "z") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("y", "z", "x") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("z", "y", "x") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("z", "x", "y") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("x").remove_fields("y").remove_fields("z") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("x").remove_fields("z").remove_fields("y") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("y").remove_fields("x").remove_fields("z") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("y").remove_fields("z").remove_fields("x") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("z").remove_fields("x").remove_fields("y") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields("z").remove_fields("y").remove_fields("x") test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) def test_add_fields(self): tst = Setup() x = np.array([1.0, 3.0]) y = np.array([2, 4]) z = np.array(["bla1", "bla2"]) test_a = tst.test1xyz.view(Events) self.assertRaises(ValueError, tst.test1xyz.view(Events).add_fields, x=x) self.assertRaises(ValueError, tst.test1xyz.view(Events).add_fields, y=int) test_b = tst.test1xy.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = test_a.add_fields(a=int) test_b = test_b.add_fields(a=int) self.assertTrue(test_a.shape == test_b.shape) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.iteritems(): if f != "a": assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) test_a = tst.test1xyz.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y, z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.iteritems(): assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) for field in test_a.dtype.names: assert_array_equal(test_a[field], test_b[field]) test_a = tst.test1xy.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y) assert_array_equal(test_a, test_b) test_a = tst.test1xz.view(Events) test_b = tst.test1x.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test1yz.view(Events) test_b = tst.test1y.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) x = np.array([[42.0, 33.0], [22.0, 11.0]]) y = np.array([[1, 2], [3, 4]]) z = np.array([["z1", "z2"], ["z3", "z4"]]) test_a = tst.test2soxyz.view(Events) test_b = tst.test2soxy.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2sox.view(Events).add_fields(y=y, z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.iteritems(): assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) for field in test_a.dtype.names: assert_array_equal(test_a[field], test_b[field]) test_a = tst.test2soxyz.view(Events) test_b = tst.test2sox.view(Events).add_fields(y=y).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2so.view(Events).add_fields(x=x).add_fields(y=y).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2so.view(Events).add_fields(x=x, y=y, z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.iteritems(): assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) def test_get_data(self): # get data directly from the wrapper ed = self.aw.get_event_data(3, self.eoffsets, 0.5, -0.1, 0.25) # create same array by hand: ed2 = np.array([self.dat[3, 60:161], self.dat[3, 120:221], self.dat[3, 250:351]]) assert_array_equal(ed, ed2) # get data from a events # make some events events = np.rec.fromarrays(([self.aw] * len(self.eoffsets), self.eoffsets), names="esrc,eoffset").view(Events) ed3 = events.get_data(3, 0.5, -0.1, 0.25) assert_array_almost_equal(ed[:], ed3[:], decimal=6) # get data directly from the wrapper ed = self.aw.get_event_data(3, self.eoffsets, 0.5, 0.1, 0.25) # create same array by hand: ed2 = np.array([self.dat[3, 100:201], self.dat[3, 160:261], self.dat[3, 290:391]]) assert_array_equal(ed, ed2) # get data from a events # make some events events = np.rec.fromarrays(([self.aw] * len(self.eoffsets), self.eoffsets), names="esrc,eoffset").view(Events) ed3 = events.get_data(3, 0.5, 0.1, 0.25) assert_array_almost_equal(ed[:], ed3[:], decimal=6)
def setUp(self): self.dat = np.random.rand(10, 1000) self.aw = ArrayWrapper(self.dat, 200) self.eoffsets = [80, 140, 270]
class test_Events(TestCase): def setUp(self): self.dat = np.random.rand(10, 1000) self.aw = ArrayWrapper(self.dat, 200) self.eoffsets = [80, 140, 270] def test_new(self): tst = Setup() test = tst.test1xyz.view(Events) test = tst.test1xy.view(Events) test = tst.test1xz.view(Events) test = tst.test1yz.view(Events) test = tst.test1x.view(Events) test = tst.test1y.view(Events) test = tst.test1z.view(Events) test = tst.test2sox.view(Events) test = tst.test2so.view(Events) test = tst.test2sx.view(Events) test = tst.test2sox1.view(Events) test = tst.test2sox2.view(Events) test = tst.test2sox3.view(Events) test = tst.test2soxy.view(Events) test = tst.test2soxyz.view(Events) test = tst.test2soxz.view(Events) test = tst.test2soyz.view(Events) test = tst.test2soy.view(Events) test = tst.test2soz.view(Events) def test_remove_fields(self): tst = Setup() test_a = tst.test1xyz.view(Events).remove_fields('z') test_b = tst.test1xy.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('y') test_b = tst.test1xz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('x') test_b = tst.test1yz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('y').remove_fields( 'z') test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('y', 'z') test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('z', 'y') test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('z').remove_fields( 'y') test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('y').remove_fields( 'x') test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('y', 'x') test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('x', 'y') test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('x').remove_fields( 'y') test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('x').remove_fields( 'z') test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('x', 'z') test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('z', 'x') test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events).remove_fields('z').remove_fields( 'x') test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xy.view(Events).remove_fields('y') test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xy.view(Events).remove_fields('x') test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xz.view(Events).remove_fields('z') test_b = tst.test1x.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1xz.view(Events).remove_fields('x') test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1yz.view(Events).remove_fields('z') test_b = tst.test1y.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test1yz.view(Events).remove_fields('y') test_b = tst.test1z.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z') test_b = tst.test2soxy.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y') test_b = tst.test2soxz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x') test_b = tst.test2soyz.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y', 'z') test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z', 'y') test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z').remove_fields( 'y') test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y').remove_fields( 'z') test_b = tst.test2sox.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x', 'y', 'z') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x', 'z', 'y') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y', 'x', 'z') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y', 'z', 'x') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z', 'y', 'x') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z', 'x', 'y') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x').remove_fields( 'y').remove_fields('z') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('x').remove_fields( 'z').remove_fields('y') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y').remove_fields( 'x').remove_fields('z') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('y').remove_fields( 'z').remove_fields('x') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z').remove_fields( 'x').remove_fields('y') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events).remove_fields('z').remove_fields( 'y').remove_fields('x') test_b = tst.test2so.view(Events) assert_array_equal(test_a, test_b) def test_add_fields(self): tst = Setup() x = np.array([1.0, 3.0]) y = np.array([2, 4]) z = np.array(['bla1', 'bla2']) test_a = tst.test1xyz.view(Events) self.assertRaises(ValueError, tst.test1xyz.view(Events).add_fields, x=x) self.assertRaises(ValueError, tst.test1xyz.view(Events).add_fields, y=int) test_b = tst.test1xy.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = test_a.add_fields(a=int) test_b = test_b.add_fields(a=int) self.assertTrue(test_a.shape == test_b.shape) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.items(): if f != 'a': assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) test_a = tst.test1xyz.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test1xyz.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y, z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.items(): assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) for field in test_a.dtype.names: assert_array_equal(test_a[field], test_b[field]) test_a = tst.test1xy.view(Events) test_b = tst.test1x.view(Events).add_fields(y=y) assert_array_equal(test_a, test_b) test_a = tst.test1xz.view(Events) test_b = tst.test1x.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test1yz.view(Events) test_b = tst.test1y.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) x = np.array([[42., 33.], [22., 11.]]) y = np.array([[1, 2], [3, 4]]) z = np.array([['z1', 'z2'], ['z3', 'z4']]) test_a = tst.test2soxyz.view(Events) test_b = tst.test2soxy.view(Events).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2sox.view(Events).add_fields(y=y, z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.items(): assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) for field in test_a.dtype.names: assert_array_equal(test_a[field], test_b[field]) test_a = tst.test2soxyz.view(Events) test_b = tst.test2sox.view(Events).add_fields(y=y).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2so.view(Events).add_fields(x=x).add_fields( y=y).add_fields(z=z) assert_array_equal(test_a, test_b) test_a = tst.test2soxyz.view(Events) test_b = tst.test2so.view(Events).add_fields(x=x, y=y, z=z) assert_array_equal(np.sort(test_a.dtype.names), np.sort(test_b.dtype.names)) for f, v in test_a.dtype.fields.items(): assert_array_equal(test_a[f], test_b[f]) self.assertTrue(test_a.dtype[f] == test_b.dtype[f]) def test_get_data(self): # get data directly from the wrapper ed = self.aw.get_event_data(3, self.eoffsets, .5, -.1, .25) # create same array by hand: ed2 = np.array( [self.dat[3, 60:161], self.dat[3, 120:221], self.dat[3, 250:351]]) assert_array_equal(ed, ed2) # get data from a events # make some events events = np.rec.fromarrays( ([self.aw] * len(self.eoffsets), self.eoffsets), names='esrc,eoffset').view(Events) ed3 = events.get_data(3, .5, -.1, .25) assert_array_almost_equal(ed[:], ed3[:], decimal=6) # get data directly from the wrapper ed = self.aw.get_event_data(3, self.eoffsets, .5, .1, .25) # create same array by hand: ed2 = np.array( [self.dat[3, 100:201], self.dat[3, 160:261], self.dat[3, 290:391]]) assert_array_equal(ed, ed2) # get data from a events # make some events events = np.rec.fromarrays( ([self.aw] * len(self.eoffsets), self.eoffsets), names='esrc,eoffset').view(Events) ed3 = events.get_data(3, .5, .1, .25) assert_array_almost_equal(ed[:], ed3[:], decimal=6)