code: def test_monte_carlo():
      model = random_gaussian(OrderedDict(x=Real))
      guide = random_gaussian(OrderedDict(x=Real))
      approx_vars = frozenset({Variable("x", Real)})
  
      with Elbo(guide, approx_vars):
          expected = model.reduce(ops.logaddexp, approx_vars)
      assert isinstance(expected, Tensor)
      with MonteCarlo(particles=Bint[10000]), Elbo(guide, approx_vars):
          actual = model.reduce(ops.logaddexp, approx_vars)
      assert isinstance(actual, Tensor)
  
      assert_close(actual, expected, atol=0.1)
  
file_path: funsor/test/test_elbo.py
imports: from collections import OrderedDict
  import pytest
  from funsor import ops
  from funsor.domains import Bint, Real
  from funsor.elbo import Elbo
  from funsor.integrate import Integrate
  from funsor.interpretations import normalize
  from funsor.interpreter import reinterpret
  from funsor.montecarlo import MonteCarlo
  from funsor.tensor import Tensor
  from funsor.terms import Variable
  from funsor.testing import assert_close, random_gaussian
label_desc: Use image node_id 2 for calling a global function with example usage: test_monte_carlo() without return types