Exemple #1
0
        public void MinMaxRangeTest()
        {
            var converter = GetConverter(out var xVar, out var yVar);
            var prog1     = new MaxFunction(xVar, yVar);
            var prog2     = new MinFunction(xVar, yVar);

            Console.WriteLine($"{prog1}:{prog1.GetRange()}\n{prog2}:{prog2.GetRange()}");
            Assert.AreEqual(prog1.GetRange(), yVar.Range, $"{prog1.GetRange()} should be equal to {yVar.Range}");
            Assert.AreEqual(prog2.GetRange(), xVar.Range, $"{prog2.GetRange()} should be equal to {xVar.Range}");
        }
Exemple #2
0
        public void CanAddNoParameterCountFunctionAndRetrieveIt()
        {
            LanguageDefiner  definer = new LanguageDefiner();
            IFunctionDefiner max     = new MaxFunction();

            max.AddFunction(definer);
            MeVariable[] vars     = { new MeNumber(100), new MeNumber(20) };
            MeVariable[] vars2    = { new MeNumber(100), new MeNumber(20), new MeNumber(400) };
            Function     maxFunc  = definer.GetFunction(LConstants.MAX_F, vars);
            Function     maxFunc2 = definer.GetFunction(LConstants.MAX_F, vars2);

            Assert.IsNotNull(maxFunc);
            Assert.IsNotNull(maxFunc2);
            Assert.AreEqual(maxFunc2, maxFunc);
        }
Exemple #3
0
        public void MinMaxWithSelfTest()
        {
            GetConverter(out var varX, out _);
            MathProgram prog1 = new MaxFunction(varX, varX);
            var         prog2 = varX;
            var         simp  = prog1.Simplify();

            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");

            prog1 = new MinFunction(varX, varX);
            simp  = prog1.Simplify();
            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");
        }
Exemple #4
0
        public void MaxTest()
        {
            GetConverter(out var varX, out _);
            MathProgram prog1 = new MaxFunction(varX, new Constant(double.MinValue));
            var         prog2 = varX;
            var         simp  = prog1.Simplify();

            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");

            prog1 = new MaxFunction(varX, new Constant(double.NegativeInfinity));
            simp  = prog1.Simplify();
            Console.WriteLine($"{prog1}->{simp}, {prog2}");
            Assert.AreEqual(simp, prog2, $"{prog1} simplification ({simp}) should be equal to {prog2}");
        }
        void Start()
        {
            // default fallbacks, if shaders are unspecified
            if (!uberReplacementShader)
            {
                uberReplacementShader = Shader.Find("Hidden/UberReplacement");
            }

            if (!OFmagShader)
            {
                OFmagShader = Shader.Find("Hidden/OFmag");
            }
            OFmagMat = new Material(OFmagShader);

            maximum = GetComponent <MaxFunction>();
        }
        /// <summary>
        /// Tries to create an ARQ Function expression if the function Uri correseponds to a supported ARQ Function.
        /// </summary>
        /// <param name="u">Function Uri.</param>
        /// <param name="args">Function Arguments.</param>
        /// <param name="scalarArgs">Scalar Arguments.</param>
        /// <param name="expr">Generated Expression.</param>
        /// <returns>Whether an expression was successfully generated.</returns>
        public bool TryCreateExpression(Uri u, List <ISparqlExpression> args, Dictionary <String, ISparqlExpression> scalarArgs, out ISparqlExpression expr)
        {
            // If any Scalar Arguments are present then can't possibly be an ARQ Function
            if (scalarArgs.Count > 0)
            {
                expr = null;
                return(false);
            }

            String func = u.AbsoluteUri;

            if (func.StartsWith(ArqFunctionsNamespace))
            {
                func = func.Substring(ArqFunctionsNamespace.Length);
                ISparqlExpression arqFunc = null;

                switch (func)
                {
                case BNode:
                    if (args.Count == 1)
                    {
                        arqFunc = new BNodeFunction(args.First());
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ bnode() function");
                    }
                    break;

                case E:
                    if (args.Count == 0)
                    {
                        arqFunc = new EFunction();
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ e() function");
                    }
                    break;

                case LocalName:
                    if (args.Count == 1)
                    {
                        arqFunc = new LocalNameFunction(args.First());
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ localname() function");
                    }
                    break;

                case Max:
                    if (args.Count == 2)
                    {
                        arqFunc = new MaxFunction(args.First(), args.Last());
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ max() function");
                    }
                    break;

                case Min:
                    if (args.Count == 2)
                    {
                        arqFunc = new MinFunction(args.First(), args.Last());
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ min() function");
                    }
                    break;

                case Namespace:
                    if (args.Count == 1)
                    {
                        arqFunc = new NamespaceFunction(args.First());
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ namespace() function");
                    }
                    break;

                case Now:
                    if (args.Count == 0)
                    {
                        arqFunc = new NowFunction();
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ now() function");
                    }
                    break;

                case Pi:
                    if (args.Count == 0)
                    {
                        arqFunc = new PiFunction();
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ pi() function");
                    }
                    break;

                case Sha1Sum:
                    if (args.Count == 1)
                    {
                        arqFunc = new Sha1Function(args.First());
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ sha1sum() function");
                    }
                    break;

                case StrJoin:
                    if (args.Count >= 2)
                    {
                        arqFunc = new StringJoinFunction(args.First(), args.Skip(1));
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ strjoing() function");
                    }
                    break;

                case Substr:
                case Substring:
                    if (args.Count == 2)
                    {
                        arqFunc = new SubstringFunction(args.First(), args.Last());
                    }
                    else if (args.Count == 3)
                    {
                        arqFunc = new SubstringFunction(args.First(), args[1], args.Last());
                    }
                    else
                    {
                        throw new RdfParseException("Incorrect number of arguments for the ARQ " + func + "() function");
                    }
                    break;
                }

                if (arqFunc != null)
                {
                    expr = arqFunc;
                    return(true);
                }
            }
            expr = null;
            return(false);
        }
Exemple #7
0
 public Task <byte[]> MaxQueryAsync(MaxFunction maxFunction, BlockParameter blockParameter = null)
 {
     return(ContractHandler.QueryAsync <MaxFunction, byte[]>(maxFunction, blockParameter));
 }
        public object Evaluate(MaxFunction funcExp, object data, IEnumerable <object> parameters = null)
        {
            var paramValues = _GetParameterValues(funcExp, data, parameters);

            return(((IEnumerable <object>)paramValues[0]).Max(i => (decimal)i));
        }
 public string ToSQL(MaxFunction funcExp)
 {
     return(_FunctionToSQL(funcExp, "MAX"));
 }
Exemple #10
0
 public void SettingAliasTest(MaxFunction column, string expectedAlias)
 => column.Alias.Should().Be(expectedAlias);