def test_collating(self):
     xengs = [sim.XEngine(nant=NANT,npol=1,nchan=2048,engine_id=x) \
         for x in range(NANT)]
     xstreams = [x.get_pkt_stream() for x in xengs]
     timestamp = None
     while True:
         for x in xstreams:
             pkt = x.next()
             if timestamp is None: timestamp = pkt.timestamp
             if pkt.timestamp != timestamp: break
             self.cb.collate_packet(pkt)
         if pkt.timestamp != timestamp: break
     dbuf,fbuf = self.cb.get_buffer()
     self.assertEqual(len(n.where(dbuf == 0)), 1)
     dbuf = n.array([sim.decode_32bit(d) for d in dbuf])
     # nwin, nchan, npol, bls, r/i, fields
     dbuf.shape = (1, 2048, 1, len(self.cb.xeng_bl_order()), 2, 5)
     # Check real/imag
     self.assertTrue(n.all(dbuf[...,0,3] == 0))
     self.assertTrue(n.all(dbuf[...,1,3] == 1))
     # Check pol
     self.assertTrue(n.all(dbuf[...,0,:,2] == 0))
     # Check chan
     chans = n.arange(2048) ; chans.shape = (1,2048,1,1,1)
     self.assertTrue(n.all(dbuf[...,4] == chans))
     # Check bl
     blorder = n.array([(i,j) for j in range(NANT) for i in range(j+1)])
     iorder = blorder[:,0]; iorder.shape = (1,1,1,iorder.size,1)
     jorder = blorder[:,1]; jorder.shape = (1,1,1,jorder.size,1)
     self.assertTrue(n.all(dbuf[...,0] == iorder))
     self.assertTrue(n.all(dbuf[...,1] == jorder))
Example #2
0
 def test_collating(self):
     xengs = [sim.XEngine(nant=NANT,npol=1,nchan=2048,engine_id=x) \
         for x in range(NANT)]
     xstreams = [x.get_pkt_stream() for x in xengs]
     timestamp = None
     while True:
         for x in xstreams:
             pkt = x.next()
             if timestamp is None: timestamp = pkt.timestamp
             if pkt.timestamp != timestamp: break
             self.cb.collate_packet(pkt)
         if pkt.timestamp != timestamp: break
     dbuf, fbuf = self.cb.get_buffer()
     self.assertEqual(len(n.where(dbuf == 0)), 1)
     dbuf = n.array([sim.decode_32bit(d) for d in dbuf])
     # nwin, nchan, npol, bls, r/i, fields
     dbuf.shape = (1, 2048, 1, len(self.cb.xeng_bl_order()), 2, 5)
     # Check real/imag
     self.assertTrue(n.all(dbuf[..., 0, 3] == 0))
     self.assertTrue(n.all(dbuf[..., 1, 3] == 1))
     # Check pol
     self.assertTrue(n.all(dbuf[..., 0, :, 2] == 0))
     # Check chan
     chans = n.arange(2048)
     chans.shape = (1, 2048, 1, 1, 1)
     self.assertTrue(n.all(dbuf[..., 4] == chans))
     # Check bl
     blorder = n.array([(i, j) for j in range(NANT) for i in range(j + 1)])
     iorder = blorder[:, 0]
     iorder.shape = (1, 1, 1, iorder.size, 1)
     jorder = blorder[:, 1]
     jorder.shape = (1, 1, 1, jorder.size, 1)
     self.assertTrue(n.all(dbuf[..., 0] == iorder))
     self.assertTrue(n.all(dbuf[..., 1] == jorder))
 def callback(i,j,pol,t,data,flags):
     self.assertEqual(data.shape, (2048,))
     self.assertEqual(flags.shape, (2048,))
     self.assertTrue(data.flags.owndata)
     self.assertTrue(flags.flags.owndata)
     data_r = n.array([sim.decode_32bit(d) \
         for d in data.real.astype(n.int32)])
     data_i = n.array([sim.decode_32bit(d) \
         for d in data.imag.astype(n.int32)])
     #print i,j,pol,t,flags.sum(),
     #print data_r[0,:], data_i[0,:]
     self.assertTrue(n.all(data_r[:,0] == i))
     # not enough dynamic range in float to resolve j
     #self.assertTrue(n.all(data_r[:,1] == j))
     self.assertTrue(n.all(data_r[:,2] == pol))
     self.assertTrue(n.all(data_r[:,3] == 0))
     self.assertTrue(n.all(data_r[:,4] == n.arange(2048)))
     self.assertTrue(n.all(data_i[:,0] == i))
     # not enough dynamic range in float to resolve j
     #self.assertTrue(n.all(data_i[:,1] == j))
     self.assertTrue(n.all(data_i[:,2] == pol))
     self.assertTrue(n.all(data_i[:,3] == 1))
     self.assertTrue(n.all(data_i[:,4] == n.arange(2048)))
Example #4
0
 def callback(i, j, pol, t, data, flags):
     self.assertEqual(data.shape, (2048, ))
     self.assertEqual(flags.shape, (2048, ))
     self.assertTrue(data.flags.owndata)
     self.assertTrue(flags.flags.owndata)
     data_r = n.array([sim.decode_32bit(d) \
         for d in data.real.astype(n.int32)])
     data_i = n.array([sim.decode_32bit(d) \
         for d in data.imag.astype(n.int32)])
     #print i,j,pol,t,flags.sum(),
     #print data_r[0,:], data_i[0,:]
     self.assertTrue(n.all(data_r[:, 0] == i))
     # not enough dynamic range in float to resolve j
     #self.assertTrue(n.all(data_r[:,1] == j))
     self.assertTrue(n.all(data_r[:, 2] == pol))
     self.assertTrue(n.all(data_r[:, 3] == 0))
     self.assertTrue(n.all(data_r[:, 4] == n.arange(2048)))
     self.assertTrue(n.all(data_i[:, 0] == i))
     # not enough dynamic range in float to resolve j
     #self.assertTrue(n.all(data_i[:,1] == j))
     self.assertTrue(n.all(data_i[:, 2] == pol))
     self.assertTrue(n.all(data_i[:, 3] == 1))
     self.assertTrue(n.all(data_i[:, 4] == n.arange(2048)))