# MagellanMapper unit testing for detector"""Unit testing for the MagellanMapper detector module."""importunittestimportnumpyasnpfrommagmap.cvimportdetector
[docs]defmake_random_blobs(self)->"detector.Blobs":"""Make blobs with random coordinates. Returns: Blobs instance. """# set up basic blobs with random coordinates and radiiblobs=np.random.rand(20).reshape((5,4))blobs[:,:3]=np.multiply(blobs[:,:3],100).astype(int)blobs[:,3]=blobs[:,3]*10# test constructing blobs with default columnsbl=detector.Blobs(blobs)self.assertTrue(bl.cols==[c.valueforcinbl.Cols][:4])self.assertTrue(bl._col_inds[bl.Cols.RADIUS]==3)self.assertTrue(bl._col_inds[bl.Cols.ABS_X]isNone)# test formatting blobs for full set of columnsbl.format_blobs()self.assertTrue(bl.cols==[c.valueforcinbl.Cols])self.assertTrue(bl._col_inds[bl.Cols.RADIUS]==3)self.assertTrue(bl._col_inds[bl.Cols.ABS_X]==9)print(f"Blobs:\n{bl.blobs}")returnbl
[docs]deftest_blob_accessors(self):# set up random blobsbl=self.make_random_blobs()# test blob confirmation flagnp.testing.assert_array_equal(bl.get_blob_confirmed(bl.blobs),bl.blobs[:,4])conf_flag=1bl.set_blob_confirmed(bl.blobs,conf_flag)self.assertTrue(np.all(bl.get_blob_confirmed(bl.blobs)==conf_flag))# test blob truth flagnp.testing.assert_array_equal(bl.get_blob_truth(bl.blobs),bl.blobs[:,5])truth_flag=2bl.set_blob_truth(bl.blobs,truth_flag)self.assertTrue(np.all(bl.get_blob_truth(bl.blobs)==truth_flag))# test blob channelnp.testing.assert_array_equal(bl.get_blobs_channel(bl.blobs),bl.blobs[:,6])channel=3bl.set_blob_channel(bl.blobs,channel)self.assertTrue(np.all(bl.get_blobs_channel(bl.blobs)==channel))# test blob absolute coordinatesnp.testing.assert_array_equal(bl.get_blob_abs_coords(bl.blobs),bl.blobs[:,7:10])abs_coords=(1,2,3)bl.set_blob_abs_coords(bl.blobs,abs_coords)self.assertTrue(all(np.all(bl.get_blob_abs_coords(bl.blobs)==abs_coords,axis=1)))