Exemplo n.º 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllersWithViews();

            var seed = Guid.NewGuid().GetHashCode();

            var finder = new IterativeExpressionsFinder(new IOperation[] {
                new PlusFromDiv(),
                new Plus(seed),
                new Substruct(seed),
                new Multiply(seed),
                new Divide(seed)
            }, seed);
            var evaluator = new IterativeToStringExpressionsEvaluator();

            services.AddSingleton <IExpressionsFinder>(finder);
            services.AddSingleton <IToStringExpressionsEvaluator>(evaluator);
        }
Exemplo n.º 2
0
        private static void NumberToExpressionLogic(Arguments arguments)
        {
            var finder = new IterativeExpressionsFinder(new IOperation[] {
                new PlusFromDiv(),
                new Plus(arguments.Seed),
                new Substruct(arguments.Seed),
                new Multiply(arguments.Seed),
                new Divide(arguments.Seed)
            }, arguments.Seed);

            Stopwatch stopWatch = null;

            if (arguments.Verbose)
            {
                stopWatch = new Stopwatch();
                stopWatch.Start();
            }
            var evaulator = new IterativeToStringExpressionsEvaluator();
            var node      = finder.FindExpressions(arguments.Number, arguments.Complexity);

            if (string.IsNullOrWhiteSpace(arguments.FileName))
            {
                Console.WriteLine(evaulator.Evaluate(node));
            }
            else
            {
                File.WriteAllText(arguments.FileName, evaulator.Evaluate(node));
            }

            if (arguments.Verbose)
            {
                stopWatch.Stop();
                Console.WriteLine("----------------");
                Console.WriteLine("\u001b[32;1mNumber:\u001b[0m{0}", arguments.Number);
                Console.WriteLine("\u001b[32;1mComplexity:\u001b[0m {0}", arguments.Complexity);
                Console.WriteLine("\u001b[32mSeed:\u001b[0m {0}", arguments.Seed);
                Console.WriteLine("\u001b[32mElapsed:\u001b[0m {0} ms", stopWatch.ElapsedMilliseconds);
            }
        }