Esempio n. 1
0
        public void ToStringReturnsValue()
        {
            const int constant     = 5;
            var       constantTerm = new ConstantTerm(constant);

            Assert.AreEqual(constant.ToString(), constantTerm.ToString());
        }
Esempio n. 2
0
        public void Unify_str_con()
        {
            ConstantTerm  term = new ConstantTerm("ali");
            StructureTerm s    = new StructureTerm("s", 2);

            Assert.IsFalse(s.Unify(term));
        }
Esempio n. 3
0
        public void Unify_con_str()
        {
            ConstantTerm  con  = new ConstantTerm("ali");
            StructureTerm term = new StructureTerm("samir", 2);

            Assert.IsFalse(con.Unify(term));
        }
Esempio n. 4
0
        public void Unify_lis_con()
        {
            ListTerm     list = new ListTerm();
            ConstantTerm con  = new ConstantTerm();

            Assert.IsFalse(list.Unify(con));
        }
Esempio n. 5
0
        public void Unify_con_lis()
        {
            ConstantTerm con  = new ConstantTerm("ali");
            ListTerm     term = new ListTerm();

            Assert.IsFalse(con.Unify(term));
        }
Esempio n. 6
0
        public void Unify_con_ne_con()
        {
            ConstantTerm con  = new ConstantTerm("ali");
            ConstantTerm term = new ConstantTerm("samir");

            Assert.IsFalse(con.Unify(term));
        }
Esempio n. 7
0
        public void Unify_con_eq_con()
        {
            ConstantTerm con  = new ConstantTerm("ali");
            ConstantTerm term = new ConstantTerm("ali");

            Assert.IsTrue(con.Unify(term));
        }
Esempio n. 8
0
        public void IsObject()
        {
            ConstantTerm t = new ConstantTerm();
            AbstractTerm a = new ConstantTerm();

            Assert.IsFalse(t.IsObject);
            Assert.IsFalse(a.IsObject);
        }
Esempio n. 9
0
        public void IsStructure()
        {
            ConstantTerm t = new ConstantTerm();
            AbstractTerm a = new ConstantTerm();

            Assert.IsFalse(t.IsStructure);
            Assert.IsFalse(a.IsStructure);
        }
Esempio n. 10
0
        public void IsConstant()
        {
            ConstantTerm t = new ConstantTerm();
            AbstractTerm a = new ConstantTerm();

            Assert.IsTrue(t.IsConstant);
            Assert.IsTrue(a.IsConstant);
        }
Esempio n. 11
0
        public void IsReference()
        {
            ConstantTerm t = new ConstantTerm();
            AbstractTerm a = new ConstantTerm();

            Assert.IsFalse(t.IsReference);
            Assert.IsFalse(a.IsReference);
        }
Esempio n. 12
0
        public void Unify_after_assignment()
        {
            AbstractTerm term = new AbstractTerm();
            ConstantTerm con  = new ConstantTerm("test");

            term.Assign(con);

            Assert.AreEqual(term.Unify(con), con.Unify(term));
        }
Esempio n. 13
0
        public void Bind()
        {
            ConstantTerm term  = new ConstantTerm();
            ConstantTerm term2 = new ConstantTerm();

            term.Bind(term2);

            Assert.AreSame(term, term.Reference());
        }
Esempio n. 14
0
        public void Reference()
        {
            ConstantTerm term1 = new ConstantTerm();
            ConstantTerm term2 = new ConstantTerm();

            term1.Bind(term2);

            Assert.AreSame(term1, term1.Reference());
        }
Esempio n. 15
0
        public void Unify_con_ref()
        {
            AbstractTerm term = new AbstractTerm();

            ConstantTerm con = new ConstantTerm("ali");

            Assert.IsTrue(con.Unify(term));

            Assert.AreSame(term.Data(), con.Data());
        }
Esempio n. 16
0
        public void SparqlExpressionsXPathReplaceNullInCanParallelise2()
        {
            // when
            var             find    = new VariableTerm("find");
            var             replace = new ConstantTerm(new StringNode(null, "replacement"));
            ReplaceFunction func    = new ReplaceFunction(new VariableTerm("term"), find, replace);

            // then
            var canParallelise = func.CanParallelise;
        }
