private static void AssertParse(string input, Expression expectation) { var source = input; var parser = new FullParser(); var expr = parser.Parse(source); var expected = expectation; expr.ShouldDeepEqual(expected); }
public static IParser GetParser(string htmlResponse) { var isCompactSource = htmlResponse.IndexOf("compact-items wlrdZeroTable") > -1; IParser parser = null; if(isCompactSource) parser = new CompactParser(); else parser = new FullParser(); parser.SetSource(htmlResponse); return parser; }
private static void Main(string[] args) { Options.Parse(args); //CalculateIterationAverage(_directory); //check that the file exists before attempting to parse if (!Directory.Exists(_directory)) { Console.WriteLine("Directory \"{0}\" does not exist", _directory); return; } //List<Algorithm> algorithms = CIlibParserOld.ParseDirectory(directory); CIlibParser parser = new FullParser(); List <Algorithm> algorithms = parser.ParseDirectory(_directory); string outputPath = Path.Combine(_directory, "averages"); CalculateIterationAverage(algorithms, outputPath); }
static void Main(string[] args) { options.Parse(args); //check that the file exists before attempting to parse if (!Directory.Exists(directory)) { Console.WriteLine("Directory \"{0}\" does not exist", directory); return; } //List<Algorithm> algorithms = CIlibParserOld.ParseDirectory(directory); CIlibParser parser = new FullParser(); List <Algorithm> algorithms = parser.ParseDirectory(directory); string outputPath = Path.Combine(directory, "averages"); if (!Directory.Exists(outputPath)) { Directory.CreateDirectory(outputPath); } foreach (string measure in algorithms[0].Measurements.Select(x => x.Name)) { string fileName = Path.Combine(outputPath, $"{measure}.csv"); using (TextWriter writer = new StreamWriter(fileName)) { writer.WriteLine("Iteration,{0}", string.Join(",", algorithms.Select(x => x.Name))); //TODO: sort the iterations? foreach (int iteration in algorithms[0].Measurements[0].Iterations) { string values = string.Join(",", algorithms.Select(x => x.Measurements.Find(m => m.Name == measure)[iteration].Average)); writer.WriteLine($"{iteration}, {values}"); } } } }
private static void ProcessMovement() { if (!Directory.Exists(_directory)) { Console.WriteLine("Invalid directory, exiting."); Environment.Exit(1); } if (_value < 0) { Console.WriteLine("Value must be positive, exiting."); Environment.Exit(1); } string outputDir = Path.Combine(_directory, OutputDirName); if (!Directory.Exists(outputDir)) { Directory.CreateDirectory(outputDir); } string output = Path.Combine(outputDir, _value + ".csv"); char[] nameSplit = { '_' }; using (TextWriter writer = new StreamWriter(output)) { foreach (string movementfile in Directory.EnumerateFiles(_directory, "*.txt")) { //Algorithm alg = CIlibParserOld.Parse(movementfile); CIlibParser parser = new FullParser(); Algorithm alg = parser.Parse(movementfile); Measurement measure = alg.Measurements.Find(x => x.Name == MeasureName); int iterations; if (_divergence) { if (measure.FinalIteration.Average < _value) { iterations = measure.MaximumIterations; } else { IterationStats stats = measure.Stats.Skip(1).First(x => x.Average >= _value); iterations = stats.Iteration; } } else { //check if the final value is less than the threshold, if not set it to max iters immediately if (measure.FinalIteration.Average > _value) { iterations = measure.MaximumIterations; } else { IterationStats stats = measure.Stats.Skip(1).First(x => x.Average <= _value); iterations = stats.Iteration; } } var nameTokens = alg.Name.Split(nameSplit, StringSplitOptions.RemoveEmptyEntries); if (!double.TryParse(nameTokens[1], out var inertia)) { Console.WriteLine("Error parsing inertia from: {0}", nameTokens[1]); } if (!double.TryParse(nameTokens[2], out var cognitive)) { Console.WriteLine("Error parsing cognitive from: {0}", nameTokens[2]); } if (!double.TryParse(nameTokens[3], out var social)) { Console.WriteLine("Error parsing social from: {0}", nameTokens[3]); } writer.WriteLine("{0},{1},{2}", cognitive + social, inertia, iterations); } writer.Close(); } }