code: def test_rotate(self):
      th_boxes = torch.Tensor([10, 10, 20, 20]).reshape(1, 1, 4)
      center = (15, 15)
      angle = -45
      boxes = HorizontalBoxes(th_boxes)
      boxes.rotate_(center, angle)
      rotated_boxes_th = torch.Tensor(
          [
              15 - 5 * sqrt(2),
              15 - 5 * sqrt(2),
              15 + 5 * sqrt(2),
              15 + 5 * sqrt(2),
          ]
      ).reshape(1, 1, 4)
      assert_allclose(boxes.tensor, rotated_boxes_th)
  
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 7 for calling the TestHorizontalBoxes obj's underlying member method code with example usage: obj.test_rotate() without return types