Example #1
0
        public void ToStringTest()
        {
            var target   = new NounPhrase(new ProperSingularNoun("LASI"), new Conjunction("and"), new ProperSingularNoun("Timmy"));
            var expected = "NounPhrase \"LASI and Timmy\"";

            Check.That(target.ToString()).IsEqualTo(expected);
        }
Example #2
0
        private static Label CreateLabelForWeightedView(NounPhrase nounPhrase)
        {
            var gender = nounPhrase.GetGender();
            var label  = new Label
            {
                Tag         = nounPhrase,
                Content     = $"Weight : {nounPhrase.Weight}  \"{nounPhrase.Text}\"",
                Foreground  = Brushes.Black,
                Padding     = new Thickness(1, 1, 1, 1),
                ContextMenu = new ContextMenu(),
                ToolTip     = $"{nounPhrase.GetType().Name}{(gender.IsMaleOrFemale() ? "\nprevialing gender: " + gender : string.Empty)}"
            };
            var menuItem1 = new MenuItem {
                Header = "View definition"
            };

            menuItem1.Click += (s, e) => Process.Start(string.Format("http://www.dictionary.reference.com/browse/{0}?s=t", nounPhrase.Text));
            label.ContextMenu.Items.Add(menuItem1);
            var menuItem2 = new MenuItem {
                Header = "Copy"
            };

            menuItem2.Click += (s, e) => Clipboard.SetText((label.Tag as ILexical).Text);
            label.ContextMenu.Items.Add(menuItem2);
            return(label);
        }
Example #3
0
        public void IsMaleFullTest()
        {
            var np = new NounPhrase(new ProperSingularNoun("Patrick"), new ProperPluralNoun("Roberts"));

            Check.That(np.IsFullMaleName()).IsTrue();
            Check.That(np.IsFullFemaleName()).IsFalse();
        }
Example #4
0
        public void GetPhrasesAfterTest()
        {
            var startAfter = new NounPhrase(new Adjective("blue"), new CommonSingularNoun("team"));
            IEnumerable <Sentence> sentences = new Sentence[] {
                new Sentence(new Clause[] {
                    new Clause(new NounPhrase(new PersonalPronoun("We")),
                               new VerbPhrase(new ModalAuxilary("must"), new BaseVerb("attack")),
                               startAfter)
                },
                             SentenceEnding.ExclamationPoint),
                new Sentence(new Clause[] { new Clause(new Phrase[] {
                        new NounPhrase(new PersonalPronoun("We")),
                        new VerbPhrase(new ModalAuxilary("must"), new BaseVerb("do")),
                        new NounPhrase(new PersonalPronoun("this")),
                        new AdverbPhrase(new Adverb("quickly"))
                    }) },
                             SentenceEnding.ExclamationPoint)
            };
            var paragraphKind = ParagraphKind.Default;
            var target        = new Paragraph(paragraphKind, sentences);
            var expected      = sentences.Phrases().SkipWhile(p => p != startAfter).Skip(1);
            IEnumerable <Phrase> actual;

            actual = target.GetPhrasesAfter(startAfter);

            Check.That(actual).ContainsExactly(expected);
        }
Example #5
0
        public static IEnumerable <Stack <Token> > ReductionOptions(this IEnumerable <Token> proposedStack)
        {
            var stack = proposedStack.ToArray();

            for (var j = 1; j <= stack.Length && j <= 4; j++)
            {
                var head = stack.Subarray(0, j);
                var tail = stack.Subarray(j, stack.Length - j);

                if (Sentence.Propose(head))
                {
                    var possibleStack = new List <Token>();
                    possibleStack.Add(new Sentence(head));
                    possibleStack.AddRange(tail);

                    yield return(possibleStack.ToStack());
                }
                if (VerbPhrase.Propose(head))
                {
                    var possibleStack = new List <Token>();
                    possibleStack.Add(new VerbPhrase(head));
                    possibleStack.AddRange(tail);

                    yield return(possibleStack.ToStack());
                }
                if (NounPhrase.Propose(head))
                {
                    var possibleStack = new List <Token>();
                    possibleStack.Add(new NounPhrase(head));
                    possibleStack.AddRange(tail);

                    yield return(possibleStack.ToStack());
                }
            }
        }
Example #6
0
        public void IsFemaleFullTest()
        {
            var noun = new NounPhrase(new ProperSingularNoun("Julia"), new ProperPluralNoun("Roberts"));

            Check.That(noun.IsFullFemaleName()).IsTrue();
            Check.That(noun.IsFullMaleName()).IsFalse();
        }
