code: def test_propoerty(self):
      th_boxes = torch.Tensor([10, 10, 20, 20]).reshape(1, 1, 4)
      boxes = HorizontalBoxes(th_boxes)
  
      # Centers
      centers = torch.Tensor([15, 15]).reshape(1, 1, 2)
      assert_allclose(boxes.centers, centers)
      # Areas
      areas = torch.Tensor([100]).reshape(1, 1)
      assert_allclose(boxes.areas, areas)
      # widths
      widths = torch.Tensor([10]).reshape(1, 1)
      assert_allclose(boxes.widths, widths)
      # heights
      heights = torch.Tensor([10]).reshape(1, 1)
      assert_allclose(boxes.heights, heights)
  
imports: import random
  from math import sqrt
  from unittest import TestCase
  import cv2
  import numpy
  import torch
  from mmengine.testing import assert_allclose
  from mmdet.structures.bbox import HorizontalBoxes
  from mmdet.structures.mask import BitmapMasks, PolygonMasks
label_desc: Use image node_id 3 for calling the TestHorizontalBoxes obj's underlying member method code with example usage: obj.test_propoerty() without return types