results_writer2 = csv.writer(csv_results2,
                             lineterminator='\n',
                             delimiter=',',
                             quotechar='"',
                             quoting=csv.QUOTE_NONNUMERIC)
results_writer2.writerow([
    "Runs", "Sim_Length", "Hold Time", "Requests Per Hour", "Demand Type",
    "Area Size", "Opt Method", "Fleet Size", "Mean Wait Pick", "% Empty",
    "% Reassign", "Fleet Util", "#Served", "#inVeh", "#Assgnd", "#Unassgnd"
])

for i_run in range(7, 8):
    for j_fleet_size in fleet_size:
        # generate fleet
        Init.generate_fleet(area_size[0], j_fleet_size, Set.veh_capacity)
        for k_hold_for in hold_for:
            for m_opt_method in opt_methods:
                print(
                    "run #:",
                    i_run,
                    " demand type:",
                    "Taxis",
                )
                print("fleet size:", j_fleet_size, " hold for:", k_hold_for,
                      " Opt Method:", m_opt_method)
                # run simulation
                results = Main.main(k_hold_for,
                                    Set.t_max,
                                    Set.time_step,
                                    m_opt_method,
    "#inVeh", "#Assgnd", "#Unassgnd"
])

#######################################################################################################################
# Loop Through Simulations
#######################################################################################################################
for k_assign_int in assign_intervals:
    for r_relocat_int in relocate_intervals:
        for d_xyt_string in xyt_strings:
            for m_opt_method in opt_methods:
                for rr_relocate_method in relocate_methods:
                    for j_fleet_size in fleet_sizes:
                        results_run = []
                        for i_run in range(0, 1):
                            # generate fleet
                            Init.generate_fleet(0.0, j_fleet_size,
                                                Set.veh_capacity)

                            print("run #:", i_run, " Space_temp Aggregation:",
                                  d_xyt_string)
                            print("fleet size:", j_fleet_size, " assign int:",
                                  k_assign_int, " Opt Method:", m_opt_method)

                            results = Main.main(k_assign_int,
                                                r_relocat_int,
                                                Set.t_max,
                                                Set.time_step,
                                                m_opt_method,
                                                rr_relocate_method,
                                                Set.veh_speed,
                                                i_date,
                                                True,
                    for q_area_size in area_size:
                        for m_opt_method in opt_methods:
                            for j_fleet_size in fleet_size:
                                jj_fleet_size = j_fleet_size + int(
                                    ((q_area_size / 5280.0) - 4.0) * 25)

                                results_run = []
                                for i_run in range(0, 15):
                                    # generate random demand
                                    Init.generate_demand(
                                        Set.t_max, a_demand_rate, q_area_size,
                                        Set.max_group_size, p_demand_type,
                                        False)  # taxi = False
                                    # generate fleet
                                    Init.generate_fleet(
                                        q_area_size, jj_fleet_size,
                                        Set.veh_capacity)

                                    print("run #:", i_run, " demand rate:",
                                          a_demand_rate, " demand type:",
                                          p_demand_type, " area size:",
                                          q_area_size / 5280)
                                    print("fleet size:", jj_fleet_size,
                                          " hold for:", k_assign_int,
                                          " Opt Method:", m_opt_method)
                                    results = Main.main(
                                        k_assign_int, r_relocat_int, Set.t_max,
                                        Set.time_step, m_opt_method,
                                        relocate_method, Set.veh_speed, 0)

                                    results_run.append(results)