code: def test_transform_multiple_boxes(self, device, dtype):
      boxes = torch.tensor(
          [
              [139.2640, 103.0150, 397.3120, 410.5225],
              [1.0240, 80.5547, 512.0000, 512.0000],
              [165.2053, 262.1440, 510.6347, 508.9280],
              [119.8080, 144.2067, 257.0240, 410.1292],
          ],
          device=device,
          dtype=dtype,
      )
  
      boxes = boxes.repeat(2, 1, 1)  # 2 x 4 x 4 two images 4 boxes each
  
      expected = torch.tensor(
          [
              [
                  [114.6880, 103.0150, 372.7360, 410.5225],
                  [0.0000, 80.5547, 510.9760, 512.0000],
                  [1.3652, 262.1440, 346.7947, 508.9280],
                  [254.9760, 144.2067, 392.1920, 410.1292],
              ],
              [
                  [139.2640, 103.0150, 397.3120, 410.5225],
                  [1.0240, 80.5547, 512.0000, 512.0000],
                  [165.2053, 262.1440, 510.6347, 508.9280],
                  [119.8080, 144.2067, 257.0240, 410.1292],
              ],
          ],
          device=device,
          dtype=dtype,
      )
  
      trans_mat = torch.tensor(
          [
              [[-1.0, 0.0, 512.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]],
              [[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]],
          ],
          device=device,
          dtype=dtype,
      )
  
      out = transform_bbox(trans_mat, boxes, restore_coordinates=True)
      assert_close(out, expected, atol=1e-4, rtol=1e-4)
  
imports: import torch
  import kornia
  from kornia.geometry.bbox import infer_bbox_shape, infer_bbox_shape3d, nms, transform_bbox, validate_bbox, validate_bbox3d
  from kornia.testing import assert_close, gradcheck, tensor_to_gradcheck_var
label_desc: Use image node_id 2 for calling the TestTransformBoxes2D obj's underlying member method code with example usage: obj.test_transform_multiple_boxes(device, dtype) without return types