code: def test_apply(self):
      x = torch.tensor([1])
      pos = torch.tensor([1])
      d1 = Data(x=2 * x, pos=2 * pos)
      d2 = Data(x=3 * x, pos=3 * pos)
      data = MultiScaleData(x=x, pos=pos, multiscale=[d1, d2])
      data.apply(lambda x: 2 * x)
      self.assertEqual(data.x[0], 2)
      self.assertEqual(data.pos[0], 2)
      self.assertEqual(data.multiscale[0].pos[0], 4)
      self.assertEqual(data.multiscale[0].x[0], 4)
      self.assertEqual(data.multiscale[1].pos[0], 6)
      self.assertEqual(data.multiscale[1].x[0], 6)
  
file_path: torch-points3d/test/test_msdata.py
imports: import unittest
  import torch
  import torch.testing
  from torch_geometric.data import Data
  from torch_points3d.datasets.multiscale_data import MultiScaleBatch, MultiScaleData
label_desc: Use image node_id 1 for calling the TestMSData obj's underlying member method code with example usage: obj.test_apply() without return types