code: def test_probability(X, means, covs):
      m, c = [1.7], [[1.3]]
      x = [[1.0], [2.0], [4.0], [3.7], [1.9]]
      y = [0.289795, 0.337991, 0.045742, 0.075126, 0.344554]
  
      d1 = Normal(m, c, covariance_type="full")
      d2 = Normal(
          numpy.array(m, dtype=numpy.float64),
          numpy.array(c, dtype=numpy.float64),
          covariance_type="full",
      )
  
      _test_predictions(x, y, d1.probability(x), torch.float32)
      _test_predictions(x, y, d2.probability(x), torch.float64)
  
      x = [[1.0, 2.0, 4.0]]
      y = [0.014501]
  
      d1 = Normal(means, covs, covariance_type="full")
      d2 = Normal(
          numpy.array(means, dtype=numpy.float64),
          numpy.array(covs, dtype=numpy.float64),
          covariance_type="full",
      )
  
      _test_predictions(x, y, d1.probability(x), torch.float32)
      _test_predictions(x, y, d2.probability(x), torch.float64)
  
      y = [
          1.873443e-02,
          2.068522e-02,
          6.141333e-02,
          1.854071e-04,
          5.782201e-06,
          7.198527e-16,
          2.817989e-03,
      ]
  
      d1 = Normal(means, covs, covariance_type="full")
      d2 = Normal(
          numpy.array(means, dtype=numpy.float64),
          numpy.array(covs, dtype=numpy.float64),
          covariance_type="full",
      )
  
      _test_predictions(X, y, d1.probability(X), torch.float32)
      _test_predictions(X, y, d2.probability(X), torch.float64)
  
imports: import os
  import numpy
  import torch
  import pytest
  from pomegranate.distributions import Normal
  from ._utils import _test_initialization_raises_two_parameters
  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 11 for calling a global function with example usage: test_probability(X, means, covs) without return types