Example #1
0
        public void HasSubjectOrObjectTest()
        {
            var     text   = "attack";
            Verb    target = new BaseVerb(text);
            IEntity entity = new CommonPluralNoun("monkeys");
            var     rand   = new Random().Next(-1, 2);

            switch (rand)
            {
            case -1:
                target.BindSubject(entity);
                break;

            case 0:
                target.BindDirectObject(entity);
                break;

            case 1:
                target.BindDirectObject(entity);
                break;

            default:
                Check.That(false).IsTrue();
                break;
            }
            var  expected = true;
            bool actual;

            actual = target.HasSubjectOrObject(predicate);
            Check.That(actual).Equals(expected);

            bool predicate(IEntity e) => e.Text == "monkeys";
        }
Example #2
0
        public void BindDirectObjectTest()
        {
            var     target       = new BaseVerb("slay");
            IEntity directObject = new PersonalPronoun("them");

            target.BindDirectObject(directObject);
            Check.That(target.DirectObjects).Contains(directObject);
        }
Example #3
0
        public void IsRelatedToOnTest2()
        {
            IEntity performer = new CommonPluralNoun("dogs");
            IEntity receiver  = new CommonPluralNoun("cats");
            IVerbal relator   = new BaseVerb("chase");

            relator.BindSubject(performer);
            relator.BindDirectObject(receiver);
            performer.SetRelationshipLookup(new RelationshipLookup <IEntity, IVerbal>(new[] { relator }, Equals, Equals, Equals));
            var actual = RelationshipInferenceExtensions.IsRelatedTo(receiver, performer).On(relator);

            Check.That(actual).IsTrue();
        }
Example #4
0
        public void AggregateDirectObjectTest()
        {
            var target = new BaseVerb("slay");
            IAggregateEntity aggregateObject = new AggregateEntity(
                new NounPhrase(new ProperSingularNoun("John"), new ProperSingularNoun("Smith")),
                new NounPhrase(new PossessivePronoun("his"), new CommonPluralNoun("cats"))
                );

            target.BindDirectObject(aggregateObject);

            var actual = target.AggregateDirectObject;

            Check.That(actual).ContainsExactly(aggregateObject).And.Not.IsNull().And.Not.IsEmpty();
        }
Example #5
0
        public void AggregateDirectObjectTest()
        {
            var              text   = "attack";
            Verb             target = new BaseVerb(text);
            IAggregateEntity actual;

            actual = target.AggregateDirectObject;
            Check.That(actual).IsEmpty();
            IEntity directObject = new CommonPluralNoun("monkeys");

            target.BindDirectObject(directObject);
            actual = target.AggregateDirectObject;
            Check.That(new[] { directObject }.Except(actual)).IsEmpty();
        }
Example #6
0
        public void DirectObjectsTest()
        {
            var  text   = "attack";
            Verb target = new BaseVerb(text);
            IEnumerable <IEntity> actual;

            actual = target.IndirectObjects;
            Check.That(actual).IsEmpty();
            IEntity directObject = new CommonPluralNoun("monkeys");

            target.BindDirectObject(directObject);
            actual = target.DirectObjects;
            Check.That(actual).Contains(directObject);
            Check.That(target.AggregateDirectObject).Contains(directObject);
        }
Example #7
0
        public void IsRelatedToTest()
        {
            IEntity performer = new CommonPluralNoun("dogs");
            IEntity receiver  = new CommonPluralNoun("cats");
            IVerbal relator   = new BaseVerb("chase");

            relator.BindSubject(performer);
            relator.BindDirectObject(receiver);
            performer.SetRelationshipLookup(new RelationshipLookup <IEntity, IVerbal>(new[] { relator }, Equals, Equals, Equals));
            ActionsRelatedOn?expected = new ActionsRelatedOn(new[] { relator });
            ActionsRelatedOn?actual;

            actual = RelationshipInferenceExtensions.IsRelatedTo(performer, receiver);
            Check.That(actual).IsEqualTo(expected);
        }