def METHOD_NAME(self):
    """ Header 1: 193 bytes
    Header 2: 8 bytes
    2 bits per complex symbol, 32 carriers => 64 bits = 8 bytes per OFDM symbol
                                4 carriers =>  8 bits = 1 byte  per OFDM symbol
                                8 carriers => 16 bits = 2 bytes per OFDM symbol
    Means we need 52 carriers to store the 193 bytes.
    """
    encoded_headers = (
        #   | Number of bytes                    | Packet number                      | CRC
        1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0,
        0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 0,
    )
    packet_len_tagname = "packet_len"
    frame_len_tagname = "frame_len"
    src = blocks.vector_source_b(encoded_headers)
    header_formatter = digital.packet_header_ofdm(
        # 32/4/8 carriers are occupied (which doesn't matter here)
        (list(range(32)), list(range(4)), list(range(8))),
        1,         # 1 OFDM symbol per header (= 32 bits)
        packet_len_tagname,
        frame_len_tagname,
        "packet_num",
        1,         # 1 bit per header symbols (BPSK)
        2          # 2 bits per payload symbol (QPSK)
    )
    parser = digital.packet_headerparser_b(header_formatter.base())
    sink = blocks.message_debug()
    self.tb.connect(src, parser)
    self.tb.msg_connect(parser, "header_data", sink, "store")
    self.tb.start()
    self.waitFor(lambda: sink.num_messages() == 2)
    self.tb.stop()
    self.tb.wait()
    self.assertEqual(sink.num_messages(), 2)
    msg1 = pmt.to_python(sink.get_message(0))
    msg2 = pmt.to_python(sink.get_message(1))
    # Multiply with 4 because unpacked bytes have only two bits
    self.assertEqual(msg1, {'packet_len': 193 * 4,
                            'frame_len': 52, 'packet_num': 0})
    self.assertEqual(
        msg2, {
            'packet_len': 8 * 4, 'frame_len': 1, 'packet_num': 1})