iBrokeTheCode commited on
Commit
d81b677
·
1 Parent(s): 1a16fbb

chore: Run tests for extract and transform stages

Browse files
sql/global_amount_order_status.sql CHANGED
@@ -6,7 +6,7 @@
6
  -- 3. Group the results by the order status.
7
  SELECT
8
  oo.order_status,
9
- COUNT(oo.order_status) AS Ammount
10
  FROM
11
  olist_orders oo
12
  GROUP BY
 
6
  -- 3. Group the results by the order status.
7
  SELECT
8
  oo.order_status,
9
+ COUNT(oo.order_status) AS Amount
10
  FROM
11
  olist_orders oo
12
  GROUP BY
tests/{.gitkeep → __init__.py} RENAMED
File without changes
tests/query_results/delivery_date_difference.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ { "State": "AL", "Delivery_Difference": 8 },
3
+ { "State": "MA", "Delivery_Difference": 9 },
4
+ { "State": "BA", "Delivery_Difference": 10 },
5
+ { "State": "CE", "Delivery_Difference": 10 },
6
+ { "State": "ES", "Delivery_Difference": 10 },
7
+ { "State": "SE", "Delivery_Difference": 10 },
8
+ { "State": "MS", "Delivery_Difference": 11 },
9
+ { "State": "PI", "Delivery_Difference": 11 },
10
+ { "State": "RJ", "Delivery_Difference": 11 },
11
+ { "State": "SC", "Delivery_Difference": 11 },
12
+ { "State": "SP", "Delivery_Difference": 11 },
13
+ { "State": "DF", "Delivery_Difference": 12 },
14
+ { "State": "GO", "Delivery_Difference": 12 },
15
+ { "State": "TO", "Delivery_Difference": 12 },
16
+ { "State": "MG", "Delivery_Difference": 13 },
17
+ { "State": "PB", "Delivery_Difference": 13 },
18
+ { "State": "PE", "Delivery_Difference": 13 },
19
+ { "State": "PR", "Delivery_Difference": 13 },
20
+ { "State": "RN", "Delivery_Difference": 13 },
21
+ { "State": "RS", "Delivery_Difference": 13 },
22
+ { "State": "MT", "Delivery_Difference": 14 },
23
+ { "State": "PA", "Delivery_Difference": 14 },
24
+ { "State": "RR", "Delivery_Difference": 17 },
25
+ { "State": "AM", "Delivery_Difference": 19 },
26
+ { "State": "AP", "Delivery_Difference": 19 },
27
+ { "State": "AC", "Delivery_Difference": 20 },
28
+ { "State": "RO", "Delivery_Difference": 20 }
29
+ ]
tests/query_results/get_freight_value_weight_relationship.json ADDED
The diff for this file is too large to render. See raw diff
 
