/// <summary> /// Parses a line following the ElectionFormat and returns an ElectionFormat object /// </summary> /// <param name="line">The line to parse</param> /// <param name="parser">The field parser to use</param> /// <returns>An ElectionFormat object containing the parsed values</returns> public ElectionFormat Parse(string line, FieldParser parser) { string[] fields = parser.ParseLength(line, 7); int year = parser.ParseInt(fields[0], "Year"); string algorithmString = parser.ParseAlgorithmToString(fields[1], "Algorithm"); double firstDivisor = parser.ParseDouble(fields[2], "FirstDivisor"); double threshold = parser.ParseDouble(fields[3], "Threshold"); double areaFactor = parser.ParseDouble(fields[4], "AreaFactor"); int seats = parser.ParseInt(fields[5], "Seats"); int levelingSeats = parser.ParseInt(fields[6], "LevelingSeats"); return(new ElectionFormat { Year = year, AlgorithmString = algorithmString, FirstDivisor = firstDivisor, Threshold = threshold, AreaFactor = areaFactor, Seats = seats, LevelingSeats = levelingSeats }); }