'Simple checkpoints test that accepts a checkpoints dataframe and
the expected value for 2014-01-03 for macro datasets.
The underlying data has value -1.0 on 2014-01-01 and 1.0 on 2014-01-04.
Parameters
checkpoints : pd.DataFrame
The checkpoints data.
ffilled_value : float, optional
The value to be read on the third, if not provided, it will be the
value in the base data that will be naturally ffilled there.'

def _test_checkpoints_macro(self, checkpoints, ffilled_value=(-1.0)):

    dates = pd.Index([pd.Timestamp('2014-01-01'), pd.Timestamp('2014-01-04')])
    asof_dates = (dates - pd.Timedelta(days=1))
    timestamps = (asof_dates + pd.Timedelta(hours=23))
    baseline = pd.DataFrame({'value': [(-1.0), 1.0], 'asof_date': asof_dates, 'timestamp': timestamps})
    nassets = len(simple_asset_info)
    expected_views = keymap(pd.Timestamp, {'2014-01-03': np.array([[ffilled_value]]), '2014-01-04': np.array([[1.0]])})
    with tmp_asset_finder(equities=simple_asset_info) as finder:
        expected_output = pd.DataFrame(list(concatv(([ffilled_value] * nassets), ([1.0] * nassets))), index=pd.MultiIndex.from_product((sorted(expected_views.keys()), finder.retrieve_all(simple_asset_info.index))), columns=('value',))
        self._run_pipeline(bz.data(baseline, name='expr', dshape=self.macro_dshape), None, bz.data(checkpoints, name='expr_checkpoints', dshape=self.macro_dshape), expected_views, expected_output, finder, calendar=pd.date_range('2014-01-01', '2014-01-04'), start=pd.Timestamp('2014-01-03'), end=dates[(-1)], window_length=1, compute_fn=op.itemgetter((-1)))
