import pandas as pd
import os

def load_result_file(path: str):
    with open(path) as f:
        lines = f.readlines()

    result = {}
    try:
        result["algorithm"] = lines[3].split()[-3].split("/")[-1]
        result["depth"] = lines[3].split()[-2]
        result["instance"] = lines[3].split()[-1].split("/")[-1][:-2]

        result["cycles"] = int(lines[5].strip().split()[0].replace(",", ""))
        result["instructions"] = int(lines[6].strip().split()[0].replace(",", ""))
        result["branches"] = int(lines[7].strip().split()[0].replace(",", ""))
        result["branch-misses"] = int(lines[8].strip().split()[0].replace(",", ""))

        result["time"] = float(lines[10].strip().split()[0].replace(",", ""))
    except:
        result = {}

    return result


def load_all_results(path: str, results_path: str):
    all_results = pd.DataFrame()
    for file in os.listdir(path):
        result = load_result_file(os.path.join(path, file))
        all_results = all_results.append(result, ignore_index=True)

    all_results.to_csv(results_path)


if __name__ == "__main__":
    load_all_results("../results/perf_results", "../results/all_results_i7-8700K.csv")