code: def test_initialization():
      d1, d2, d3 = Exponential(), Gamma(), Categorical()
      d = IndependentComponents([d1, d2, d3])
  
      d1, d2, d3 = (
          Exponential([1]),
          Gamma([1], [2]),
          Categorical([[0.1, 0.9]]),
      )
      d = IndependentComponents([d1, d2, d3])
  
      d1, d2, d3 = Exponential(), 5, Gamma()
      assert_raises(ValueError, IndependentComponents, [d1, d2, d3])
      assert_raises(ValueError, IndependentComponents, [d1])
      assert_raises(TypeError, IndependentComponents, d1, d2, d3)
  
imports: import os
  import numpy
  import torch
  import pytest
  from pomegranate.distributions import Exponential
  from pomegranate.distributions import Gamma
  from pomegranate.distributions import Categorical
  from pomegranate.distributions import IndependentComponents
  from ._utils import _test_initialization_raises_one_parameter
  from ._utils import _test_initialization
  from ._utils import _test_predictions
  from ._utils import _test_efd_from_summaries
  from ._utils import _test_raises
  from nose.tools import assert_raises
  from numpy.testing import assert_array_almost_equal
label_desc: Use image node_id 7 for calling a global function with example usage: test_initialization() without return types