code: def test_intractable_4():
      factor_i = random_gaussian(OrderedDict(i=Bint[2], x=Real))
      factor_jk = random_gaussian(
          OrderedDict(j=Bint[2], k=Bint[2], y=Real)
      )
      factor_ij = random_gaussian(
          OrderedDict(i=Bint[2], j=Bint[2], x=Real, y=Real)
      )
      actual = sum_product(
          ops.logaddexp,
          ops.add,
          [factor_i, factor_jk, factor_ij],
          eliminate=frozenset("ijxy"),
          plates=frozenset("ijk"),
      )
      assert set(actual.inputs) == {"k"}
  
      # Manually unroll plate j.
      factor_jk0 = factor_jk(j=0, y="y0")
      factor_jk1 = factor_jk(j=1, y="y1")
      factor_ij0 = factor_ij(j=0, y="y0")
      factor_ij1 = factor_ij(j=1, y="y1")
      expected = sum_product(
          ops.logaddexp,
          ops.add,
          [factor_i, factor_jk0, factor_jk1, factor_ij0, factor_ij1],
          eliminate=frozenset(["i", "x", "y0", "y1"]),
          plates=frozenset("ik"),
      )
      assert set(expected.inputs) == {"k"}
  
      assert_close(actual, expected, atol=5e-4, rtol=5e-4)
  
imports: import os
  import re
  from collections import OrderedDict
  from functools import partial, reduce
  import pytest
  import funsor.ops
  from funsor.domains import Bint, Real, Reals
  from funsor.interpretations import compress_gaussians, eager, eager_or_die, lazy, moment_matching, reflect
  from funsor.interpreter import reinterpret
  from funsor.optimizer import apply_optimizer
  from funsor.sum_product import MarkovProduct, _partition, dynamic_partial_sum_product, mixed_sequential_sum_product, modified_partial_sum_product, naive_sarkka_bilmes_product, naive_sequential_sum_product, partial_sum_product, partial_unroll, sarkka_bilmes_product, sequential_sum_product, sum_product
  from funsor.tensor import Tensor, get_default_prototype
  from funsor.terms import Cat, Variable
  from funsor.testing import assert_close, random_gaussian, random_tensor
  from funsor.util import get_backend
label_desc: Use image node_id 8 for calling a global function with example usage: test_intractable_4() without return types