1 # Copyright (c) 2020 INFORM GmbH. All rights reserverd.
2 # This copyright notice applies to the current file and all its outputs.
7 # Parameters of the generator
10 lDimensionsOfPallet = [120,80,160]
11 hlDimensionsOfBoxType = {
22 # Generate dimensions of articles randomly
23 hlDimensionsOfArticle = {}
24 for i in range(1,iNoArticles+1):
25 hlDimensionsOfArticle["A"+str(i)] = ( random.choices([5,8,10,12,15,20], [0.01,0.09,0.4,0.2,0.1,0.2])[0],
26 random.choices([5,8,10,12,15,20], [0.01,0.09,0.4,0.2,0.1,0.2])[0],
27 random.choices([5,8,10,12,15,20], [0.01,0.09,0.4,0.2,0.1,0.2])[0] )
29 # Generate weight according to random density
31 hDensityOfArticle = {}
32 for a in hlDimensionsOfArticle:
33 fDensity = random.choices([0.01,0.1,0.2,0.5], weights=[0.1,0.4,0.3,0.2])[0]
34 hWeightOfArticle[a] = int(hlDimensionsOfArticle[a][0]*hlDimensionsOfArticle[a][1]*hlDimensionsOfArticle[a][2]*fDensity)
36 # Generate for every order a random set of articles
37 hhNumberOfArticlesOfOrder = {}
38 for i in range(iNoOrders):
39 hhNumberOfArticlesOfOrder["O"+str(i)] = {}
40 # Between 1 and 10 different articles per order
41 iNoOfArticles = random.randint(1,10)
42 # Choose a random subset of articles for order
43 sArticlesOfOrder = random.sample(hlDimensionsOfArticle.keys(), iNoOfArticles)
44 for a in sArticlesOfOrder:
45 # Number of articles in order is a random between 1 and 10
46 hhNumberOfArticlesOfOrder["O"+str(i)][a] = random.randint(1,10)
49 assert hlDimensionsOfArticle
50 assert hlDimensionsOfBoxType
51 assert hWeightOfArticle
52 assert hDensityOfArticle
54 print("Order ID;;;;;;Article ID;Article Name;Length (cm);Width (cm);Height (cm);Weight (g);Units")
55 for o in hhNumberOfArticlesOfOrder:
56 for a in hhNumberOfArticlesOfOrder[o]:
57 print(o,";;;;;;",a,";",a,";",hlDimensionsOfArticle[a][0],";",hlDimensionsOfArticle[a][1],";",hlDimensionsOfArticle[a][2],";",hWeightOfArticle[a],";",hhNumberOfArticlesOfOrder[o][a])