Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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();
            }
        }