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"; }
public void BindDirectObjectTest() { var target = new BaseVerb("slay"); IEntity directObject = new PersonalPronoun("them"); target.BindDirectObject(directObject); Check.That(target.DirectObjects).Contains(directObject); }
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(); }
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(); }
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(); }
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); }
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); }