Esempio n. 17
0
        public void Push_ConstantTerm()
        {
            AMHeap heap = new AMHeap();

            ConstantTerm con = new ConstantTerm("Hello, World!");

            heap.Push(con);

            Assert.AreSame(con, heap.Top());
        }
        private bool InvokePredicate(Type type, MethodInfo methodInfo, AMForeignPredicate fp, AbstractMachineState state, Assembly loadedAssembly, ArrayList methodArguments)
        {
            object[] arguments      = methodArguments.ToArray();
            object   returnedResult = null;
            object   baseObject     = null;

            baseObject     = Activator.CreateInstance(type);
            returnedResult = type.InvokeMember(_methodName,
                                               BindingFlags.Default | BindingFlags.InvokeMethod,
                                               null,
                                               baseObject,
                                               arguments);
            int registerIndex = 0;

            foreach (AMForeignPredicateArgument fArgument in fp.Arguments)
            {
                if (fArgument.PassingType == AMForeignPredicateArgument.PASS_OUT ||
                    fArgument.PassingType == AMForeignPredicateArgument.PASS_INOUT)
                {
                    AbstractTerm term = ((AbstractTerm)state["X" + registerIndex.ToString()]).Dereference();
                    if (fArgument.Type == AMForeignPredicateArgument.T_TERM)
                    {
                        ConstantTerm argumentVariable = new ConstantTerm(arguments[registerIndex]);
                        term.Assign(argumentVariable);
                    }
                    else
                    {
                        if (fArgument.Type == AMForeignPredicateArgument.T_STRING)
                        {
                            if (term.IsReference)
                            {
                                term.Assign(new ConstantTerm(arguments[registerIndex]));
                            }
                        }
                    }
                    registerIndex++;
                }
            }
            bool returnValue = false;

            if (fp.ReturnType == AMForeignPredicate.R_BOOL)
            {
                if (returnedResult == null)
                {
                    return(true);
                }
                else
                {
                    returnValue = (bool)returnedResult;
                }
            }

            return(returnValue);
        }
Esempio n. 19
0
        public void Unbind()
        {
            AbstractTerm term = new AbstractTerm();
            ConstantTerm con  = new ConstantTerm("ali");

            term.Assign(con);

            term.Unbind();

            Assert.AreNotSame(term.Reference(), con.Reference());
        }
Esempio n. 20
0
        public void ConstantTerm_ConstructorTest()
        {
            // setup test

            // run test
            IExpressionTerm term = new ConstantTerm(16);

            // validate results
            Assert.IsNotNull(term);
            Assert.IsInstanceOfType(term, typeof(IExpressionTerm));
            Assert.IsInstanceOfType(term, typeof(ConstantTerm));
        }
Esempio n. 21
0
        public void Pop_one_item()
        {
            AMHeap heap = new AMHeap();

            ConstantTerm con = new ConstantTerm("ali");

            heap.Push(con);

            heap.Pop();

            Assert.IsNull(heap.Top());
        }
Esempio n. 22
0
        public void Unify_ref_con()
        {
            AbstractTerm term = new AbstractTerm();
            ConstantTerm con  = new ConstantTerm();

            Assert.IsTrue(term.Unify(con));

            Assert.AreEqual(term.Data(), con.Data());
            Assert.AreSame(term.Reference(), con.Reference());
            Assert.IsTrue(term.IsConstant);
            Assert.IsFalse(term.IsReference);
        }
Esempio n. 23
0
        public void ConstantTerm_ToStringTest()
        {
            // setup test
            IExpressionTerm term = new ConstantTerm(3);

            // run test
            string result = term.ToString();

            // validate results
            Assert.IsFalse(string.IsNullOrEmpty(result));
            Assert.AreEqual("3", result);
        }
Esempio n. 24
0
        public void Pop_two_items()
        {
            AMHeap heap = new AMHeap();

            ConstantTerm con   = new ConstantTerm("ali");
            ConstantTerm first = new ConstantTerm("foo");

            heap.Push(first);
            heap.Push(con);

            heap.Pop();

            Assert.AreSame(first, heap.Top());
        }
Esempio n. 25
0
        /// <summary>
        /// Checks the equality of objects.
        /// </summary>
        /// <param name="obj">Object to be checked.</param>
        /// <returns>True if the objects are equal, false otherwise.</returns>
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }

            ConstantTerm other = obj as ConstantTerm;

            if (other == null)
            {
                return(false);
            }

            return(NameId == other.NameId);
        }
Esempio n. 26
0
        public void Assign()
        {
            AbstractTerm term = new AbstractTerm();
            ConstantTerm con  = new ConstantTerm("ali");

            term.Assign(con);

            Assert.AreSame(term.Dereference(), con);
            Assert.AreSame(term.Dereference(), con.Dereference());
            Assert.AreEqual(term.Data(), con.Data());
            Assert.AreSame(term.Reference(), con.Reference());
            Assert.IsFalse(term.IsList);
            Assert.IsFalse(term.IsObject);
            Assert.IsFalse(term.IsReference);
            Assert.IsFalse(term.IsStructure);
            Assert.IsTrue(term.IsConstant);
        }
