def test_type_shape(self, input_data, expected_type, expected_count,
                     expected_shape):
     results = []
     for p in TEST_NDARRAYS + (None, ):
         input_data = deepcopy(input_data)
         if p is not None:
             for k in ["fg_indices", "bg_indices"]:
                 input_data[k] = p(input_data[k])
         set_determinism(0)
         result = generate_pos_neg_label_crop_centers(**input_data)
         self.assertIsInstance(result, expected_type)
         self.assertEqual(len(result), expected_count)
         self.assertEqual(len(result[0]), expected_shape)
         # check for consistency between numpy, torch and torch.cuda
         results.append(result)
         if len(results) > 1:
             # compare every crop center
             for x, y in zip(results[0], results[-1]):
                 assert_allclose(x, y, type_test=False)
 def test_type_shape(self, input_data, expected_type, expected_count,
                     expected_shape):
     result = generate_pos_neg_label_crop_centers(**input_data)
     self.assertIsInstance(result, expected_type)
     self.assertEqual(len(result), expected_count)
     self.assertEqual(len(result[0]), expected_shape)