docstr: Test loading a pointcloud styled like some cloudcompare output.
  cloudcompare is an open source 3D point cloud processing software.
docstr_tok: ["Test","loading","a","pointcloud","styled","like","some","cloudcompare","output",".","cloudcompare","is","an","open","source","3D","point","cloud","processing","software","."]
code: def test_load_cloudcompare_pointcloud(self):
      """
      Test loading a pointcloud styled like some cloudcompare output.
      cloudcompare is an open source 3D point cloud processing software.
      """
      header = "\n".join(
          [
              "ply",
              "format binary_little_endian 1.0",
              "obj_info Not a key-value pair!",
              "element vertex 8",
              "property double x",
              "property double y",
              "property double z",
              "property uchar red",
              "property uchar green",
              "property uchar blue",
              "property float my_Favorite",
              "end_header",
              "",
          ]
      ).encode("ascii")
      data = struct.pack("<" + "dddBBBf" * 8, *range(56))
      io = IO()
      with NamedTemporaryFile(mode="wb", suffix=".ply") as f:
          f.write(header)
          f.write(data)
          f.flush()
          pointcloud = io.load_pointcloud(f.name)
  
      self.assertClose(
          pointcloud.points_padded()[0],
          torch.FloatTensor([0, 1, 2]) + 7 * torch.arange(8)[:, None],
      )
      self.assertClose(
          pointcloud.features_padded()[0] * 255,
          torch.FloatTensor([3, 4, 5]) + 7 * torch.arange(8)[:, None],
      )
  
imports: import itertools
  import struct
  import unittest
  from io import BytesIO, StringIO
  from tempfile import NamedTemporaryFile, TemporaryFile
  import numpy
  import pytorch3d.io.ply_io
  import torch
  from iopath.common.file_io import PathManager
  from pytorch3d.io import IO
  from pytorch3d.io.ply_io import load_ply, save_ply
  from pytorch3d.renderer.mesh import TexturesVertex
  from pytorch3d.structures import Meshes, Pointclouds
  from pytorch3d.utils import torus
  from .common_testing import get_tests_dir, TestCaseMixin
label_desc: Use image node_id 16 for calling the TestMeshPlyIO obj's underlying member method code with example usage: obj.test_load_cloudcompare_pointcloud() without return types