class_docstr: Tests for timeline
code: def test_timeline_neighbor_allgather(self):
      x = torch.FloatTensor(10, 10).fill_(1).mul_(bf.rank())
      x = bf.neighbor_allgather(x, name="test_neighbor_allgather")
      time.sleep(0.1)
  
      file_name = f"{self.temp_file}{bf.rank()}.json"
      with open(file_name, "r") as tf:
          timeline_text = tf.read()
          assert (
              "MPI_NEIGHBOR_ALLGATHER" in timeline_text
          ), timeline_text
          assert (
              "ENQUEUE_NEIGHBOR_ALLGATHER" in timeline_text
          ), timeline_text
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  import time
  import threading
  import unittest
  import warnings
  import torch
  import bluefog.torch
  from bluefog.common import topology_util
  from bluefog.common.util import env
label_desc: Use image node_id 5 for calling the TimelineTests obj's underlying member method code with example usage: obj.test_timeline_neighbor_allgather() without return types