Example #7
0
        public void BindObjectOfPrepositionTest()
        {
            var      target = new ParticlePhrase(new Particle("about"));
            ILexical prepositionalObject = new NounPhrase(new Determiner("the"), new CommonSingularNoun("house"));

            target.BindObject(prepositionalObject);
            Check.That(target.BoundObject).IsEqualTo(prepositionalObject);
        }
Example #8
0
        public void BindIndirectObjectTest()
        {
            var     target         = CreateIInderectObjectTaker();
            IEntity indirectObject = new NounPhrase(new PossessivePronoun("my"), new CommonSingularNoun("friend"));

            target.BindIndirectObject(indirectObject);
            Check.That(indirectObject).Satisfies(target.IndirectObjects.Contains).And.Satisfies(target.AggregateIndirectObject.Contains);
        }
Example #9
0
        public void BindReferencerTest()
        {
            var         target = new NounPhrase(new Determiner("the"), new Adjective("large"), new CommonSingularNoun("elephant"));
            IReferencer pro    = new RelativePronoun("which");

            target.BindReferencer(pro);
            Check.That(target.Referencers.All(r => r.RefersTo.Contains(target))).IsTrue();
        }
Example #10
0
        public void FullNameGenderIsSameAsFirstNameGender()
        {
            var patrickRoberts = new NounPhrase(new ProperSingularNoun("Patrick"), new ProperPluralNoun("Roberts"));
            var patrick        = new ProperSingularNoun("Patrick");

            Check.That(patrickRoberts.GetGender()).IsEqualTo(patrick.GetGender());
            Check.That(((IEntity)patrickRoberts).GetGender()).IsEqualTo(patrick.GetGender());
        }
Example #11
0
        public void FullNameWithPrefixGenderIsSameAsFirstNameGender()
        {
            var patrick = new ProperSingularNoun("Patrick");

            var drPatrickRachels = new NounPhrase(new ProperSingularNoun("Dr."), new ProperSingularNoun("Patrick"), new ProperPluralNoun("Rachels"));

            Check.That(drPatrickRachels.GetGender()).IsEqualTo(patrick.Gender);
        }
Example #12
0
 void BindBuiltupAdjectivePhrases(NounPhrase phrase)
 {
     foreach (var adjp in this.lastAdjectivals)
     {
         phrase.BindDescriptor(adjp);
     }
     this.lastAdjectivals.Clear();
 }
Example #13
0
        public void BindDirectObjectTest()
        {
            var     target       = CreateVerbPhrase();
            IEntity directObject = new NounPhrase(new Determiner("the"), new CommonSingularNoun("forest"));

            target.BindDirectObject(directObject);
            Check.That(target.HasDirectObject(e => e == directObject)).IsTrue();
        }
Example #14
0
        public void BindDescriberTest()
        {
            var         target = new NounPhrase(new ProperPluralNoun("Americans"), new Conjunction("and"), new ProperPluralNoun("Canadians"));
            IDescriptor adj    = new AdjectivePhrase(new CommonSingularNoun("peace"), new PresentParticiple("loving"));

            target.BindDescriptor(adj);
            Check.That(target.Descriptors).Contains(adj);
        }
Example #15
0
        public void ItemTest2()
        {
            var    target = CreatePhraseTagsetMap();
            Phrase phrase = new NounPhrase(new PersonalPronoun("he"));
            string actual;

            actual = target[phrase];
            Check.That("NP").IsEqualTo(actual);
        }
Example #16
0
        public void AddPossessionTest()
        {
            var     target     = new CommonSingularNoun("dog");
            IEntity possession = new NounPhrase(new CommonSingularNoun("chew"), new CommonSingularNoun("toy"));

            target.AddPossession(possession);
            Check.That(target.Possessions).Contains(possession);
            Check.That(possession.Possessor).IsEqualTo(target);
        }
Example #17
0
        public void AddPossessionTest()
        {
            var     target     = new NounPhrase(new ProperPluralNoun("Americans"), new Conjunction("and"), new ProperPluralNoun("Canadians"));
            IEntity possession = new NounPhrase(new Adverb("relatively"), new Adjective("affluent"), new CommonPluralNoun("lifestyles"));

            target.AddPossession(possession);
            Check.That(target.Possessions).Contains(possession);
            Check.That(possession.Possessor).IsEqualTo(target);
        }
Example #18
0
        public void BindPronounTest()
        {
            var     target = new NounPhrase(new ProperPluralNoun("Americans"), new Conjunction("and"), new ProperPluralNoun("Canadians"));
            Pronoun pro    = new PersonalPronoun("they");

            target.BindReferencer(pro);
            Check.That(target.Referencers).Contains(pro);
            Check.That(pro.RefersTo).Contains(target);
        }
