docstr: Test asynchronous remote calls work.
docstr_tok: ["Test","asynchronous","remote","calls","work","."]
code: def test_async_call(self):
      """Test asynchronous remote calls work."""
      actors = [Actor.remote(i) for i in range(4)]
      manager = FaultTolerantActorManager(actors=actors)
  
      results = []
      for _ in range(10):
          manager.foreach_actor_async(lambda w: w.call())
          results.extend(
              manager.fetch_ready_async_reqs(timeout_seconds=None)
          )
          # Wait for actors to recover.
          wait_for_restore()
  
      # Note that we can hardcode the numbers here because of the deterministic
      # lists of random numbers we use.
      # 7 calls succeeded, 4 failed.
      # The number of results back is much lower than 40, because we do not probe
      # the actors with this test. As soon as an actor errors out, it will get
      # taken out of the lineup forever.
      self.assertEqual(len([r for r in results if r.ok]), 7)
      self.assertEqual(len([r for r in results if not r.ok]), 4)
  
      manager.clear()
  
imports: import functools
  import os
  from pathlib import Path
  import pickle
  import sys
  import time
  import unittest
  import ray
  from ray.util.state import list_actors
  from ray.rllib.utils.actor_manager import FaultAwareApply, FaultTolerantActorManager
label_desc: Use image node_id 11 for calling the TestActorManager obj's underlying member method code with example usage: obj.test_async_call() without return types