From 54345f40a6e672186d3737cb4b33d02b1a7771d2 Mon Sep 17 00:00:00 2001 From: fheinrich <fheinrich@techfak.uni-bielefeld.de> Date: Tue, 19 Mar 2024 17:34:35 +0100 Subject: [PATCH] Correct random sampling function in time generation --- cooperative_cuisine/orders.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/cooperative_cuisine/orders.py b/cooperative_cuisine/orders.py index 910c44b0..33c841f7 100644 --- a/cooperative_cuisine/orders.py +++ b/cooperative_cuisine/orders.py @@ -251,6 +251,8 @@ class OrderManager: self.hook(INIT_ORDERS) self.open_orders.extend(init_orders) + # self.update_next_relevant_time() + def progress(self, passed_time: timedelta, now: datetime): """Check expired orders and check order generation.""" new_orders = self.order_gen.get_orders( @@ -434,6 +436,14 @@ class RandomOrderGeneration(OrderGeneration): if new_finished_orders: self.create_random_next_time_delta(now) return [] + # print( + # " - -", + # self.needed_orders, + # self.number_cur_orders, + # self.next_order_time, + # now, + # ) + if self.needed_orders: self.needed_orders -= len(new_finished_orders) self.needed_orders = max(self.needed_orders, 0) @@ -442,6 +452,7 @@ class RandomOrderGeneration(OrderGeneration): self.random.choices(self.available_meals, k=len(new_finished_orders)), now, ) + if self.next_order_time <= now: if self.number_cur_orders >= self.kwargs.max_orders: self.needed_orders += 1 @@ -502,11 +513,11 @@ class RandomOrderGeneration(OrderGeneration): def create_random_next_time_delta(self, now: datetime): if isinstance(self.kwargs.order_duration_random_func["func"], str): seconds = getattr( - self.random, self.kwargs.order_duration_random_func["func"] - )(**self.kwargs.order_duration_random_func["kwargs"]) + self.random, self.kwargs.sample_on_dur_random_func["func"] + )(**self.kwargs.sample_on_dur_random_func["kwargs"]) else: - seconds = self.kwargs.order_duration_random_func["func"]( - **self.kwargs.order_duration_random_func["kwargs"] + seconds = self.kwargs.sample_on_dur_random_func["func"]( + **self.kwargs.sample_on_dur_random_func["kwargs"] ) self.next_order_time = now + timedelta(seconds=seconds) -- GitLab