code: def testCohesiveBlocks2(self):
      # Taken from the Moody-White paper
      g = Graph.Formula(
          "1-2:3:4:5:6, 2-3:4:5:7, 3-4:6:7, 4-5:6:7, "
          "5-6:7:21, 6-7, 7-8:11:14:19, 8-9:11:14, 9-10, "
          "10-12:13, 11-12:14, 12-16, 13-16, 14-15, 15-16, "
          "17-18:19:20, 18-20:21, 19-20:22:23, 20-21, "
          "21-22:23, 22-23"
      )
  
      cbs = g.cohesive_blocks()
      self.genericTests(cbs)
  
      expected_blocks = [
          list(range(7)),
          list(range(23)),
          list(range(7)) + list(range(16, 23)),
          list(range(6, 16)),
          [6, 7, 10, 13],
      ]
      observed_blocks = sorted(
          sorted(int(x) - 1 for x in g.vs[bl]["name"]) for bl in cbs
      )
      self.assertEqual(expected_blocks, observed_blocks)
      self.assertTrue(cbs.cohesions() == [1, 2, 2, 5, 3])
      self.assertTrue(cbs.parents() == [None, 0, 0, 1, 2])
      self.assertTrue(
          sorted(cbs.hierarchy().get_edgelist())
          == [(0, 1), (0, 2), (1, 3), (2, 4)]
      )
  
imports: import math
  import random
  import unittest
  from igraph import Clustering, CohesiveBlocks, Cover, Graph, Histogram, InternalError, UniqueIdGenerator, VertexClustering, compare_communities, split_join_distance, set_random_number_generator
label_desc: Use image node_id 3 for calling the CohesiveBlocksTests obj's underlying member method code with example usage: obj.testCohesiveBlocks2() without return types