def __test_single_flow(sender, receiver, times_ms, capacities_kbps, jitter):
    """
    Simulates a RMCAT single flow on a variable capacity link.
    """
    link_simulator = LinkSimulator(None, jitter)
    now_ms = 0.0

    for i in range(len(capacities_kbps)):
        link_simulator.capacity_kbps = capacities_kbps[i]
        end_time_ms = times_ms[i]
        while now_ms < end_time_ms:
            packet = sender.create_packet()
            link_simulator.send_packet(packet)
            if packet.arrival_time_ms is not None:
                receiver.receive_packet(packet)
            feedback = receiver.get_feedback()
            if feedback is not None:
                sender.receive_feedback(feedback)
            now_ms = packet.send_time_ms

    __print(receiver)
    __plot(receiver, times_ms, capacities_kbps)
def __test_single_flow(sender, receiver, times_ms, capacities_kbps, jitter):
    """
    Simulates a RMCAT single flow on a variable capacity link.
    """
    link_simulator = LinkSimulator(None, jitter)
    now_ms = 0.0

    for i in range(len(capacities_kbps)):
        link_simulator.capacity_kbps = capacities_kbps[i]
        end_time_ms = times_ms[i]
        while now_ms < end_time_ms:
            packet = sender.create_packet()
            link_simulator.send_packet(packet)
            if packet.arrival_time_ms is not None:
                receiver.receive_packet(packet)
            feedback = receiver.get_feedback()
            if feedback is not None:
                sender.receive_feedback(feedback)
            now_ms = packet.send_time_ms

    __print(receiver)
    __plot(receiver, times_ms, capacities_kbps)