docstr: For the case where raw data is empty, make sure we have a result for
  all sids, that the dimensions are correct, and that we have the
  correct missing value.
docstr_tok: ["For","the","case","where","raw","data","is","empty",",","make","sure","we","have","a","result","for","all","sids",",","that","the","dimensions","are","correct",",","and","that","we","have","the","correct","missing","value","."]
code: def _test_load_empty(self):
      """
      For the case where raw data is empty, make sure we have a result for
      all sids, that the dimensions are correct, and that we have the
      correct missing value.
      """
      raw_events = pd.DataFrame(
          columns=[
              "sid",
              "timestamp",
              "event_date",
              "float",
              "int",
              "datetime",
              "string",
          ]
      )
      next_value_columns = {
          EventDataSet.next_datetime: "datetime",
          EventDataSet.next_event_date: "event_date",
          EventDataSet.next_float: "float",
          EventDataSet.next_int: "int",
          EventDataSet.next_string: "string",
          EventDataSet.next_string_custom_missing: "string",
      }
      previous_value_columns = {
          EventDataSet.previous_datetime: "datetime",
          EventDataSet.previous_event_date: "event_date",
          EventDataSet.previous_float: "float",
          EventDataSet.previous_int: "int",
          EventDataSet.previous_string: "string",
          EventDataSet.previous_string_custom_missing: "string",
      }
      loader = EventsLoader(
          raw_events, next_value_columns, previous_value_columns
      )
      engine = SimplePipelineEngine(
          lambda x: loader,
          self.trading_days,
          self.asset_finder,
      )
  
      results = engine.run_pipeline(
          Pipeline({c.name: c.latest for c in EventDataSet.columns}),
          start_date=self.trading_days[0],
          end_date=self.trading_days[-1],
      )
  
      assets = self.asset_finder.retrieve_all(
          self.ASSET_FINDER_EQUITY_SIDS
      )
      dates = self.trading_days
  
      expected = self.frame_containing_all_missing_values(
          index=pd.MultiIndex.from_product([dates, assets]),
          columns=EventDataSet.columns,
      )
  
      assert_equal(results, expected)
  
imports: from datetime import time
  import itertools
  from itertools import product
  import blaze
  from nose_parameterized import parameterized
  import numpy
  import pandas
  from catalyst.pipeline import Pipeline, SimplePipelineEngine
  from catalyst.pipeline.common import EVENT_DATE_FIELD_NAME, TS_FIELD_NAME, SID_FIELD_NAME
  from catalyst.pipeline.data import DataSet, Column
  from catalyst.pipeline.loaders.events import EventsLoader
  from catalyst.pipeline.loaders.blaze.events import BlazeEventsLoader
  from catalyst.pipeline.loaders.utils import next_event_indexer, normalize_timestamp_to_query_time, previous_event_indexer
  from catalyst.testing import check_arrays, CatalystTestCase
  from catalyst.testing.fixtures import WithAssetFinder, WithTradingSessions
  from catalyst.testing.predicates import assert_equal
  from catalyst.utils.numpy_utils import categorical_dtype, datetime64ns_dtype, float64_dtype, int64_dtype
label_desc: Use image node_id 3 for calling the EventsLoaderEmptyTestCase obj's underlying member method code with example usage: obj._test_load_empty() without return types