class_docstr: Simple integration/smoke test for the distributed agent.
code: def test_agent(self):
      env_factory = lambda x: fakes.fake_atari_wrapped(oar_wrapper=True)
      net_factory = lambda spec: networks.R2D2AtariNetwork(
          spec.num_values
      )
  
      agent = r2d2.DistributedR2D2(
          environment_factory=env_factory,
          network_factory=net_factory,
          num_actors=2,
          batch_size=32,
          min_replay_size=32,
          max_replay_size=1000,
          replay_period=1,
          burn_in_length=1,
          trace_length=10,
      )
      program = agent.build()
  
      (learner_node,) = program.groups["learner"]
      learner_node.disable_run()
  
      lp.launch(program, launch_type="test_mt")
  
      learner: acme.Learner = learner_node.create_handle().dereference()
  
      for _ in range(5):
          learner.step()
  
file_path: acme/acme/agents/tf/r2d2/agent_distributed_test.py
imports: import acme
  from acme.agents.tf import r2d2
  from acme.testing import fakes
  from acme.tf import networks
  import launchpad
  from absl.testing import absltest
label_desc: Use image node_id 1 for calling the DistributedAgentTest obj's underlying member method code with example usage: obj.test_agent() without return types