code: def test_copy(self):
      dataset = fo.Dataset()
  
      dataset.add_sample(
          fo.Sample(
              filepath="filepath1.jpg",
              test_dets=fo.Detections(
                  detections=[
                      fo.Detection(
                          label="friend",
                          confidence=0.9,
                          bounding_box=[0, 0, 0.5, 0.5],
                      )
                  ]
              ),
          )
      )
  
      sample = dataset.first()
      sample2 = sample.copy()
  
      self.assertIsNot(sample2, sample)
      self.assertNotEqual(sample2.id, sample.id)
      self.assertIsNot(sample2.test_dets, sample.test_dets)
      det = sample.test_dets.detections[0]
      det2 = sample2.test_dets.detections[0]
      self.assertIsNot(det2, det)
      self.assertNotEqual(det2.id, det.id)
  
imports: import time
  import unittest
  from unittest.mock import MagicMock, patch
  import numpy
  import fiftyone
  import fiftyone.constants
  import fiftyone.core.media
  import fiftyone.core.odm
  import fiftyone.core.utils
  from fiftyone.migrations.runner import MigrationRunner
  from decorators import drop_datasets
  from bson import ObjectId
  from fiftyone.core.odm.utils import load_dataset
label_desc: Use image node_id 2 for calling the LabelsTests obj's underlying member method code with example usage: obj.test_copy() without return types