Source code for pytwinnet.traffic.poisson
from __future__ import annotations
from dataclasses import dataclass
from typing import List
import random
[docs]
@dataclass
class PoissonTraffic:
rate_lambda: float
seed: int = 0
[docs]
def arrivals(self, duration_s: float) -> List[float]:
rng = random.Random(self.seed)
t = 0.0; times = []
while t <= duration_s:
dt = rng.expovariate(self.rate_lambda) if self.rate_lambda > 0 else duration_s + 1
t += dt
if t <= duration_s:
times.append(t)
return times