code: def test_convexhull(self):
      rect = [(0, 0), (1, 0), (0.5, 0.5), (1, 1), (0, 1)]
      self.assertEqual(
          convex_hull_graham(rect), [(0, 0), (1, 0), (1, 1), (0, 1)]
      )
  
imports: import os
  import sys
  import unittest
  import torch
  import numpy
  from torch_points3d.utils.box_utils import box_corners_from_param, box3d_vol, intersection_area, convex_hull_graham, nms_samecls, box3d_iou
  from torch_points3d.modules.VoteNet.votenet_results import VoteNetResults
  from torch_points3d.metrics.box_detection.ap import eval_detection
  from torch_points3d.datasets.object_detection.box_data import BoxData
label_desc: Use image node_id 4 for calling the TestUtils obj's underlying member method code with example usage: obj.test_convexhull() without return types