using RidePooling
RP = RidePooling
using DataFrames
using Measurements
import Base.Filesystem
FS = Base.Filesystem


path = "/project.dcf/poss/datasets/planned_pickup/drive_and_wait/anywt1_anydt01/"
model_path = path * "/models/"

# Values I want to calculate for every model
req_quantitys_mean = [
	
	:relative_delay,
	#:delay,
	#:relative_waiting_time,
	#:waiting_time,
	#:served,
	#:requested_distance,
	#:requested_time,
	#:total_time,
	#:travelling_time,
    #:resubmitted_served_percentage,
	#:dt_earliest_served,
    #:dt_earliest,
	#:relative_dt_earliest

]

req_quantitys_sum = [
	:count_req,
	#:resubmitted_all,
	#:resubmitted_served,
]

bus_quantitys = [
	:cooldown_time,
]

model_quantitys = [
	:driven_distance,
	#:efficiency,
	#:quality
]

results = DataFrame()
results[:index] = Int[]
results[:dt_earliest_pickup] = Float64[]
results[:weight] = Float64[]
results[:resubmission_time_factor] = Float64[]
results[:ν] = Float64[]
results[:request_type] = Any[]
for quan in req_quantitys_mean
	results[quan] = Measurement[]
end

for quan in req_quantitys_sum
	results[quan] = Float64[]
end

for quan in bus_quantitys
	results[quan] = Measurement[]
end

for quan in model_quantitys
	results[quan] = Measurement[]
end



filenames = readdir(model_path, join=true)

for model_nr in filenames
	model=loadmodel(model_nr)
	row = Dict()
	
	
	row[:index] = parse(Int, FS.splitext(model_nr)[1])
	row[:dt_earliest_pickup] = model.random_gens[model.request_type][2]
	row[:idle_wight] = model.cost_idle_weight
	row[:ν] = model.ν
	row[:to] = model.t0
	row[:request_type] = model.request_type

	for quan in req_quantitys_mean
		row[quan] = ev.quantity(quan, model_now)
	end
	for quan in req_quantitys_sum
		row[quan] = ev.sum(quan, model)
	end
	for quan in bus_quantitys
		row[quan] = ev.quantity(quan, model.agents, model)
	end
	for quan in model_quantitys
		f = @eval (ev.$quan)
		row[quan] = f(model)
	end
	using Serialization
	push!(results, row)
end

using Serialization
serialize(path*"results.jls", df)