Beispiel #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";
        }
Beispiel #2
0
        public void BindSubjectTest()
        {
            var     text    = "gave";
            Verb    target  = new BaseVerb(text);
            IEntity subject = new PersonalPronoun("he");

            target.BindSubject(subject);

            Check.That(target.Subjects).Contains(subject).And.HasSize(1);
        }
Beispiel #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();
        }
Beispiel #4
0
        public void AggregateSubjectTest()
        {
            var              text   = "attack";
            Verb             target = new BaseVerb(text);
            IAggregateEntity actual;

            actual = target.AggregateSubject;
            Check.That(actual).IsEmpty();
            IEntity subject = new CommonPluralNoun("monkeys");

            target.BindSubject(subject);
            actual = target.AggregateSubject;
            Check.That(new[] { subject }.Except(actual)).IsEmpty();
        }
Beispiel #5
0
        public void SubjectsTest()
        {
            var  text   = "attack";
            Verb target = new BaseVerb(text);
            IEnumerable <IEntity> actual;

            actual = target.Subjects;
            Check.That(actual).IsEmpty();
            IEntity subject = new CommonPluralNoun("chimpanzees");

            target.BindSubject(subject);
            actual = target.Subjects;
            Check.That(actual).Contains(subject);
            Check.That(target.AggregateSubject).Contains(subject);
        }
Beispiel #6
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);
        }