def METHOD_NAME(self):
    " With tags and a 2-sample rolloff "
    fft_len = 8
    cp_len = 2
    tag_name = "ts_last"
    expected_result = [7.0 / 2, 8, 1, 2, 3, 4, 5, 6, 7, 8,  # 1.0/2
                       7.0 / 2 + 1.0 / 2, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1.0 / 2]
    tag2 = gr.tag_t()
    tag2.offset = 1
    tag2.key = pmt.string_to_symbol("random_tag")
    tag2.value = pmt.from_long(42)
    src = blocks.vector_source_c(
        list(range(1, fft_len + 1)) * 2, False, fft_len, (tag2,))
    cp = digital.ofdm_cyclic_prefixer(
        fft_len, fft_len + cp_len, 2, tag_name)
    sink = blocks.tsb_vector_sink_c(tsb_key=tag_name)
    self.tb.connect(
        src,
        blocks.stream_to_tagged_stream(
            gr.sizeof_gr_complex,
            fft_len,
            2,
            tag_name),
        cp,
        sink)
    self.tb.run()
    self.assertEqual(sink.data()[0], expected_result)
    tags = [gr.tag_to_python(x) for x in sink.tags()]
    tags = sorted([(x.offset, x.key, x.value) for x in tags])
    expected_tags = [
        (fft_len + cp_len, "random_tag", 42)
    ]
    self.assertEqual(tags, expected_tags)