class_docstr: Base class for testing FXRateReader implementations.
  
  To test a new FXRateReader implementation, subclass from this base class
  and implement the ``reader`` property, returning an FXRateReader that uses
  the data stored in ``cls.fx_rates``.
code: def test_load_everything(self):
      # Sanity check for the randomized tests above: check that we get
      # exactly the rates we set up in make_fx_rates if we query for their
      # indices.
      for currency in self.FX_RATES_CURRENCIES:
          tokyo_rates = self.tokyo_mid_rates[currency]
          tokyo_result = self.reader.get_rates(
              "tokyo_mid",
              currency,
              tokyo_rates.columns,
              tokyo_rates.index,
          )
          assert_equal(tokyo_result, tokyo_rates.values)
  
          london_rates = self.london_mid_rates[currency]
          london_result = self.reader.get_rates(
              "london_mid",
              currency,
              london_rates.columns,
              london_rates.index,
          )
          default_result = self.reader.get_rates(
              DEFAULT_FX_RATE,
              currency,
              london_rates.columns,
              london_rates.index,
          )
          assert_equal(london_result, default_result)
          assert_equal(london_result, london_rates.values)
  
imports: import itertools
  import pandas
  import numpy
  from zipline.data.fx import DEFAULT_FX_RATE
  from zipline.testing.predicates import assert_equal
  import zipline.testing.fixtures
label_desc: Use image node_id 6 for calling the _FXReaderTestCase obj's underlying member method code with example usage: obj.test_load_everything() without return types