Esempio n. 27
0
        public void ConstantTerm_CalculateResultsNullDieRollerTest()
        {
            // setup test
            IExpressionTerm term = new ConstantTerm(8);

            // run test
            IReadOnlyList <TermResult> results = term.CalculateResults(null);

            // validate results
            Assert.IsNotNull(results);
            Assert.AreEqual(1, results.Count);
            TermResult r = results.FirstOrDefault();

            Assert.IsNotNull(r);
            Assert.AreEqual(1, r.Scalar);
            Assert.AreEqual(8, r.Value);
            Assert.AreEqual("ConstantTerm", r.Type);
        }
 /// <summary>
 /// Substitutes a primary expression which is a Node term for a virtual Node term.
 /// </summary>
 /// <param name="expr">Expression.</param>
 /// <returns></returns>
 protected ISparqlExpression SubstitutePrimaryExpression(ISparqlExpression expr)
 {
     if (expr.GetType().Equals(_exprType))
     {
         ConstantTerm term = (ConstantTerm)expr;
         INode        curr = term.Evaluate(null, 0);
         TNodeID      id   = _provider.GetID(curr);
         if (id == null || id.Equals(_provider.NullID))
         {
             throw new RdfQueryException("Cannot transform the Expression to use Virtual Nodes");
         }
         INode virt = CreateVirtualNode(id, curr);
         return(new ConstantTerm(virt));
     }
     else
     {
         return(expr);
     }
 }
Esempio n. 29
0
        public override void Execute(AbstractMachineState state)
        {
            AMProgram program = (AMProgram)state.Program;

            AbstractTerm X0 = (state["X0"] as AbstractTerm).Dereference();

            ConsoleKeyInfo keyInfo  = Console.ReadKey();
            int            intValue = Convert.ToInt32(keyInfo.KeyChar);

            ConstantTerm readChar = new ConstantTerm(intValue.ToString());

            if (X0.Unify(readChar))
            {
                program.Next();
            }
            else
            {
                state.Backtrack();
            }
        }
Esempio n. 30
0
        public override void Execute(AbstractMachineState state)
        {
            AMProgram program = (AMProgram)state.Program;

            AbstractTerm X0 = (state["X0"] as AbstractTerm).Dereference();

            ConsoleKeyInfo keyInfo = Console.ReadKey();
            int intValue = Convert.ToInt32(keyInfo.KeyChar);

            ConstantTerm readChar = new ConstantTerm(intValue.ToString());

            if (X0.Unify(readChar))
            {
                program.Next();
            }
            else
            {
                state.Backtrack();
            }
        }
Esempio n. 31
0
        public void UnifyLocalValue()
        {
            AbstractMachineState state = SetupMachine();

            UnifyLocalValueInstruction i = new UnifyLocalValueInstruction();

            ConstantTerm con = new ConstantTerm("ali");

            state.S = con;

            object[] args = { "X0" };

            i.Process(args);
            i.Execute(state);

            Assert.AreEqual("unify_local_value", i.Name());
            Assert.AreEqual(1, i.NumberOfArguments());
            AbstractTerm X0 = (AbstractTerm)state["X0"];

            Assert.AreEqual("ali", X0.Dereference().Data());
        }
Esempio n. 32
0
        private bool InvokePredicate(Type type, MethodInfo methodInfo, AMForeignPredicate fp, AbstractMachineState state, Assembly loadedAssembly, ArrayList methodArguments)
        {
            object[] arguments = methodArguments.ToArray();
            object returnedResult = null;
            object baseObject = null;

            baseObject = Activator.CreateInstance(type);
            returnedResult = type.InvokeMember(_methodName,
                                BindingFlags.Default | BindingFlags.InvokeMethod,
                                null,
                                baseObject,
                                arguments);
            int registerIndex = 0;
            foreach (AMForeignPredicateArgument fArgument in fp.Arguments)
            {
                if (fArgument.PassingType == AMForeignPredicateArgument.PASS_OUT ||
                   fArgument.PassingType == AMForeignPredicateArgument.PASS_INOUT)
                {
                    AbstractTerm term = ((AbstractTerm)state["X" + registerIndex.ToString()]).Dereference();
                    if (fArgument.Type == AMForeignPredicateArgument.T_TERM)
                    {
                        ConstantTerm argumentVariable = new ConstantTerm(arguments[registerIndex]);
                        term.Assign(argumentVariable);
                    }
                    else
                    {
                        if (fArgument.Type == AMForeignPredicateArgument.T_STRING)
                        {
                            if (term.IsReference)
                            {
                                term.Assign(new ConstantTerm(arguments[registerIndex]));
                            }
                        }
                    }
                    registerIndex++;
                }
            }
            bool returnValue = false;
            if (fp.ReturnType == AMForeignPredicate.R_BOOL)
            {
                if (returnedResult == null)
                {
                    return true;
                }
                else
                {
                    returnValue = (bool)returnedResult;
                }
            }

            return returnValue;
        }