forked from Ada-C11/ride-share
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patha_worksheet.rb
145 lines (123 loc) · 3.55 KB
/
a_worksheet.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
drivers_db = {
DR001: [
{
date: "2016-02-03",
cost: 10,
rating: 3,
rider_id: "RD0003",
},
{
date: "2016-02-03",
cost: 30,
rating: 4,
rider_id: "RD0015",
},
{
date: "2016-02-05",
cost: 45,
rating: 2,
rider_id: "RD0003",
}
],
DR002: [
{
date: "2016-02-03",
cost: 25,
rating: 5,
rider_id: "RD0073",
},
{
date: "2016-02-04",
cost: 15,
rating: 1,
rider_id: "RD0013",
},
{
date: "2016-02-05",
cost: 35,
rating: 3,
rider_id: "RD0066",
}
],
DR003: [
{
date: "2016-02-04",
cost: 5,
rating: 5,
rider_id: "RD0066",
},
{
date: "2016-02-05",
cost: 50,
rating: 2,
rider_id: "RD0003",
}
],
DR004: [
{
date: "2016-02-03",
cost: 5,
rating: 5,
rider_id: "RD00722",
},
{
date: "2016-02-04",
cost: 10,
rating: 4,
rider_id: "RD0022",
},
{
date: "2016-02-05",
cost: 20,
rating: 5,
rider_id: "RD0073",
}
]
}
driver1_rides = drivers_db[:DR001]
driver2_rides = drivers_db[:DR002]
driver3_rides = drivers_db[:DR003]
driver4_rides = drivers_db[:DR004]
# puts "#{driver1_rides.length} rides"
# puts "#{driver2_rides.length} rides"
# puts "#{driver3_rides.length} rides"
# puts "#{driver4_rides.length} rides"
allrides = [driver1_rides, driver2_rides, driver3_rides, driver4_rides]
allrides.each_with_index do |rides, i|
puts "Driver ##{i+1} #{rides.length} rides"
end
puts ""
# - the total amount of money each driver has made
driver1_total = driver1_rides.sum{|ride| ride[:cost].to_i }
driver2_total = driver2_rides.sum{|ride| ride[:cost].to_i }
driver3_total = driver3_rides.sum{|ride| ride[:cost].to_i }
driver4_total = driver4_rides.sum{|ride| ride[:cost].to_i }
puts "The total amount of money Driver 1 made was $#{driver1_total}."
puts "The total amount of money Driver 2 made was $#{driver2_total}."
puts "The total amount of money Driver 3 made was $#{driver3_total}."
puts "The total amount of money Driver 4 made was $#{driver4_total}."
puts ""
# - the average rating for each driver
average1 = driver1_rides.map {|ride| ride[:rating].to_f}
average2 = driver2_rides.map {|ride| ride[:rating].to_f}
average3 = driver3_rides.map {|ride| ride[:rating].to_f}
average4 = driver4_rides.map {|ride| ride[:rating].to_f}
driver1_avg = (average1.sum / driver1_rides.length).round(2)
driver2_avg = (average2.sum / driver2_rides.length).round(2)
driver3_avg = (average3.sum / driver3_rides.length).round(2)
driver4_avg = (average4.sum / driver4_rides.length).round(2)
puts ""
puts "Average Ratings"
puts "Driver 1: #{driver1_avg}"
puts "Driver 2: #{driver2_avg}"
puts "Driver 3: #{driver3_avg}"
puts "Driver 4: #{driver4_avg}"
# - Which driver made the most money?
puts ""
drivers = ["DR0001", "DR0002", "DR0003", "DR0004"]
drivers_money = [driver1_total, driver2_total, driver3_total, driver4_total]
puts "Driver #{drivers[drivers_money.index(drivers_money.max)]} made the most money."
puts ""
# - Which driver has the highest average rating?
drivers_rating = [driver1_avg, driver2_avg, driver3_avg, driver4_avg ]
puts "Driver #{drivers[drivers_rating.index(drivers_rating.max)]} has the highest rating average."