/// <summary> /// Assigns part-of-speech tags, and sets Action, Theme and Arguments for methods that have a reactive name. /// </summary> /// <param name="mdn">The MethodDeclarationNode to parse.</param> protected void ParseReactiveName(MethodDeclarationNode mdn) { //this assumes that the name has already been split and the preamble stripped mdn.Action = mdn.ParsedName[0].GetNewWord("handle", PartOfSpeechTag.Verb); this.PosTagger.TagNounPhrase(mdn.ParsedName); mdn.CreateThemeFromPhrases(mdn.Preamble, mdn.ParsedName); SetDefaultUnknownArguments(mdn); mdn.IsReactive = true; }
public void TestCreateThemeFromPhrases_SecondNull() { MethodDeclarationNode mdn = new MethodDeclarationNode("MyMethod"); PhraseNode pn2 = new PhraseNode(new string[] { "cowboy", "watermelon" }); mdn.CreateThemeFromPhrases(null, pn2); Assert.AreSame(pn2, mdn.Theme); Assert.AreEqual(2, pn2.Size()); Assert.AreEqual("cowboy", pn2[0].Text); Assert.AreEqual("watermelon", pn2[1].Text); }
public void TestCreateThemeFromPhrases_FirstNull() { MethodDeclarationNode mdn = new MethodDeclarationNode("MyMethod"); PhraseNode pn1 = new PhraseNode(new string[] { "hello", "World" }); mdn.CreateThemeFromPhrases(pn1, null); Assert.AreSame(pn1, mdn.Theme); Assert.AreEqual(2, pn1.Size()); Assert.AreEqual("hello", pn1[0].Text); Assert.AreEqual("World", pn1[1].Text); }
public void TestCreateThemeFromPhrases() { MethodDeclarationNode mdn = new MethodDeclarationNode("MyMethod"); PhraseNode pn1 = new PhraseNode(new string[] { "hello", "World" }); PhraseNode pn2 = new PhraseNode(new string[] { "cowboy", "watermelon" }); mdn.CreateThemeFromPhrases(pn1, pn2); Assert.AreSame(pn1, mdn.Theme); Assert.AreEqual(4, pn1.Size()); Assert.AreEqual("hello", pn1[0].Text); Assert.AreEqual("World", pn1[1].Text); Assert.AreEqual("cowboy", pn1[2].Text); Assert.AreEqual("watermelon", pn1[3].Text); }