code: def test_summarize_weighted(model, X, w):
      model.summarize(X, sample_weight=w)
      assert_array_almost_equal(
          model.distributions[0]._xw_sum, [[9.0, 4.0, 2.0]]
      )
      assert_array_almost_equal(
          model.distributions[1]._xw_sum[0],
          [[2.0, 5.0, 2.0], [1.0, 2.0, 1.0], [0.0, 2.0, 0.0]],
      )
      assert_array_almost_equal(
          model.distributions[2]._xw_sum[0],
          [
              [[0.0, 2.0, 0.0], [5.0, 2.0, 0.0], [0.0, 3.0, 0.0]],
              [[6.0, 3.0, 1.0], [2.0, 0.0, 0.0], [1.0, 0.0, 0.0]],
              [[1.0, 0.0, 0.0], [4.0, 0.0, 0.0], [0.0, 0.0, 0.0]],
          ],
      )
  
      model = MarkovChain(k=2)
      model.summarize(X, sample_weight=w)
      assert_array_almost_equal(
          model.distributions[0]._xw_sum, [[9.0, 4.0, 2.0]]
      )
      assert_array_almost_equal(
          model.distributions[1]._xw_sum[0],
          [[2.0, 5.0, 2.0], [1.0, 2.0, 1.0], [0.0, 2.0, 0.0]],
      )
      assert_array_almost_equal(
          model.distributions[2]._xw_sum[0],
          [
              [[0.0, 2.0, 0.0], [5.0, 2.0, 0.0], [0.0, 3.0, 0.0]],
              [[6.0, 3.0, 1.0], [2.0, 0.0, 0.0], [1.0, 0.0, 0.0]],
              [[1.0, 0.0, 0.0], [4.0, 0.0, 0.0], [0.0, 0.0, 0.0]],
          ],
      )
  
imports: import numpy
  import torch
  import pytest
  from pomegranate.markov_chain import MarkovChain
  from pomegranate.distributions import Categorical
  from pomegranate.distributions import ConditionalCategorical
  from .distributions._utils import _test_initialization_raises_one_parameter
  from .distributions._utils import _test_initialization
  from .distributions._utils import _test_predictions
  from .distributions._utils import _test_efd_from_summaries
  from .distributions._utils import _test_raises
  from nose.tools import assert_raises
  from numpy.testing import assert_array_almost_equal
label_desc: Use image node_id 13 for calling a global function with example usage: test_summarize_weighted(model, X, w) without return types