code: def testClauset(self):
      # Two cliques of size 5 with one connecting edge
      g = Graph.Full(5) + Graph.Full(5)
      g.add_edges([(0, 5)])
      cl = g.community_fastgreedy().as_clustering()
      self.assertMembershipsEqual(cl, [0, 0, 0, 0, 0, 1, 1, 1, 1, 1])
      self.assertAlmostEqual(cl.q, 0.4523, places=3)
  
      # Lollipop, weighted
      g = Graph.Full(4) + Graph.Full(2)
      g.add_edges([(3, 4)])
      weights = [1, 1, 1, 1, 1, 1, 10, 10]
      cl = g.community_fastgreedy(weights).as_clustering()
      self.assertMembershipsEqual(cl, [0, 0, 0, 1, 1, 1])
      self.assertAlmostEqual(cl.q, 0.1708, places=3)
  
      # Same graph, different weights
      g.es["weight"] = [3] * g.ecount()
      cl = g.community_fastgreedy("weight").as_clustering()
      self.assertMembershipsEqual(cl, [0, 0, 0, 0, 1, 1])
      self.assertAlmostEqual(cl.q, 0.1796, places=3)
  
      # Disconnected graph
      g = Graph.Full(4) + Graph.Full(4) + Graph.Full(3) + Graph.Full(2)
      cl = g.community_fastgreedy().as_clustering()
      self.assertMembershipsEqual(
          cl, [0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 3, 3]
      )
  
      # Empty graph
      g = Graph(20)
      cl = g.community_fastgreedy().as_clustering()
      self.assertMembershipsEqual(cl, list(range(g.vcount())))
  
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 CommunityTests obj's underlying member method code with example usage: obj.testClauset() without return types