def estimate_rho(self, rho_star): """Estimate new value of rho based on past network performance.""" #log.debug("[cs-buflo] rho stats: %s" % self._rho_stats) time_intervals = gu.flatten_list([gu.apply_consecutive_elements(burst_list, lambda x, y: (y - x) * const.SCALE) for burst_list in self._rho_stats]) #log.debug("[cs-buflo] Time intervals = %s", time_intervals) if len(time_intervals) == 0: return rho_star else: return math.pow(2, math.floor(math.log(mu.median(time_intervals), 2)))
def estimate_rho(self, rho_star): """Estimate new value of rho based on past network performance.""" #log.debug("[cs-buflo] rho stats: %s" % self._rho_stats) time_intervals = gu.flatten_list([ gu.apply_consecutive_elements(burst_list, lambda x, y: (y - x) * const.SCALE) for burst_list in self._rho_stats ]) #log.debug("[cs-buflo] Time intervals = %s", time_intervals) if len(time_intervals) == 0: return rho_star else: return math.pow(2, math.floor(math.log(mu.median(time_intervals), 2)))
def test_timing(self): """Test that delay is correct.""" ignores_rcv_times = [e.rcvTime for e in self.padding_msgs(self.clientMsgs)] controls_rcv_times = [e.rcvTime for e in self.control_msgs(self.serverMsgs)] rtt_times = gu.apply_consecutive_elements(ignores_rcv_times) # TODO first_ignore_rcv_client = self.padding_msgs(self.clientMsgs)[0] control_msg_rcv_server = self.control_msgs(self.serverMsgs)[0] ign_ts = float(first_ignore_rcv_client.rcvTime) ctl_ts = float(control_msg_rcv_server.rcvTime) observed_delay = ign_ts - ctl_ts # as ctrl msg goes before 1st ignore expected_delay = self.t / const.SCALE self.assertAlmostEqual(expected_delay, observed_delay, msg="Observed delay (%s-%s=%s) does not match" " the expected delay (%s)." % (ign_ts, ctl_ts, observed_delay, expected_delay), delta=0.05)
def test_timing(self): """Test that delay is correct.""" ignores_rcv_times = [ e.rcvTime for e in self.padding_msgs(self.clientMsgs) ] controls_rcv_times = [ e.rcvTime for e in self.control_msgs(self.serverMsgs) ] rtt_times = gu.apply_consecutive_elements(ignores_rcv_times) # TODO first_ignore_rcv_client = self.padding_msgs(self.clientMsgs)[0] control_msg_rcv_server = self.control_msgs(self.serverMsgs)[0] ign_ts = float(first_ignore_rcv_client.rcvTime) ctl_ts = float(control_msg_rcv_server.rcvTime) observed_delay = ign_ts - ctl_ts # as ctrl msg goes before 1st ignore expected_delay = self.t / const.SCALE self.assertAlmostEqual( expected_delay, observed_delay, msg="Observed delay (%s-%s=%s) does not match" " the expected delay (%s)." % (ign_ts, ctl_ts, observed_delay, expected_delay), delta=0.05)