def METHOD_NAME(self):
    self.dataframe_generator()
    dfd = self.df
    shape = dfd.shape
    cross_sections = dfd['cid'].unique()
    cross_sections.sort()
    dfd['value'] = np.arange(0, shape[0])
    with self.assertRaises(AssertionError):
        make_blacklist(dfd, 'FXXR_NSA', cids=list(cross_sections))
    dfd['value'] = np.repeat(0, shape[0])
    dict_ = make_blacklist(dfd, xcat='FXXR_NSA', cids=list(cross_sections))
    # Validate the dictionary is empty if every row in the 'value' column contains
    # a zero.
    self.assertTrue(not bool(dict_))
    # Refresh the DataFrame for the next testing framework.
    self.dataframe_generator()
    dfd = self.df
    dfd['value'] = np.repeat(1, shape[0])
    # If the entire 'value' column is equated to one, the number of keys in the
    # dictionary should equal the number of cross-sections in the dataframe.
    dict_ = make_blacklist(dfd, 'FXXR_NSA', cids=list(cross_sections))
    cross_sections = dfd['cid'].unique()
    cross_sections.sort()
    no_cross_sections = cross_sections.size
    keys = list(dict_.keys())
    self.assertTrue(len(keys) == no_cross_sections)
    # If the dataframe contains only a single blackout period for a cross-section,
    # the key should just be the name of the cross-section.
    # In this situation, indexing is not required: 'AUD_1', 'AUD_2' etc..
    self.assertTrue(sorted(keys) == list(cross_sections))
    df_pivot = dfd.pivot(index='real_date', columns='cid', values='value')
    # Check the start & end dates. All cross-sections have the same start date but
    # varying end dates depending on the number of periods in the series.
    for cid in cross_sections:
        self.assertTrue(str(dict_[cid][0])[:10] == "2000-01-01")
        end_date = df_pivot[cid].last_valid_index()
        self.assertTrue(dict_[cid][1] == end_date)
    # Refresh the DataFrame for the next testing framework.
    self.dataframe_generator()
    dfd = self.df
    df_pivot = dfd.pivot(index='real_date', columns='cid', values='value')
    dates = df_pivot.index
    dict_ = make_blacklist(dfd, 'FXXR_NSA', cids=list(cross_sections))
    dict_tracker = self.dict_counter(dict_, cross_sections)
    # Test the number of keys in the dictionary per cross_section.
    # The number of keys in the dictionary should correspond to the number of
    # sequences of one held in the cross-section's column (on the pivoted dataframe).
    # Unable to validate the dictionary's values, tuples of dates, are correct but if
    # the number of keys match the number of sequences of one, it minimises the
    # scope for potential error in the function.
    # The only aspect that would still be required to check is that the actual
    # "start_date" & "end_date", the two values in the tuple, are correct. But the
    # final check would require a more involved algorithm that might be superfluous
    # given the current checks.
    for cid in cross_sections:
        column = df_pivot[cid]
        last_index = column.last_valid_index()
        last_index = np.where(dates == last_index)[0]
        last_index = next(iter(last_index))
        values = column.tolist()[:(last_index + 1)]
        count = self.sequence_ones(values)
        self.assertTrue(count == dict_tracker[cid])