/// <summary>
        /// Creates the list of instances to train on using .mps files in the given directory.
        /// </summary>
        /// <param name="pathToInstanceFolder">Path to the folder containing the instance .mps files.</param>
        /// <param name="numSeedsToUse">The number of seeds.</param>
        /// <param name="rngSeed">The random number generator seed.</param>
        /// <returns>
        /// The created list.
        /// </returns>
        public static List <InstanceSeedFile> CreateInstances(string pathToInstanceFolder, int numSeedsToUse, int rngSeed)
        {
            try
            {
                // Find all .mps files in directory and set them as instances.
                var instanceDirectory        = new DirectoryInfo(pathToInstanceFolder);
                var instanceSeedCombinations = new List <string>();
                var instanceSeedFiles        = new List <InstanceSeedFile>();
                foreach (var instanceFilePath in instanceDirectory.EnumerateFiles()
                         .Where(file => file.Extension.ToLower() == ".mps"))
                {
                    var fileAndSeedCsv = instanceFilePath.FullName;
                    foreach (var seed in GurobiUtils.SeedsToUse(numSeedsToUse, rngSeed))
                    {
                        instanceSeedFiles.Add(new InstanceSeedFile(instanceFilePath.FullName, seed));
                        fileAndSeedCsv += $";{seed}";
                    }

                    instanceSeedCombinations.Add(fileAndSeedCsv);
                }

                GurobiUtils.DumpFileSeedCombinations(instanceDirectory, instanceSeedCombinations);
                return(instanceSeedFiles);
            }
            catch (Exception e)
            {
                Console.Out.WriteLine(e.Message);
                Console.Out.WriteLine("Cannot open folder.");
                throw;
            }
        }