code: def setUp(self):
      self.phi1 = CanonicalDistribution(
          ["x1", "x2", "x3"],
          np.array([[1.1, -1, 0], [-1, 4, -2], [0, -2, 4]]),
          np.array([[1], [4.7], [-1]]),
          -2,
      )
      self.phi2 = CanonicalDistribution(["x"], [[1]], [0], 1)
      self.phi3 = self.phi1.copy()
  
      self.gauss_phi1 = JGD(
          ["x1", "x2", "x3"],
          np.array([[3.13043478], [2.44347826], [0.97173913]]),
          np.array(
              [
                  [1.30434783, 0.43478261, 0.2173913],
                  [0.43478261, 0.47826087, 0.23913043],
                  [0.2173913, 0.23913043, 0.36956522],
              ],
              dtype=float,
          ),
      )
      self.gauss_phi2 = JGD(["x"], np.array([0]), np.array([[1]]))
  
file_path: pgmpy/pgmpy/tests/test_factors/test_continuous/test_Canonical_Factor.py
imports: import unittest
  import numpy
  import numpy.testing
  from pgmpy.factors.distributions import GaussianDistribution
  from pgmpy.factors.continuous import CanonicalDistribution
label_desc: Use image node_id 1 for calling the TestJGDMethods obj's underlying member method code with example usage: obj.setUp() without return types