def test_add(self):
        prio_set_list = event._PrioritizedSetList()
        objs = [(i,) for i in range(5)]

        prio_set_list.add(0, objs[0])
        assert prio_set_list.list == [(0, {objs[0]})]

        prio_set_list.add(0, objs[1])
        assert prio_set_list.list == [(0, {objs[0], objs[1]})]

        prio_set_list.add(10, objs[2])
        assert prio_set_list.list == [(10, {objs[2]}),
                                      (0,  {objs[0], objs[1]})]

        prio_set_list.add(-10, objs[3])
        assert prio_set_list.list == [( 10, {objs[2]}),           # noqa: E201
                                      (  0, {objs[0], objs[1]}),  # noqa: E201
                                      (-10, {objs[3]})]
        prio_set_list.add(-1, objs[4])
        assert prio_set_list.list == [( 10, {objs[2]}),           # noqa: E201
                                      (  0, {objs[0], objs[1]}),  # noqa: E201
                                      ( -1, {objs[4]}),           # noqa: E201
                                      (-10, {objs[3]})]
def __init__(self, host, key, port=443, max_size=4096):

        # Params for all class
        self.host = host
        self.port = port
        self.max_size = max_size - 60
        self.AESDriver = AESCipher(key=key)
        self.serv_addr = (host, port)

        # Class Globals
        self.max_packets = 255 # Limitation by QUIC itself.
        self._genSeq()   # QUIC Sequence is used to know that this is the same sequence,
                          # and it's a 20 byte long that is kept the same through out the
                          # session and is transfered hex encoded.
        self.delay = 0.1

        self.sock = None
        if self._createSocket() is 1:               # Creating a UDP socket object
            sys.exit(1)
        self.serv_addr = (self.host, self.port)     # Creating socket addr format