tests/query_results/global_amount_order_status.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ { "order_status": "approved", "Amount": 2 },
3
+ { "order_status": "canceled", "Amount": 625 },
4
+ { "order_status": "created", "Amount": 5 },
5
+ { "order_status": "delivered", "Amount": 96478 },
6
+ { "order_status": "invoiced", "Amount": 314 },
7
+ { "order_status": "processing", "Amount": 301 },
8
+ { "order_status": "shipped", "Amount": 1107 },
9
+ { "order_status": "unavailable", "Amount": 609 }
10
+ ]
tests/query_results/orders_per_day_and_holidays_2017.json ADDED
@@ -0,0 +1,363 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ { "order_count": 32, "date": 1483574400000, "holiday": false },
3
+ { "order_count": 4, "date": 1483660800000, "holiday": false },
4
+ { "order_count": 4, "date": 1483747200000, "holiday": false },
5
+ { "order_count": 6, "date": 1483833600000, "holiday": false },
6
+ { "order_count": 5, "date": 1483920000000, "holiday": false },
7
+ { "order_count": 6, "date": 1484006400000, "holiday": false },
8
+ { "order_count": 12, "date": 1484092800000, "holiday": false },
9
+ { "order_count": 13, "date": 1484179200000, "holiday": false },
10
+ { "order_count": 12, "date": 1484265600000, "holiday": false },
11
+ { "order_count": 18, "date": 1484352000000, "holiday": false },
12
+ { "order_count": 14, "date": 1484438400000, "holiday": false },
13
+ { "order_count": 19, "date": 1484524800000, "holiday": false },
14
+ { "order_count": 32, "date": 1484611200000, "holiday": false },
15
+ { "order_count": 33, "date": 1484697600000, "holiday": false },
16
+ { "order_count": 29, "date": 1484784000000, "holiday": false },
17
+ { "order_count": 29, "date": 1484870400000, "holiday": false },
18
+ { "order_count": 24, "date": 1484956800000, "holiday": false },
19
+ { "order_count": 31, "date": 1485043200000, "holiday": false },
20
+ { "order_count": 39, "date": 1485129600000, "holiday": false },
21
+ { "order_count": 40, "date": 1485216000000, "holiday": false },
22
+ { "order_count": 63, "date": 1485302400000, "holiday": false },
23
+ { "order_count": 86, "date": 1485388800000, "holiday": false },
24
+ { "order_count": 62, "date": 1485475200000, "holiday": false },
25
+ { "order_count": 29, "date": 1485561600000, "holiday": false },
26
+ { "order_count": 35, "date": 1485648000000, "holiday": false },
27
+ { "order_count": 53, "date": 1485734400000, "holiday": false },
28
+ { "order_count": 70, "date": 1485820800000, "holiday": false },
29
+ { "order_count": 73, "date": 1485907200000, "holiday": false },
30
+ { "order_count": 69, "date": 1485993600000, "holiday": false },
31
+ { "order_count": 60, "date": 1486080000000, "holiday": false },
32
+ { "order_count": 67, "date": 1486166400000, "holiday": false },
33
+ { "order_count": 75, "date": 1486252800000, "holiday": false },
34
+ { "order_count": 85, "date": 1486339200000, "holiday": false },
35
+ { "order_count": 112, "date": 1486425600000, "holiday": false },
36
+ { "order_count": 95, "date": 1486512000000, "holiday": false },
37
+ { "order_count": 77, "date": 1486598400000, "holiday": false },
38
+ { "order_count": 66, "date": 1486684800000, "holiday": false },
39
+ { "order_count": 49, "date": 1486771200000, "holiday": false },
40
+ { "order_count": 64, "date": 1486857600000, "holiday": false },
41
+ { "order_count": 78, "date": 1486944000000, "holiday": false },
42
+ { "order_count": 76, "date": 1487030400000, "holiday": false },
43
+ { "order_count": 62, "date": 1487116800000, "holiday": false },
44
+ { "order_count": 55, "date": 1487203200000, "holiday": false },
45
+ { "order_count": 46, "date": 1487289600000, "holiday": false },
46
+ { "order_count": 54, "date": 1487376000000, "holiday": false },
47
+ { "order_count": 40, "date": 1487462400000, "holiday": false },
48
+ { "order_count": 63, "date": 1487548800000, "holiday": false },
49
+ { "order_count": 41, "date": 1487635200000, "holiday": false },
50
+ { "order_count": 63, "date": 1487721600000, "holiday": false },
51
+ { "order_count": 59, "date": 1487808000000, "holiday": false },
52
+ { "order_count": 64, "date": 1487894400000, "holiday": false },
53
+ { "order_count": 43, "date": 1487980800000, "holiday": false },
54
+ { "order_count": 46, "date": 1488067200000, "holiday": false },
55
+ { "order_count": 43, "date": 1488153600000, "holiday": true },
56
+ { "order_count": 55, "date": 1488240000000, "holiday": true },
57
+ { "order_count": 99, "date": 1488326400000, "holiday": false },
58
+ { "order_count": 72, "date": 1488412800000, "holiday": false },
59
+ { "order_count": 74, "date": 1488499200000, "holiday": false },
60
+ { "order_count": 80, "date": 1488585600000, "holiday": false },
61
+ { "order_count": 74, "date": 1488672000000, "holiday": false },
62
+ { "order_count": 105, "date": 1488758400000, "holiday": false },
63
+ { "order_count": 82, "date": 1488844800000, "holiday": false },
64
+ { "order_count": 79, "date": 1488931200000, "holiday": false },
65
+ { "order_count": 93, "date": 1489017600000, "holiday": false },
66
+ { "order_count": 88, "date": 1489104000000, "holiday": false },
67
+ { "order_count": 71, "date": 1489190400000, "holiday": false },
68
+ { "order_count": 64, "date": 1489276800000, "holiday": false },
69
+ { "order_count": 111, "date": 1489363200000, "holiday": false },
70
+ { "order_count": 99, "date": 1489449600000, "holiday": false },
71
+ { "order_count": 108, "date": 1489536000000, "holiday": false },
72
+ { "order_count": 103, "date": 1489622400000, "holiday": false },
73
+ { "order_count": 65, "date": 1489708800000, "holiday": false },
74
+ { "order_count": 73, "date": 1489795200000, "holiday": false },
75
+ { "order_count": 56, "date": 1489881600000, "holiday": false },
76
+ { "order_count": 119, "date": 1489968000000, "holiday": false },
77
+ { "order_count": 97, "date": 1490054400000, "holiday": false },
78
+ { "order_count": 105, "date": 1490140800000, "holiday": false },
79
+ { "order_count": 114, "date": 1490227200000, "holiday": false },
80
+ { "order_count": 79, "date": 1490313600000, "holiday": false },
81
+ { "order_count": 76, "date": 1490400000000, "holiday": false },
82
+ { "order_count": 64, "date": 1490486400000, "holiday": false },
83
+ { "order_count": 111, "date": 1490572800000, "holiday": false },
84
+ { "order_count": 103, "date": 1490659200000, "holiday": false },
85
+ { "order_count": 74, "date": 1490745600000, "holiday": false },
86
+ { "order_count": 74, "date": 1490832000000, "holiday": false },
87
+ { "order_count": 70, "date": 1490918400000, "holiday": false },
88
+ { "order_count": 68, "date": 1491004800000, "holiday": false },
89
+ { "order_count": 65, "date": 1491091200000, "holiday": false },
90
+ { "order_count": 72, "date": 1491177600000, "holiday": false },
91
+ { "order_count": 96, "date": 1491264000000, "holiday": false },
92
+ { "order_count": 96, "date": 1491350400000, "holiday": false },
93
+ { "order_count": 96, "date": 1491436800000, "holiday": false },
94
+ { "order_count": 85, "date": 1491523200000, "holiday": false },
95
+ { "order_count": 68, "date": 1491609600000, "holiday": false },
96
+ { "order_count": 73, "date": 1491696000000, "holiday": false },
97
+ { "order_count": 87, "date": 1491782400000, "holiday": false },
98
+ { "order_count": 78, "date": 1491868800000, "holiday": false },
99
+ { "order_count": 63, "date": 1491955200000, "holiday": false },
100
+ { "order_count": 60, "date": 1492041600000, "holiday": false },
101
+ { "order_count": 54, "date": 1492128000000, "holiday": true },
102
+ { "order_count": 52, "date": 1492214400000, "holiday": false },
103
+ { "order_count": 49, "date": 1492300800000, "holiday": true },
104
+ { "order_count": 65, "date": 1492387200000, "holiday": false },
105
+ { "order_count": 71, "date": 1492473600000, "holiday": false },
106
+ { "order_count": 97, "date": 1492560000000, "holiday": false },
107
+ { "order_count": 98, "date": 1492646400000, "holiday": false },
108
+ { "order_count": 68, "date": 1492732800000, "holiday": true },
109
+ { "order_count": 84, "date": 1492819200000, "holiday": false },
110
+ { "order_count": 88, "date": 1492905600000, "holiday": false },
111
+ { "order_count": 115, "date": 1492992000000, "holiday": false },
112
+ { "order_count": 111, "date": 1493078400000, "holiday": false },
113
+ { "order_count": 125, "date": 1493164800000, "holiday": false },
114
+ { "order_count": 80, "date": 1493251200000, "holiday": false },
115
+ { "order_count": 98, "date": 1493337600000, "holiday": false },
116
+ { "order_count": 74, "date": 1493424000000, "holiday": false },
117
+ { "order_count": 68, "date": 1493510400000, "holiday": false },
118
+ { "order_count": 117, "date": 1493596800000, "holiday": true },
119
+ { "order_count": 128, "date": 1493683200000, "holiday": false },
120
+ { "order_count": 103, "date": 1493769600000, "holiday": false },
121
+ { "order_count": 109, "date": 1493856000000, "holiday": false },
122
+ { "order_count": 111, "date": 1493942400000, "holiday": false },
123
+ { "order_count": 109, "date": 1494028800000, "holiday": false },
124
+ { "order_count": 111, "date": 1494115200000, "holiday": false },
125
+ { "order_count": 124, "date": 1494201600000, "holiday": false },
126
+ { "order_count": 128, "date": 1494288000000, "holiday": false },
127
+ { "order_count": 116, "date": 1494374400000, "holiday": false },
128
+ { "order_count": 126, "date": 1494460800000, "holiday": false },
129
+ { "order_count": 115, "date": 1494547200000, "holiday": false },
130
+ { "order_count": 73, "date": 1494633600000, "holiday": false },
131
+ { "order_count": 112, "date": 1494720000000, "holiday": false },
132
+ { "order_count": 157, "date": 1494806400000, "holiday": false },
133
+ { "order_count": 153, "date": 1494892800000, "holiday": false },
134
+ { "order_count": 141, "date": 1494979200000, "holiday": false },
135
+ { "order_count": 125, "date": 1495065600000, "holiday": false },
136
+ { "order_count": 144, "date": 1495152000000, "holiday": false },
137
+ { "order_count": 72, "date": 1495238400000, "holiday": false },
138
+ { "order_count": 148, "date": 1495324800000, "holiday": false },
139
+ { "order_count": 148, "date": 1495411200000, "holiday": false },
140
+ { "order_count": 125, "date": 1495497600000, "holiday": false },
141
+ { "order_count": 142, "date": 1495584000000, "holiday": false },
142
+ { "order_count": 108, "date": 1495670400000, "holiday": false },
143
+ { "order_count": 80, "date": 1495756800000, "holiday": false },
144
+ { "order_count": 83, "date": 1495843200000, "holiday": false },
145
+ { "order_count": 98, "date": 1495929600000, "holiday": false },
146
+ { "order_count": 160, "date": 1496016000000, "holiday": false },
147
+ { "order_count": 105, "date": 1496102400000, "holiday": false },
148
+ { "order_count": 129, "date": 1496188800000, "holiday": false },
149
+ { "order_count": 124, "date": 1496275200000, "holiday": false },
150
+ { "order_count": 127, "date": 1496361600000, "holiday": false },
151
+ { "order_count": 89, "date": 1496448000000, "holiday": false },
152
+ { "order_count": 102, "date": 1496534400000, "holiday": false },
153
+ { "order_count": 147, "date": 1496620800000, "holiday": false },
154
+ { "order_count": 134, "date": 1496707200000, "holiday": false },
155
+ { "order_count": 129, "date": 1496793600000, "holiday": false },
156
+ { "order_count": 137, "date": 1496880000000, "holiday": false },
157
+ { "order_count": 108, "date": 1496966400000, "holiday": false },
158
+ { "order_count": 77, "date": 1497052800000, "holiday": false },
159
+ { "order_count": 115, "date": 1497139200000, "holiday": false },
160
+ { "order_count": 126, "date": 1497225600000, "holiday": false },
161
+ { "order_count": 126, "date": 1497312000000, "holiday": false },
162
+ { "order_count": 131, "date": 1497398400000, "holiday": false },
163
+ { "order_count": 108, "date": 1497484800000, "holiday": true },
164
+ { "order_count": 97, "date": 1497571200000, "holiday": false },
165
+ { "order_count": 75, "date": 1497657600000, "holiday": false },
166
+ { "order_count": 90, "date": 1497744000000, "holiday": false },
167
+ { "order_count": 156, "date": 1497830400000, "holiday": false },
168
+ { "order_count": 94, "date": 1497916800000, "holiday": false },
169
+ { "order_count": 35, "date": 1498003200000, "holiday": false },
170
+ { "order_count": 88, "date": 1498089600000, "holiday": false },
171
+ { "order_count": 107, "date": 1498176000000, "holiday": false },
172
+ { "order_count": 76, "date": 1498262400000, "holiday": false },
173
+ { "order_count": 105, "date": 1498348800000, "holiday": false },
174
+ { "order_count": 72, "date": 1498435200000, "holiday": false },
175
+ { "order_count": 141, "date": 1498521600000, "holiday": false },
176
+ { "order_count": 120, "date": 1498608000000, "holiday": false },
177
+ { "order_count": 114, "date": 1498694400000, "holiday": false },
178
+ { "order_count": 95, "date": 1498780800000, "holiday": false },
179
+ { "order_count": 80, "date": 1498867200000, "holiday": false },
180
+ { "order_count": 108, "date": 1498953600000, "holiday": false },
181
+ { "order_count": 118, "date": 1499040000000, "holiday": false },
182
+ { "order_count": 125, "date": 1499126400000, "holiday": false },
183
+ { "order_count": 145, "date": 1499212800000, "holiday": false },
184
+ { "order_count": 154, "date": 1499299200000, "holiday": false },
185
+ { "order_count": 121, "date": 1499385600000, "holiday": false },
186
+ { "order_count": 84, "date": 1499472000000, "holiday": false },
187
+ { "order_count": 94, "date": 1499558400000, "holiday": true },
188
+ { "order_count": 143, "date": 1499644800000, "holiday": false },
189
+ { "order_count": 165, "date": 1499731200000, "holiday": false },
190
+ { "order_count": 153, "date": 1499817600000, "holiday": false },
191
+ { "order_count": 137, "date": 1499904000000, "holiday": false },
192
+ { "order_count": 149, "date": 1499990400000, "holiday": false },
193
+ { "order_count": 98, "date": 1500076800000, "holiday": false },
194
+ { "order_count": 114, "date": 1500163200000, "holiday": false },
195
+ { "order_count": 168, "date": 1500249600000, "holiday": false },
196
+ { "order_count": 192, "date": 1500336000000, "holiday": false },
197
+ { "order_count": 153, "date": 1500422400000, "holiday": false },
198
+ { "order_count": 142, "date": 1500508800000, "holiday": false },
199
+ { "order_count": 115, "date": 1500595200000, "holiday": false },
200
+ { "order_count": 88, "date": 1500681600000, "holiday": false },
201
+ { "order_count": 105, "date": 1500768000000, "holiday": false },
202
+ { "order_count": 162, "date": 1500854400000, "holiday": false },
203
+ { "order_count": 153, "date": 1500940800000, "holiday": false },
204
+ { "order_count": 124, "date": 1501027200000, "holiday": false },
205
+ { "order_count": 124, "date": 1501113600000, "holiday": false },
206
+ { "order_count": 132, "date": 1501200000000, "holiday": false },
207
+ { "order_count": 115, "date": 1501286400000, "holiday": false },
208
+ { "order_count": 117, "date": 1501372800000, "holiday": false },
209
+ { "order_count": 148, "date": 1501459200000, "holiday": false },
210
+ { "order_count": 165, "date": 1501545600000, "holiday": false },
211
+ { "order_count": 157, "date": 1501632000000, "holiday": false },
212
+ { "order_count": 148, "date": 1501718400000, "holiday": false },
213
+ { "order_count": 142, "date": 1501804800000, "holiday": false },
214
+ { "order_count": 115, "date": 1501891200000, "holiday": false },
215
+ { "order_count": 109, "date": 1501977600000, "holiday": false },
216
+ { "order_count": 157, "date": 1502064000000, "holiday": false },
217
+ { "order_count": 146, "date": 1502150400000, "holiday": false },
218
+ { "order_count": 144, "date": 1502236800000, "holiday": false },
219
+ { "order_count": 157, "date": 1502323200000, "holiday": false },
220
+ { "order_count": 141, "date": 1502409600000, "holiday": false },
221
+ { "order_count": 98, "date": 1502496000000, "holiday": false },
222
+ { "order_count": 96, "date": 1502582400000, "holiday": false },
223
+ { "order_count": 159, "date": 1502668800000, "holiday": false },
224
+ { "order_count": 194, "date": 1502755200000, "holiday": false },
225
+ { "order_count": 174, "date": 1502841600000, "holiday": false },
226
+ { "order_count": 158, "date": 1502928000000, "holiday": false },
227
+ { "order_count": 147, "date": 1503014400000, "holiday": false },
228
+ { "order_count": 108, "date": 1503100800000, "holiday": false },
229
+ { "order_count": 104, "date": 1503187200000, "holiday": false },
230
+ { "order_count": 177, "date": 1503273600000, "holiday": false },
231
+ { "order_count": 138, "date": 1503360000000, "holiday": false },
232
+ { "order_count": 112, "date": 1503446400000, "holiday": false },
233
+ { "order_count": 128, "date": 1503532800000, "holiday": false },
234
+ { "order_count": 123, "date": 1503619200000, "holiday": false },
235
+ { "order_count": 93, "date": 1503705600000, "holiday": false },
236
+ { "order_count": 119, "date": 1503792000000, "holiday": false },
237
+ { "order_count": 155, "date": 1503878400000, "holiday": false },
238
+ { "order_count": 137, "date": 1503964800000, "holiday": false },
239
+ { "order_count": 181, "date": 1504051200000, "holiday": false },
240
+ { "order_count": 149, "date": 1504137600000, "holiday": false },
241
+ { "order_count": 158, "date": 1504224000000, "holiday": false },
242
+ { "order_count": 104, "date": 1504310400000, "holiday": false },
243
+ { "order_count": 125, "date": 1504396800000, "holiday": false },
244
+ { "order_count": 150, "date": 1504483200000, "holiday": false },
245
+ { "order_count": 157, "date": 1504569600000, "holiday": false },
246
+ { "order_count": 140, "date": 1504656000000, "holiday": false },
247
+ { "order_count": 99, "date": 1504742400000, "holiday": true },
248
+ { "order_count": 116, "date": 1504828800000, "holiday": false },
249
+ { "order_count": 106, "date": 1504915200000, "holiday": false },
250
+ { "order_count": 136, "date": 1505001600000, "holiday": false },
251
+ { "order_count": 180, "date": 1505088000000, "holiday": false },
252
+ { "order_count": 206, "date": 1505174400000, "holiday": false },
253
+ { "order_count": 207, "date": 1505260800000, "holiday": false },
254
+ { "order_count": 166, "date": 1505347200000, "holiday": false },
255
+ { "order_count": 150, "date": 1505433600000, "holiday": false },
256
+ { "order_count": 129, "date": 1505520000000, "holiday": false },
257
+ { "order_count": 126, "date": 1505606400000, "holiday": false },
258
+ { "order_count": 183, "date": 1505692800000, "holiday": false },
259
+ { "order_count": 154, "date": 1505779200000, "holiday": false },
260
+ { "order_count": 163, "date": 1505865600000, "holiday": false },
261
+ { "order_count": 150, "date": 1505952000000, "holiday": false },
262
+ { "order_count": 138, "date": 1506038400000, "holiday": false },
263
+ { "order_count": 88, "date": 1506124800000, "holiday": false },
264
+ { "order_count": 118, "date": 1506211200000, "holiday": false },
265
+ { "order_count": 136, "date": 1506297600000, "holiday": false },
266
+ { "order_count": 180, "date": 1506384000000, "holiday": false },
267
+ { "order_count": 147, "date": 1506470400000, "holiday": false },
268
+ { "order_count": 143, "date": 1506556800000, "holiday": false },
269
+ { "order_count": 121, "date": 1506643200000, "holiday": false },
270
+ { "order_count": 109, "date": 1506729600000, "holiday": false },
271
+ { "order_count": 128, "date": 1506816000000, "holiday": false },
272
+ { "order_count": 143, "date": 1506902400000, "holiday": false },
273
+ { "order_count": 198, "date": 1506988800000, "holiday": false },
274
+ { "order_count": 157, "date": 1507075200000, "holiday": false },
275
+ { "order_count": 140, "date": 1507161600000, "holiday": false },
276
+ { "order_count": 130, "date": 1507248000000, "holiday": false },
277
+ { "order_count": 105, "date": 1507334400000, "holiday": false },
278
+ { "order_count": 126, "date": 1507420800000, "holiday": false },
279
+ { "order_count": 193, "date": 1507507200000, "holiday": false },
280
+ { "order_count": 185, "date": 1507593600000, "holiday": false },
281
+ { "order_count": 158, "date": 1507680000000, "holiday": false },
282
+ { "order_count": 143, "date": 1507766400000, "holiday": true },
283
+ { "order_count": 154, "date": 1507852800000, "holiday": false },
284
+ { "order_count": 116, "date": 1507939200000, "holiday": false },
285
+ { "order_count": 121, "date": 1508025600000, "holiday": false },
286
+ { "order_count": 195, "date": 1508112000000, "holiday": false },
287
+ { "order_count": 202, "date": 1508198400000, "holiday": false },
288
+ { "order_count": 179, "date": 1508284800000, "holiday": false },
289
+ { "order_count": 176, "date": 1508371200000, "holiday": false },
290
+ { "order_count": 124, "date": 1508457600000, "holiday": false },
291
+ { "order_count": 113, "date": 1508544000000, "holiday": false },
292
+ { "order_count": 158, "date": 1508630400000, "holiday": false },
293
+ { "order_count": 161, "date": 1508716800000, "holiday": false },
294
+ { "order_count": 164, "date": 1508803200000, "holiday": false },
295
+ { "order_count": 156, "date": 1508889600000, "holiday": false },
296
+ { "order_count": 144, "date": 1508976000000, "holiday": false },
297
+ { "order_count": 133, "date": 1509062400000, "holiday": false },
298
+ { "order_count": 88, "date": 1509148800000, "holiday": false },
299
+ { "order_count": 132, "date": 1509235200000, "holiday": false },
300
+ { "order_count": 149, "date": 1509321600000, "holiday": false },
301
+ { "order_count": 160, "date": 1509408000000, "holiday": false },
302
+ { "order_count": 111, "date": 1509494400000, "holiday": false },
303
+ { "order_count": 124, "date": 1509580800000, "holiday": true },
304
+ { "order_count": 143, "date": 1509667200000, "holiday": false },
305
+ { "order_count": 111, "date": 1509753600000, "holiday": false },
306
+ { "order_count": 144, "date": 1509840000000, "holiday": false },
307
+ { "order_count": 193, "date": 1509926400000, "holiday": false },
308
+ { "order_count": 160, "date": 1510012800000, "holiday": false },
309
+ { "order_count": 175, "date": 1510099200000, "holiday": false },
310
+ { "order_count": 191, "date": 1510185600000, "holiday": false },
311
+ { "order_count": 165, "date": 1510272000000, "holiday": false },
312
+ { "order_count": 159, "date": 1510358400000, "holiday": false },
313
+ { "order_count": 174, "date": 1510444800000, "holiday": false },
314
+ { "order_count": 205, "date": 1510531200000, "holiday": false },
315
+ { "order_count": 192, "date": 1510617600000, "holiday": false },
316
+ { "order_count": 186, "date": 1510704000000, "holiday": true },
317
+ { "order_count": 226, "date": 1510790400000, "holiday": false },
318
+ { "order_count": 197, "date": 1510876800000, "holiday": false },
319
+ { "order_count": 149, "date": 1510963200000, "holiday": false },
320
+ { "order_count": 158, "date": 1511049600000, "holiday": false },
321
+ { "order_count": 230, "date": 1511136000000, "holiday": false },
322
+ { "order_count": 228, "date": 1511222400000, "holiday": false },
323
+ { "order_count": 201, "date": 1511308800000, "holiday": false },
324
+ { "order_count": 283, "date": 1511395200000, "holiday": false },
325
+ { "order_count": 1176, "date": 1511481600000, "holiday": false },
326
+ { "order_count": 499, "date": 1511568000000, "holiday": false },
327
+ { "order_count": 391, "date": 1511654400000, "holiday": false },
328
+ { "order_count": 403, "date": 1511740800000, "holiday": false },
329
+ { "order_count": 380, "date": 1511827200000, "holiday": false },
330
+ { "order_count": 323, "date": 1511913600000, "holiday": false },
331
+ { "order_count": 267, "date": 1512000000000, "holiday": false },
332
+ { "order_count": 275, "date": 1512086400000, "holiday": false },
333
+ { "order_count": 216, "date": 1512172800000, "holiday": false },
334
+ { "order_count": 234, "date": 1512259200000, "holiday": false },
335
+ { "order_count": 337, "date": 1512345600000, "holiday": false },
336
+ { "order_count": 282, "date": 1512432000000, "holiday": false },
337
+ { "order_count": 280, "date": 1512518400000, "holiday": false },
338
+ { "order_count": 229, "date": 1512604800000, "holiday": false },
339
+ { "order_count": 219, "date": 1512691200000, "holiday": false },
340
+ { "order_count": 155, "date": 1512777600000, "holiday": false },
341
+ { "order_count": 190, "date": 1512864000000, "holiday": false },
342
+ { "order_count": 267, "date": 1512950400000, "holiday": false },
343
+ { "order_count": 260, "date": 1513036800000, "holiday": false },
344
+ { "order_count": 218, "date": 1513123200000, "holiday": false },
345
+ { "order_count": 200, "date": 1513209600000, "holiday": false },
346
+ { "order_count": 192, "date": 1513296000000, "holiday": false },
347
+ { "order_count": 131, "date": 1513382400000, "holiday": false },
348
+ { "order_count": 133, "date": 1513468800000, "holiday": false },
349
+ { "order_count": 209, "date": 1513555200000, "holiday": false },
350
+ { "order_count": 176, "date": 1513641600000, "holiday": false },
351
+ { "order_count": 171, "date": 1513728000000, "holiday": false },
352
+ { "order_count": 143, "date": 1513814400000, "holiday": false },
353
+ { "order_count": 111, "date": 1513900800000, "holiday": false },
354
+ { "order_count": 109, "date": 1513987200000, "holiday": false },
355
+ { "order_count": 59, "date": 1514073600000, "holiday": false },
356
+ { "order_count": 90, "date": 1514160000000, "holiday": true },
357
+ { "order_count": 168, "date": 1514246400000, "holiday": false },
358
+ { "order_count": 167, "date": 1514332800000, "holiday": false },
359
+ { "order_count": 146, "date": 1514419200000, "holiday": false },
360
+ { "order_count": 135, "date": 1514505600000, "holiday": false },
361
+ { "order_count": 97, "date": 1514592000000, "holiday": false },
362
+ { "order_count": 74, "date": 1514678400000, "holiday": false }
363
+ ]
tests/query_results/real_vs_estimated_delivered_time.json ADDED
@@ -0,0 +1,122 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "month_no": "01",
4
+ "month": "Jan",
5
+ "Year2016_real_time": null,
6
+ "Year2017_real_time": 12.6470435185,
7
+ "Year2018_real_time": 14.080562614,
8
+ "Year2016_estimated_time": null,
9
+ "Year2017_estimated_time": 39.5088310185,
10
+ "Year2018_estimated_time": 26.302555421
11
+ },
12
+ {
13
+ "month_no": "02",
14
+ "month": "Feb",
15
+ "Year2016_real_time": null,
16
+ "Year2017_real_time": 13.168825249,
17
+ "Year2018_real_time": 16.9451375682,
18
+ "Year2016_estimated_time": null,
19
+ "Year2017_estimated_time": 31.8489294787,
20
+ "Year2018_estimated_time": 24.5289960502
21
+ },
22
+ {
23
+ "month_no": "03",
24
+ "month": "Mar",
25
+ "Year2016_real_time": null,
26
+ "Year2017_real_time": 12.9511844878,
27
+ "Year2018_real_time": 16.3014101744,
28
+ "Year2016_estimated_time": null,
29
+ "Year2017_estimated_time": 24.7323864777,
30
+ "Year2018_estimated_time": 22.0330668073
31
+ },
32
+ {
33
+ "month_no": "04",
34
+ "month": "Apr",
35
+ "Year2016_real_time": null,
36
+ "Year2017_real_time": 14.9179125004,
37
+ "Year2018_real_time": 11.4992410537,
38
+ "Year2016_estimated_time": null,
39
+ "Year2017_estimated_time": 27.3498102013,
40
+ "Year2018_estimated_time": 23.6795464148
41
+ },
42
+ {
43
+ "month_no": "05",
44
+ "month": "May",
45
+ "Year2016_real_time": null,
46
+ "Year2017_real_time": 11.3223629754,
47
+ "Year2018_real_time": 11.4190289354,
48
+ "Year2016_estimated_time": null,
49
+ "Year2017_estimated_time": 24.2847835534,
50
+ "Year2018_estimated_time": 22.8914882657
51
+ },
52
+ {
53
+ "month_no": "06",
54
+ "month": "Jun",
55
+ "Year2016_real_time": null,
56
+ "Year2017_real_time": 12.0115727044,
57
+ "Year2018_real_time": 9.2392162932,
58
+ "Year2016_estimated_time": null,
59
+ "Year2017_estimated_time": 24.021864408,
60
+ "Year2018_estimated_time": 27.7727400937
61
+ },
62
+ {
63
+ "month_no": "07",
64
+ "month": "Jul",
65
+ "Year2016_real_time": null,
66
+ "Year2017_real_time": 11.5927323872,
67
+ "Year2018_real_time": 8.9586362372,
68
+ "Year2016_estimated_time": null,
69
+ "Year2017_estimated_time": 23.3173160613,
70
+ "Year2018_estimated_time": 19.6901265308
71
+ },
72
+ {
73
+ "month_no": "08",
74
+ "month": "Aug",
75
+ "Year2016_real_time": null,
76
+ "Year2017_real_time": 11.1471246555,
77
+ "Year2018_real_time": 7.7327797205,
78
+ "Year2016_estimated_time": null,
79
+ "Year2017_estimated_time": 23.4806027434,
80
+ "Year2018_estimated_time": 15.1863302039
81
+ },
82
+ {
83
+ "month_no": "09",
84
+ "month": "Sep",
85
+ "Year2016_real_time": 54.8131944444,
86
+ "Year2017_real_time": 11.8510065289,
87
+ "Year2018_real_time": null,
88
+ "Year2016_estimated_time": 18.4884490739,
89
+ "Year2017_estimated_time": 22.4373663348,
90
+ "Year2018_estimated_time": null
91
+ },
92
+ {
93
+ "month_no": "10",
94
+ "month": "Oct",
95
+ "Year2016_real_time": 19.6005587875,
96
+ "Year2017_real_time": 11.8566996985,
97
+ "Year2018_real_time": null,
98
+ "Year2016_estimated_time": 55.6766319881,
99
+ "Year2017_estimated_time": 23.0195358171,
100
+ "Year2018_estimated_time": null
101
+ },
102
+ {
103
+ "month_no": "11",
104
+ "month": "Nov",
105
+ "Year2016_real_time": null,
106
+ "Year2017_real_time": 15.1611316992,
107
+ "Year2018_real_time": null,
108
+ "Year2016_estimated_time": null,
109
+ "Year2017_estimated_time": 22.5607520147,
110
+ "Year2018_estimated_time": null
111
+ },
112
+ {
113
+ "month_no": "12",
114
+ "month": "Dec",
115
+ "Year2016_real_time": 4.6930208337,
116
+ "Year2017_real_time": 15.3949185301,
117
+ "Year2018_real_time": null,
118
+ "Year2016_estimated_time": 26.0300115743,
119
+ "Year2017_estimated_time": 27.6813399641,
120
+ "Year2018_estimated_time": null
121
+ }
122
+ ]
tests/query_results/revenue_by_month_year.json ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "month_no": "01",
4
+ "month": "Jan",
5
+ "Year2016": 0.0,
6
+ "Year2017": 37632.57,
7
+ "Year2018": 969967.8000000026
8
+ },
9
+ {
10
+ "month_no": "02",
11
+ "month": "Feb",
12
+ "Year2016": 0.0,
13
+ "Year2017": 222270.7499999996,
14
+ "Year2018": 853616.8200000001
15
+ },
16
+ {
17
+ "month_no": "03",
18
+ "month": "Mar",
19
+ "Year2016": 0.0,
20
+ "Year2017": 376833.720000001,
21
+ "Year2018": 1024851.949999999
22
+ },
23
+ {
24
+ "month_no": "04",
25
+ "month": "Apr",
26
+ "Year2016": 0.0,
27
+ "Year2017": 299798.4500000001,
28
+ "Year2018": 1274742.1799999899
29
+ },
30
+ {
31
+ "month_no": "05",
32
+ "month": "May",
33
+ "Year2016": 0.0,
34
+ "Year2017": 579280.4300000027,
35
+ "Year2018": 1150528.9299999974
36
+ },
37
+ {
38
+ "month_no": "06",
39
+ "month": "Jun",
40
+ "Year2016": 0.0,
41
+ "Year2017": 489463.420000003,
42
+ "Year2018": 1141543.8499999994
43
+ },
44
+ {
45
+ "month_no": "07",
46
+ "month": "Jul",
47
+ "Year2016": 0.0,
48
+ "Year2017": 518115.1900000033,
49
+ "Year2018": 925958.7900000032
50
+ },
51
+ {
52
+ "month_no": "08",
53
+ "month": "Aug",
54
+ "Year2016": 0.0,
55
+ "Year2017": 609180.3400000022,
56
+ "Year2018": 1319737.6599999934
57
+ },
58
+ {
59
+ "month_no": "09",
60
+ "month": "Sep",
61
+ "Year2016": 0.0,
62
+ "Year2017": 652576.4800000003,
63
+ "Year2018": 12875.18
64
+ },
65
+ {
66
+ "month_no": "10",
67
+ "month": "Oct",
68
+ "Year2016": 34116.28,
69
+ "Year2017": 740570.3999999999,
70
+ "Year2018": 347.95
71
+ },
72
+ {
73
+ "month_no": "11",
74
+ "month": "Nov",
75
+ "Year2016": 10734.64,
76
+ "Year2017": 733047.3300000001,
77
+ "Year2018": 0.0
78
+ },
79
+ {
80
+ "month_no": "12",
81
+ "month": "Dec",
82
+ "Year2016": 960.85,
83
+ "Year2017": 1082600.6899999967,
84
+ "Year2018": 0.0
85
+ }
86
+ ]
tests/query_results/revenue_per_state.json ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ { "customer_state": "SP", "Revenue": 5769081.2699999018 },
3
+ { "customer_state": "RJ", "Revenue": 2055690.4499999913 },
4
+ { "customer_state": "MG", "Revenue": 1819277.6100000101 },
5
+ { "customer_state": "RS", "Revenue": 861608.3999999964 },
6
+ { "customer_state": "PR", "Revenue": 781919.5499999981 },
7
+ { "customer_state": "SC", "Revenue": 595208.4000000015 },
8
+ { "customer_state": "BA", "Revenue": 591270.6000000015 },
9
+ { "customer_state": "DF", "Revenue": 346146.17 },
10
+ { "customer_state": "GO", "Revenue": 334294.2200000007 },
11
+ { "customer_state": "ES", "Revenue": 317682.6500000007 }
12
+ ]
tests/query_results/top_10_least_revenue_categories.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ { "Category": "security_and_services", "Num_order": 2, "Revenue": 324.51 },
3
+ {
4
+ "Category": "fashion_childrens_clothes",
5
+ "Num_order": 7,
6
+ "Revenue": 718.98
7
+ },
8
+ { "Category": "cds_dvds_musicals", "Num_order": 12, "Revenue": 1199.43 },
9
+ { "Category": "home_comfort_2", "Num_order": 24, "Revenue": 1710.54 },
10
+ { "Category": "flowers", "Num_order": 29, "Revenue": 2213.01 },
11
+ { "Category": "arts_and_craftmanship", "Num_order": 23, "Revenue": 2326.17 },
12
+ { "Category": "la_cuisine", "Num_order": 13, "Revenue": 2913.53 },
13
+ { "Category": "fashion_sport", "Num_order": 26, "Revenue": 3605.83 },
14
+ { "Category": "diapers_and_hygiene", "Num_order": 25, "Revenue": 4126.17 },
15
+ { "Category": "fashio_female_clothing", "Num_order": 36, "Revenue": 4902.67 }
16
+ ]
tests/query_results/top_10_revenue_categories.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "Category": "bed_bath_table",
4
+ "Num_order": 9272,
5
+ "Revenue": 1692714.2800000086
6
+ },
7
+ {
8
+ "Category": "health_beauty",
9
+ "Num_order": 8646,
10
+ "Revenue": 1620684.0400000084
11
+ },
12
+ {
13
+ "Category": "computers_accessories",
14
+ "Num_order": 6529,
15
+ "Revenue": 1549252.4700000042
16
+ },
17
+ {
18
+ "Category": "furniture_decor",
19
+ "Num_order": 6307,
20
+ "Revenue": 1394466.9300000106
21
+ },
22
+ {
23
+ "Category": "watches_gifts",
24
+ "Num_order": 5493,
25
+ "Revenue": 1387046.3100000028
26
+ },
27
+ {
28
+ "Category": "sports_leisure",
29
+ "Num_order": 7529,
30
+ "Revenue": 1349252.9299999934
31
+ },
32
+ {
33
+ "Category": "housewares",
34
+ "Num_order": 5743,
35
+ "Revenue": 1069787.9699999972
36
+ },
37
+ { "Category": "auto", "Num_order": 3809, "Revenue": 833610.8400000002 },
38
+ {
39
+ "Category": "garden_tools",
40
+ "Num_order": 3448,
41
+ "Revenue": 810614.9299999997
42
+ },
43
+ { "Category": "cool_stuff", "Num_order": 3559, "Revenue": 744649.3200000004 }
44
+ ]
tests/test_extract.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from src.config import DATASET_ROOT_PATH, PUBLIC_HOLIDAYS_URL, get_csv_to_table_mapping
2
+ from src.extract import extract, get_public_holidays
3
+
4
+
5
+ def test_get_public_holidays():
6
+ """Test the get_public_holidays function."""
7
+ year = "2017"
8
+ public_holidays = get_public_holidays(PUBLIC_HOLIDAYS_URL, year)
9
+ assert public_holidays.shape == (14, 7)
10
+ assert public_holidays["date"].dtype == "datetime64[ns]"
11
+
12
+
13
+ def test_extract():
14
+ """Test the extract function."""
15
+ csv_folder = DATASET_ROOT_PATH
16
+ csv_table_mapping = get_csv_to_table_mapping()
17
+ public_holidays_url = PUBLIC_HOLIDAYS_URL
18
+ dataframes = extract(csv_folder, csv_table_mapping, public_holidays_url)
19
+ assert len(dataframes) == len(csv_table_mapping) + 1
20
+ assert dataframes["public_holidays"].shape == (14, 7)
21
+ assert dataframes["olist_customers"].shape == (99441, 5)
22
+ assert dataframes["olist_geolocation"].shape == (1000163, 5)
23
+ assert dataframes["olist_order_items"].shape == (112650, 7)
24
+ assert dataframes["olist_order_payments"].shape == (103886, 5)
25
+ assert dataframes["olist_order_reviews"].shape == (99224, 7)
26
+ assert dataframes["olist_orders"].shape == (99441, 8)
27
+ assert dataframes["olist_products"].shape == (32951, 9)
28
+ assert dataframes["olist_sellers"].shape == (3095, 4)
29
+ assert dataframes["product_category_name_translation"].shape == (71, 2)
tests/test_transform.py ADDED
@@ -0,0 +1,214 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import math
3
+
4
+ import pandas as pd
5
+ from pytest import fixture
6
+ from sqlalchemy import create_engine
7
+ from sqlalchemy.engine.base import Engine
8
+
9
+ from src.config import (
10
+ DATASET_ROOT_PATH,
11
+ PUBLIC_HOLIDAYS_URL,
12
+ QUERY_RESULTS_ROOT_PATH,
13
+ get_csv_to_table_mapping,
14
+ )
15
+ from src.extract import extract
16
+ from src.load import load
17
+ from src.transform import (
18
+ QueryResult,
19
+ query_delivery_date_difference,
20
+ query_freight_value_weight_relationship,
21
+ query_global_amount_order_status,
22
+ query_orders_per_day_and_holidays_2017,
23
+ query_real_vs_estimated_delivered_time,
24
+ query_revenue_by_month_year,
25
+ query_revenue_per_state,
26
+ query_top_10_least_revenue_categories,
27
+ query_top_10_revenue_categories,
28
+ )
29
+
30
+ TOLERANCE = 0.1
31
+
32
+
33
+ def to_float(objs, year_col):
34
+ return list(map(lambda obj: float(obj[year_col]) if obj[year_col] else 0.0, objs))
35
+
36
+
37
+ def float_vectors_are_close(a: list, b: list, tolerance: float = TOLERANCE) -> bool:
38
+ """Check if two vectors of floats are close.
39
+ Args:
40
+ a (list): The first vector.
41
+ b (list): The second vector.
42
+ tolerance (float): The tolerance.
43
+ Returns:
44
+ bool: True if the vectors are close, False otherwise.
45
+ """
46
+ return all([math.isclose(a[i], b[i], abs_tol=tolerance) for i in range(len(a))])
47
+
48
+
49
+ @fixture(scope="session", autouse=True)
50
+ def database() -> Engine:
51
+ """Initialize the database for testing."""
52
+ engine = create_engine("sqlite://")
53
+ csv_folder = DATASET_ROOT_PATH
54
+ public_holidays_url = PUBLIC_HOLIDAYS_URL
55
+ csv_table_mapping = get_csv_to_table_mapping()
56
+ csv_dataframes = extract(csv_folder, csv_table_mapping, public_holidays_url)
57
+ load(dataframes=csv_dataframes, database=engine)
58
+ return engine
59
+
60
+
61
+ def read_query_result(query_name: str) -> dict:
62
+ """Read the query from the json file.
63
+ Args:
64
+ query_name (str): The name of the query.
65
+ Returns:
66
+ dict: The query as a dictionary.
67
+ """
68
+ with open(f"{QUERY_RESULTS_ROOT_PATH}/{query_name}.json", "r") as f:
69
+ query_result = json.load(f)
70
+
71
+ return query_result
72
+
73
+
74
+ def pandas_to_json_object(df: pd.DataFrame) -> dict:
75
+ """Convert pandas dataframe to json object.
76
+ Args:
77
+ df (pd.DataFrame): The dataframe.
78
+ Returns:
79
+ dict: The dataframe as a json object.
80
+ """
81
+ return json.loads(df.to_json(orient="records"))
82
+
83
+
84
+ def test_query_revenue_by_month_year(database: Engine):
85
+ query_name = "revenue_by_month_year"
86
+ actual = pandas_to_json_object(query_revenue_by_month_year(database).result)
87
+ expected = read_query_result(query_name)
88
+
89
+ def to_float(objs, year_col):
90
+ return list(
91
+ map(lambda obj: float(obj[year_col]) if obj[year_col] else 0.0, objs)
92
+ )
93
+
94
+ assert len(actual) == len(expected)
95
+ assert [obj["month_no"] for obj in actual] == [obj["month_no"] for obj in expected]
96
+ assert float_vectors_are_close(
97
+ to_float(actual, "Year2016"), to_float(expected, "Year2016")
98
+ )
99
+ assert float_vectors_are_close(
100
+ to_float(actual, "Year2017"), to_float(expected, "Year2017")
101
+ )
102
+ assert float_vectors_are_close(
103
+ to_float(actual, "Year2018"), to_float(expected, "Year2018")
104
+ )
105
+ assert list(actual[0].keys()) == list(expected[0].keys())
106
+
107
+
108
+ def test_query_delivery_date_difference(database: Engine):
109
+ query_name = "delivery_date_difference"
110
+ actual: QueryResult = query_delivery_date_difference(database)
111
+ expected = read_query_result(query_name)
112
+ assert pandas_to_json_object(actual.result) == expected
113
+
114
+
115
+ def test_query_global_amount_order_status(database: Engine):
116
+ query_name = "global_amount_order_status"
117
+ actual: QueryResult = query_global_amount_order_status(database)
118
+ expected = read_query_result(query_name)
119
+ assert pandas_to_json_object(actual.result) == expected
120
+
121
+
122
+ def test_query_revenue_per_state(database: Engine):
123
+ query_name = "revenue_per_state"
124
+ actual = pandas_to_json_object(query_revenue_per_state(database).result)
125
+ expected = read_query_result(query_name)
126
+ assert len(actual) == len(expected)
127
+ assert list(actual[0].keys()) == list(expected[0].keys())
128
+ assert float_vectors_are_close(
129
+ [obj["Revenue"] for obj in actual], [obj["Revenue"] for obj in expected]
130
+ )
131
+
132
+
133
+ def test_query_top_10_least_revenue_categories(database: Engine):
134
+ query_name = "top_10_least_revenue_categories"
135
+ actual = pandas_to_json_object(
136
+ query_top_10_least_revenue_categories(database).result
137
+ )
138
+ expected = read_query_result(query_name)
139
+ assert len(actual) == len(expected)
140
+ assert list(actual[0].keys()) == list(expected[0].keys())
141
+ assert [obj["Category"] for obj in actual] == [obj["Category"] for obj in expected]
142
+ assert [obj["Num_order"] for obj in actual] == [
143
+ obj["Num_order"] for obj in expected
144
+ ]
145
+ assert float_vectors_are_close(
146
+ [obj["Revenue"] for obj in actual], [obj["Revenue"] for obj in expected]
147
+ )
148
+
149
+
150
+ def test_query_top_10_revenue_categories(database: Engine):
151
+ query_name = "top_10_revenue_categories"
152
+ actual = pandas_to_json_object(query_top_10_revenue_categories(database).result)
153
+ expected = read_query_result(query_name)
154
+ assert len(actual) == len(expected)
155
+ assert list(actual[0].keys()) == list(expected[0].keys())
156
+ assert [obj["Category"] for obj in actual] == [obj["Category"] for obj in expected]
157
+ assert [obj["Num_order"] for obj in actual] == [
158
+ obj["Num_order"] for obj in expected
159
+ ]
160
+ assert float_vectors_are_close(
161
+ [obj["Revenue"] for obj in actual], [obj["Revenue"] for obj in expected]
162
+ )
163
+
164
+
165
+ def test_real_vs_estimated_delivered_time(database: Engine):
166
+ query_name = "real_vs_estimated_delivered_time"
167
+ actual = pandas_to_json_object(
168
+ query_real_vs_estimated_delivered_time(database).result
169
+ )
170
+ expected = read_query_result(query_name)
171
+
172
+ def to_float(objs, year_col):
173
+ return list(
174
+ map(lambda obj: float(obj[year_col]) if obj[year_col] else 0.0, objs)
175
+ )
176
+
177
+ assert len(actual) == len(expected)
178
+ assert list(actual[0].keys()) == list(expected[0].keys())
179
+ assert [obj["month_no"] for obj in actual] == [obj["month_no"] for obj in expected]
180
+ assert float_vectors_are_close(
181
+ to_float(actual, "Year2016_real_time"), to_float(expected, "Year2016_real_time")
182
+ )
183
+ assert float_vectors_are_close(
184
+ to_float(actual, "Year2017_real_time"), to_float(expected, "Year2017_real_time")
185
+ )
186
+ assert float_vectors_are_close(
187
+ to_float(actual, "Year2018_real_time"), to_float(expected, "Year2018_real_time")
188
+ )
189
+ assert float_vectors_are_close(
190
+ to_float(actual, "Year2016_estimated_time"),
191
+ to_float(expected, "Year2016_estimated_time"),
192
+ )
193
+ assert float_vectors_are_close(
194
+ to_float(actual, "Year2017_estimated_time"),
195
+ to_float(expected, "Year2017_estimated_time"),
196
+ )
197
+ assert float_vectors_are_close(
198
+ to_float(actual, "Year2018_estimated_time"),
199
+ to_float(expected, "Year2018_estimated_time"),
200
+ )
201
+
202
+
203
+ def test_query_orders_per_day_and_holidays_2017(database: Engine):
204
+ query_name = "orders_per_day_and_holidays_2017"
205
+ actual: QueryResult = query_orders_per_day_and_holidays_2017(database)
206
+ expected = read_query_result(query_name)
207
+ assert pandas_to_json_object(actual.result) == expected
208
+
209
+
210
+ def test_query_get_freight_value_weight_relationship(database: Engine):
211
+ query_name = "get_freight_value_weight_relationship"
212
+ actual: QueryResult = query_freight_value_weight_relationship(database)
213
+ expected = read_query_result(query_name)
214
+ assert pandas_to_json_object(actual.result) == expected