Ejemplo n.º 1
0
        public void ToCanonical_ShouldBeInCanonicalForm(string expression, string expected)
        {
            var canonicalFormer = new CanonicalFormer();

            (string canonical, string errorMessage) = canonicalFormer.ToCanonical(expression);

            Assert.Equal(expected, canonical);
        }
Ejemplo n.º 2
0
        public void ToCanonical_EmptyExpression_ShouldBeErrorMessage(string expression)
        {
            var canonicalFormer = new CanonicalFormer();

            (string canonical, string errorMessage) = canonicalFormer.ToCanonical(expression);

            Assert.NotEmpty(errorMessage);
        }
Ejemplo n.º 3
0
        private static Task StartConsumeFromExpressionsQueue(BlockingCollection <ExpressionBlock> expressionsQueue, ConcurrentBag <ExpressionBlock> canonicals)
        {
            return(Task.Run(() =>
            {
                Parallel.ForEach(expressionsQueue.GetConsumingEnumerable(),
                                 new ParallelOptions {
                    MaxDegreeOfParallelism = Environment.ProcessorCount
                },
                                 (expressionBlock) =>
                {
                    var canonicalFormer = new CanonicalFormer();

                    (string canonical, string errorMessage) = canonicalFormer.ToCanonical(expressionBlock.Expression);

                    canonicals.Add(new ExpressionBlock
                    {
                        Expression = string.IsNullOrEmpty(errorMessage) ? canonical : errorMessage,
                        Id = expressionBlock.Id
                    });
                });
            }));
        }
Ejemplo n.º 4
0
 public PolynomialController(CanonicalFormer canonicalFormer)
 {
     _canonicalFormer = canonicalFormer;
 }