static HistoricalDataSet GenerateHistoricalDataSet(int argNum)
        {
            if (argNum == 0)
            {
                dataSet.Load();
                conslog.Info("Using previously generated data." + "\n");
                for (int i = 0; i < dataSet.DataPoints.Count; i++)
                {
                    conslog.Info($"{dataSet.DataPoints[i].fighter1} vs {dataSet.DataPoints[i].fighter2}, winner: {dataSet.DataPoints[i].winner}" + "\n");
                }

                var dataEvaulator = new DataEvaluator(dataSet, conslog);
                try //Handling no file exception.
                {
                    var newResult = dataEvaulator.Run();
                    dataEvaulator.Log.Info($"Number of simulations: {newResult.NumberOfSimulations} .\n");
                    dataEvaulator.Log.Info($"The best bet would be {newResult.BestChoice} with the winrate of {newResult.BestChoiceChance * 100:f2}%. \n");
                }
                catch (Exception)
                {
                    dataEvaulator.Log.Error("There is no file called history.csv, please generate a few rounds first!");
                }
                return(dataSet);
            }
            else
            {
                dataSet.Load();
                for (int i = 0; i < argNum; i++)
                {
                    dataSet.Generate();
                }

                for (int i = 0; i < dataSet.DataPoints.Count; i++)
                {
                    if (i < dataSet.DataPoints.Count - argNum)
                    {
                        conslog.Info($"{dataSet.DataPoints[i].fighter1} vs {dataSet.DataPoints[i].fighter2}, winner: {dataSet.DataPoints[i].winner}" + "\n");
                    }
                    else
                    {
                        conslog.Info("Generating 1 round of data." + "\n");
                        conslog.Info($"{dataSet.DataPoints[i].fighter1} vs {dataSet.DataPoints[i].fighter2}, winner: {dataSet.DataPoints[i].winner}" + "\n");
                    }
                }

                var dataEvaulator = new DataEvaluator(dataSet, conslog);
                var newResult     = dataEvaulator.Run();
                dataEvaulator.Log.Info($"Number of simulations: {newResult.NumberOfSimulations} .\n");
                dataEvaulator.Log.Info($"The best bet would be {newResult.BestChoice} with the winrate of {newResult.BestChoiceChance * 100:f2}%. \n");
                return(dataSet);
            }
        }
 void LoadPreviouslyGeneratedData()
 {
     try
     {
         //if (hds == null)
         hds = new HistoricalDataSet(logger);
         hds.Load(path);
         DataEvaluator de     = new DataEvaluator(hds, logger);
         Result        result = de.Run();
         logger.Info($"Number of simulations: {result.NumberOfSimulations} | choice: {result.BestChoice} | Chance of winning: {(result.BestChoiceChance * 100).ToString("#.##")}%");
     }
     catch
     {
         logger.Error($"Failed to read {Directory.GetCurrentDirectory() + path}, please generate a few rounds first.");
     }
 }