SI_InteligentnyWozekWidlowy/InitialStateFactory.py
Aleksander Szamałek 650b5ab787 decision structure
2022-04-16 15:55:43 +02:00

45 lines
1.1 KiB
Python

import random
from data.Item import Item
from data.ItemType import ItemType
from data.Order import Order
class InitialStateFactory:
@staticmethod
def generate_order_list(self, output_order_list_size: int):
order_list = [Order]
for i in range(0, output_order_list_size):
order_list.append(self.__generate_order())
return order_list
@staticmethod
def __generate_order(self) -> Order:
order_size = random.randint(1, 4)
items = [Item]
for i in range(order_size):
items.append(self.generate_item())
time_base = random.randint(8, 20)
final_time = time_base * order_size
value = sum(i.price for i in items)
return Order(final_time, items, value)
@staticmethod
def generate_input_sequence(self, input_sequence_size):
sequence = [Item]
for i in range(0, input_sequence_size):
sequence.append(self.__generate_item())
return sequence
@staticmethod
def __generate_item() -> Item:
randomly_picked_type = random.choice(list(ItemType))
return Item(randomly_picked_type)