docs: def check_model(self):
          """
          Check the model for various errors. This method checks for the following
          errors. In the same time also updates the cardinalities of all the random
          variables.
  
          * Checks if clique potentials are defined for all the cliques or not.
          * Check for running intersection property is not done explicitly over
            here as it done in the add_edges method.
  
          Returns
          -------
          check: boolean
              True if all the checks are passed
          """
          if not nx.is_connected(self):
              raise ValueError('The Junction Tree defined is not fully connected.')
  
          return super(JunctionTree, self).check_model()