code: def test_lfire_finite_space_model(
      finite_space_model, one_point_design, true_eig
  ):
      pyro.set_rng_seed(42)
      pyro.clear_param_store()
      estimated_eig = lfire_eig(
          finite_space_model,
          one_point_design,
          "y",
          "theta",
          num_y_samples=5,
          num_theta_samples=50,
          num_steps=1000,
          classifier=make_lfire_classifier(50),
          optim=optim.Adam({"lr": 0.0025}),
          final_num_samples=500,
      )
      assert_equal(estimated_eig, true_eig, prec=1e-2)
  
imports: from contextlib import ExitStack
  import pytest
  import torch
  import pyro
  import pyro.distributions
  import pyro.optim
  from pyro.contrib.oed.eig import donsker_varadhan_eig, lfire_eig, marginal_eig, marginal_likelihood_eig, nmc_eig, posterior_eig, vnmc_eig
  from pyro.contrib.util import iter_plates_to_shape
  from tests.common import assert_equal
label_desc: Use image node_id 14 for calling a global function with example usage: test_lfire_finite_space_model(finite_space_model, one_point_design, true_eig) without return types