| 105 | |
| 106 | |
| 107 | def test_tracking_montblanc( |
| 108 | real_assemblies_montblanc, |
| 109 | real_tracklets_montblanc, |
| 110 | ): |
| 111 | tracklets_ref = real_tracklets_montblanc.copy() |
| 112 | _ = tracklets_ref.pop("header", None) |
| 113 | tracklets = dict() |
| 114 | tracklets["single"] = real_assemblies_montblanc[1] |
| 115 | mot_tracker = trackingutils.SORTEllipse(1, 1, 0.6) |
| 116 | for ind, assemblies in real_assemblies_montblanc[0].items(): |
| 117 | animals = np.stack([ass.data for ass in assemblies]) |
| 118 | trackers = mot_tracker.track(animals[..., :2]) |
| 119 | trackingutils.fill_tracklets(tracklets, trackers, animals, ind) |
| 120 | assert len(tracklets) == len(tracklets_ref) |
| 121 | assert [len(tracklet) for tracklet in tracklets.values()] == [len(tracklet) for tracklet in tracklets_ref.values()] |
| 122 | for k, assemblies in tracklets.items(): |
| 123 | ref = tracklets_ref[k] |
| 124 | for ind, data in assemblies.items(): |
| 125 | frame = f"frame{str(ind).zfill(3)}" if k != "single" else ind |
| 126 | np.testing.assert_equal(data, ref[frame]) |
| 127 | |
| 128 | |
| 129 | def test_calc_bboxes_from_keypoints(): |