Exemplo n.º 1
0
        public void MatchWithAnotherAtom()
        {
            Atom atom = new Atom("one");
            Atom atom2 = new Atom("two");

            Assert.IsFalse(atom.Match(atom2));
        }
Exemplo n.º 2
0
        public void EvaluateAtomExpression()
        {
            Atom atom = new Atom("ok");
            Context context = new Context();
            AtomExpression expression = new AtomExpression(atom);

            Assert.AreEqual(atom, expression.Evaluate(context));
        }
Exemplo n.º 3
0
        public void CreateSimpleAtomExpression()
        {
            Atom atom = new Atom("ok");
            AtomExpression expression = new AtomExpression(atom);

            Assert.AreEqual(atom, expression.Atom);
            Assert.IsFalse(expression.HasVariable());
        }
Exemplo n.º 4
0
 public IoModule(Machine machine)
     : base(machine.RootContext)
 {
     this.machine = machine;
     this.ok = new Atom("ok");
     this.SetName("io");
     this.Context.SetValue("write/1", new FuncFunction(this.Write));
     this.AddExportNames(new string[] { "write/1" });
     this.Context.SetValue("nl/0", new FuncFunction(this.Nl));
     this.AddExportNames(new string[] { "nl/0" });
 }
Exemplo n.º 5
0
        public void Equals()
        {
            Atom atom1 = new Atom("a");
            Atom atom2 = new Atom("b");
            Atom atom3 = new Atom("a");

            Assert.IsTrue(atom1.Equals(atom3));
            Assert.IsTrue(atom3.Equals(atom1));

            Assert.AreEqual(atom1.GetHashCode(), atom3.GetHashCode());

            Assert.IsFalse(atom1.Equals(null));
            Assert.IsFalse(atom1.Equals(123));
            Assert.IsFalse(atom1.Equals("foo"));
            Assert.IsFalse(atom1.Equals(atom2));
            Assert.IsFalse(atom2.Equals(atom1));
        }
Exemplo n.º 6
0
        public void MatchOneAtomAndTwoVariablesInTupleWithConcreteTuple()
        {
            Context context = new Context();
            Atom p = new Atom("point");
            Variable x = new Variable("X");
            Variable y = new Variable("Y");

            MatchExpression expr = new MatchExpression(new TupleExpression(new IExpression[] { new AtomExpression(p), new VariableExpression(x), new VariableExpression(y) }), new TupleExpression(new IExpression[] { new AtomExpression(new Atom("point")), new ConstantExpression(1), new ConstantExpression(2) }));

            expr.Evaluate(context);

            var result1 = context.GetValue("X");
            var result2 = context.GetValue("Y");

            Assert.IsNotNull(result1);
            Assert.AreEqual(1, result1);
            Assert.IsNotNull(result2);
            Assert.AreEqual(2, result2);
        }
Exemplo n.º 7
0
 public AtomExpression(Atom atom)
 {
     this.atom = atom;
 }
Exemplo n.º 8
0
        public void MatchWithNull()
        {
            Atom atom = new Atom("one");

            Assert.IsFalse(atom.Match(null));
        }
Exemplo n.º 9
0
        public void CreateSimpleAtom()
        {
            Atom atom = new Atom("one");

            Assert.AreEqual("one", atom.Name);
        }
Exemplo n.º 10
0
        public void AtomToString()
        {
            Atom atom = new Atom("one");

            Assert.AreEqual("one", atom.ToString());
        }
Exemplo n.º 11
0
 public bool Match(Atom atom)
 {
     return atom != null && this.name == atom.Name;
 }