Example #19
0
        public void BindDescriptorTest()
        {
            var         target     = new NounPhrase(new Determiner("the"), new Adjective("large"), new CommonSingularNoun("elephants"));
            IDescriptor descriptor = new Adjective("hungry");

            target.BindDescriptor(descriptor);
            Check.That(target.Descriptors).Contains(descriptor);
            Check.That(descriptor.Describes).IsEqualTo(target);
        }
Example #20
0
        public void NounPhraseTest1()
        {
            var actual = false;
            var target = new NounPhrase(new Determiner("The"), new CommonSingularNoun("truth"));

            target.MatchSequence()
            .Case((Determiner d, IEntity e) => actual = true);
            Check.That(actual).IsTrue();
        }
Example #21
0
        public void BindObjectOfPrepositionTest()
        {
            var      text   = "about";
            var      target = new Particle(text);
            ILexical prepositionalObject = new NounPhrase(new[] { new ProperSingularNoun("Ayn"), new ProperSingularNoun("Rand") });

            target.BindObject(prepositionalObject);
            Check.That(target.BoundObject).IsEqualTo(prepositionalObject);
        }
Example #22
0
        public void BindObjectOfPrepositionTest()
        {
            var      text   = "into";
            var      target = new Preposition(text);
            ILexical prepositionalObject = new NounPhrase(new Determiner("the"), new CommonSingularNoun("drawer"));

            target.BindObject(prepositionalObject);
            Check.That(target.BoundObject).IsEqualTo(prepositionalObject);
        }
Example #23
0
        public void OnLeftSideTest()
        {
            var      target   = new PrepositionalPhrase(new Preposition("for"));
            ILexical expected = new NounPhrase(new PersonalPronoun("it"));
            ILexical actual;

            target.ToTheLeftOf = expected;
            actual             = target.ToTheLeftOf;
            Check.That(actual).IsEqualTo(expected);
        }
Example #24
0
        public void ToTheLeftOfTest()
        {
            var      target   = new PrepositionalPhrase(new Preposition("on"));
            ILexical expected = new NounPhrase(new Determiner("the"), new CommonSingularNoun("table"));
            ILexical actual;

            target.ToTheLeftOf = expected;
            actual             = target.ToTheLeftOf;
            Assert.Equal(expected, actual);
        }
Example #25
0
        public void ToTheRightOfTest()
        {
            var      target   = new ParticlePhrase(new Particle("off"), new Preposition("of"));
            ILexical expected = new NounPhrase(new Determiner("the"), new CommonSingularNoun("world"));
            ILexical actual;

            target.ToTheRightOf = expected;
            actual = target.ToTheRightOf;
            Check.That(actual).IsEqualTo(expected);
        }
Example #26
0
        public void InnerAttributiveTest()
        {
            var        target   = new NounPhrase(new ProperSingularNoun("Felis"));
            var        expected = new NounPhrase(new ProperSingularNoun("Catus"));
            NounPhrase actual;

            target.InnerAttributive = expected;
            actual = target.InnerAttributive;
            Check.That(actual).IsEqualTo(expected);
        }
Example #27
0
        public void DirectObjectOfTest()
        {
            var     target   = new NounPhrase(new ProperPluralNoun("Americans"), new Conjunction("and"), new ProperPluralNoun("Canadians"));
            IVerbal expected = new BaseVerb("insult");

            target.BindAsDirectObjectOf(expected);
            var actual = target.DirectObjectOf;

            Check.That(actual).IsEqualTo(expected);
        }
Example #28
0
        public void AttachObjectViaPrepositionTest()
        {
            var            target              = new VerbPhrase(new BaseVerb("consume"));
            IPrepositional prepositional       = new Preposition("with");
            ILexical       prepositionalObject = new NounPhrase(new Adjective("great"), new CommonSingularNoun("haste"));

            prepositional.BindObject(prepositionalObject);
            target.AttachObjectViaPreposition(prepositional);
            Check.That(target.ObjectOfThePreposition).IsEqualTo(prepositionalObject);
        }
Example #29
0
        public void AggregateEntityConstructorTest1()
        {
            IEntity americans = new NounPhrase(new ProperPluralNoun("Americans"));
            IEntity canadians = new NounPhrase(new ProperPluralNoun("Canadians"));

            var target = new AggregateEntity(americans, canadians);

            Check.That(target).Contains(americans);
            Check.That(target).Contains(canadians);
        }
Example #30
0
        public void BindDirectObjectTest()
        {
            var     text         = "gave";
            Verb    target       = new PastTenseVerb(text);
            IEntity directObject = new NounPhrase(new Determiner("a"), new CommonSingularNoun("cake"));

            target.BindDirectObject(directObject);

            Check.That(target.DirectObjects).Contains(directObject).And.HasSize(1);
        }