def test_create_packet_constant_bitrate(self): packet_size_bytes = 1200.0 bitrate_kbps = 1500.0 packet_source = PacketSource(packet_size_bytes) for i in range(1, 11): packet = packet_source.create_packet(bitrate_kbps) self.assertEqual(i, packet.id) self.assertNear(i * 8 * packet_size_bytes / bitrate_kbps, packet.send_time_ms, 0.001)
def test_create_packet_variable_bitrate(self): packet_size_bytes = 1200.0 packet_source = PacketSource(packet_size_bytes) time_ms = 0.0 for i in range(1, 11): bitrate_kbps = random.randint(150, 2500) packet = packet_source.create_packet(bitrate_kbps) time_ms += 8 * packet_size_bytes / bitrate_kbps self.assertEqual(i, packet.id) self.assertNear(time_ms, packet.send_time_ms, 0.001)
def test_receiving_rate_regular_packets(self): for i in range(10): bitrate_kbps = random.uniform(150.0, 2500.0) packet_size_bytes = random.uniform(1.0, 8000.0) delay_ms = random.uniform(10.0, 300.0) packet_source = PacketSource(packet_size_bytes) packets = [] for j in range(1000): packet = packet_source.create_packet(bitrate_kbps) packet.arrival_time_ms = packet.send_time_ms + delay_ms packets.append(packet) time_window_ms = random.uniform(0.0, 1.0) * packets[-1].arrival_time_ms self.assertNear(receiving_rate_kbps(packets, time_window_ms), bitrate_kbps, 0.001)