def stopConditionPayloadPadding(self): to_pad = self.session.numMessages['snd'] if msg_level else self.session.totalBytes['snd'] divisor = self.session.dataMessages['snd'] if msg_level else self.session.dataBytes['snd'] k = closest_power_of_two(divisor) total_padding = closest_multiple(to_pad, k) log.debug("[wfpad %s] - Computed payload padding: %s (to_pad is %s and divisor is %s)" % (self.end, total_padding, to_pad, divisor)) return total_padding
def stopConditionBatchPadding(self): to_pad = self.session.numMessages['snd'] if msg_level else self.session.totalBytes['snd'] total_padding = closest_multiple(to_pad, L) log.debug("[wfpad %s] - Computed batch padding: %s (to_pad is %s)" % (self.end, total_padding, to_pad)) return total_padding
def bytes_after_payload_padding(data_bytes, total_bytes, psize=1): """Return the total bytes transmitted after 'payload' padding.""" n2 = closest_power_of_two(data_bytes) m = closest_multiple(total_bytes, n2) return closest_multiple(m, psize, ceil=False)
def bytes_after_total_padding(total_bytes, psize=1): """Return the total bytes transmitted after 'total' padding.""" n2 = closest_power_of_two(total_bytes) return closest_multiple(n2, psize, ceil=False)
def test_closest_multiple_k_equals_1(self): n, k = 17, 1 obs_result = mu.closest_multiple(n, k) self.assertEqual(obs_result, n, "The closest multiple of {1} to {0} is not {2}" .format(n, k, obs_result))
def test_closest_multiple_n_greater_than_k(self): n, k = 17, 8 obs_result = mu.closest_multiple(n, k) self.assertEqual(obs_result, 3 * k, "The closest multiple of {1} to {0} is not {2}" .format(n, k, obs_result))
def test_closest_multiple_n_multiple_of_k(self): n, k = 16, 8 obs_result = mu.closest_multiple(n, k) self.assertEqual(obs_result, n, "The closest multiple of {1} to {0} is not {2}" .format(n, k, obs_result))