public void When_Adverb_And_Two_Timers_Does_Not_Duplicate() { // this is a bug fix var sentence = new Sentence() { Texts = new List <Text>() { new Text { pe_tag = "NN", pe_text = "Economic growth" }, new Text { pe_tag = "VB", pe_text = "has continued" }, new Text { pe_tag = "ADV1", pe_text = "at a moderate rate" }, new Text { pe_tag = "TM1", pe_text = "so far" }, new Text { pe_tag = "TM2", pe_text = "this year" }, new Text { pe_tag = "BKP", pe_text = " . " } } }; var adverbUnitStrategy = new AdverbUnitStrategy(); var returnedSentence = adverbUnitStrategy.ShuffleSentence(sentence); Assert.That( returnedSentence.Texts.Count(text => text.pe_text == "at a moderate rate"), Is.EqualTo(1)); }
public void When_Adverb_Preceeded_By_VB_MoveAdverbBeforeVB() { var sentence = new Sentence() { Texts = new List <Text>() { new Text { pe_tag = "VB", pe_text = "" }, new Text { pe_tag = "NN", pe_text = "" }, new Text { pe_tag = "ADV1", pe_text = "" }, new Text { pe_tag = "BKP", pe_text = " . " } } }; var adverbUnitStrategy = new AdverbUnitStrategy(); var returnedSentence = adverbUnitStrategy.ShuffleSentence(sentence); Assert.That(returnedSentence.Texts[0].pe_tag, Is.EqualTo("ADV1")); Assert.That(returnedSentence.Texts[1].pe_tag, Is.EqualTo("VB")); Assert.That(returnedSentence.Texts[2].pe_tag, Is.EqualTo("NN")); Assert.That(returnedSentence.Texts[3].pe_tag, Is.EqualTo("BKP")); }
public void When_ADV_before_Verb_Does_Not_Shuffle() { var sentence = new Sentence() { Texts = new List <Text> { new Text() { pe_text = " He " }, new Text() { pe_text = " quickly ", pe_tag = "ADV" }, new Text() { pe_text = " recovered ", pe_tag = "PAST" }, new Text() { pe_text = " . " } }, }; var adverbUnitStrategy = new AdverbUnitStrategy(); var returnedSentence = adverbUnitStrategy.ShuffleSentence(sentence); Assert.That(returnedSentence.Texts[0].pe_text, Is.EqualTo(" He ")); Assert.That(returnedSentence.Texts[1].pe_text, Is.EqualTo(" quickly ")); Assert.That(returnedSentence.Texts[2].pe_text, Is.EqualTo(" recovered ")); Assert.That(returnedSentence.Texts[3].pe_text, Is.EqualTo(" . ")); }
public void When_Adverb_Preceeded_By_VB_PAST_PRES_Move_Adverb_Before_It() { // He PASTshouted ADVloudlyNBKP, ADVemotionally BKand ADVnon - stop BKP. var sentence = new Sentence() { Texts = new List <Text> { new Text() { pe_text = " He ", pe_tag = "NN", pe_tag_revised = "NULL", pe_order = 1663970 }, new Text() { pe_text = " shouted ", pe_tag = "PAST", pe_tag_revised = "NULL", pe_order = 1663980 }, new Text() { pe_text = " loudly ", pe_tag = "ADV", pe_tag_revised = "ADV1", pe_order = 1663990 }, new Text() { pe_text = " , ", pe_tag = "NBKP", pe_tag_revised = "NULL", pe_order = 1664000 }, new Text() { pe_text = " emotionally ", pe_tag = "ADV", pe_tag_revised = "NULL", pe_order = 1664010 }, new Text() { pe_text = " and ", pe_tag = "DYN2", pe_tag_revised = "BK", pe_order = 1664020 }, new Text() { pe_text = " non-stop ", pe_tag = "ADV", pe_tag_revised = "NULL", pe_order = 1664030 }, new Text() { pe_text = " . ", pe_tag = "BKP", pe_tag_revised = "NULL", pe_order = 1664040 } }, pe_para_no = 123 }; var adverbUnitStrategy = new AdverbUnitStrategy(); var returnedSentence = adverbUnitStrategy.ShuffleSentence(sentence); // He ADVloudlyNBKP, ADVemotionally BKand ADVnon-stop PASTshouted BKP Assert.That(returnedSentence.Texts[0].pe_text, Is.EqualTo(" He ")); Assert.That(returnedSentence.Texts[1].pe_text, Is.EqualTo(" loudly ")); Assert.That(returnedSentence.Texts[2].pe_text, Is.EqualTo(" , ")); Assert.That(returnedSentence.Texts[3].pe_text, Is.EqualTo(" emotionally ")); Assert.That(returnedSentence.Texts[4].pe_text, Is.EqualTo(" and ")); Assert.That(returnedSentence.Texts[5].pe_text, Is.EqualTo(" non-stop ")); Assert.That(returnedSentence.Texts[6].pe_text, Is.EqualTo(" shouted ")); Assert.That(returnedSentence.Texts[7].pe_text, Is.EqualTo(" . ")); Assert.That(returnedSentence.pe_para_no == 123); }
public void Underlines_FromFirstToLastAdverbUnit_IncludingAllUnitsInBetween( string unShuffledSentence) { Paragraph paragraph = DocumentContentHelper.GetParagraphFromWordDocument(unShuffledSentence); var clauserUnitStrategy = new AdverbUnitStrategy(); // act var shufflerParagraph = clauserUnitStrategy.ShuffleSentenceUnit(paragraph); // assert Text[] sentenceArray = shufflerParagraph.Descendants <Text>().ToArray(); int firstAdverbPosition = Array.FindIndex( sentenceArray, text => text.InnerText == "ADV"); int lastAdverbPosition = Array.FindLastIndex( sentenceArray, text => text.InnerText == "ADV") + 1; for (int index = 0; index < sentenceArray.Length; index++) { Text t = sentenceArray[index]; if (index >= firstAdverbPosition && index <= lastAdverbPosition) { Assert.That(t.Parent.InnerXml.Contains("<w:u w:val=\"single\" />")); } } }
public void When_Adverb_Preceeded_By_PRES_Move_Adverb_Before_PRES() { // He is PRESdoing it ADVconsistently and ADVcarefully BKP. var sentence = new Sentence() { Texts = new List <Text> { new Text() { pe_text = " He ", pe_tag = "NN", pe_tag_revised = "NULL", pe_order = 1663970 }, new Text() { pe_text = " is ", pe_tag = "DYN7", pe_tag_revised = "NULL", pe_order = 1663980 }, new Text() { pe_text = " doing ", pe_tag = "PRES", pe_tag_revised = "NULL", pe_order = 1663990 }, new Text() { pe_text = " it ", pe_tag = "NN", pe_tag_revised = "NULL", pe_order = 1664000 }, new Text() { pe_text = " consistently ", pe_tag = "ADV", pe_tag_revised = "ADV1", pe_order = 1664010 }, new Text() { pe_text = " and ", pe_tag = "", pe_tag_revised = "NN", pe_order = 1664020 }, new Text() { pe_text = " carefully ", pe_tag = "ADV", pe_tag_revised = "ADV2", pe_order = 1664030 }, new Text() { pe_text = " . ", pe_tag = "BKP", pe_tag_revised = "NULL", pe_order = 1664040 } } }; var adverbUnitStrategy = new AdverbUnitStrategy(); var returnedSentence = adverbUnitStrategy.ShuffleSentence(sentence); // He is ADVconsistently and ADVcarefully PRESdoing it BKP. Assert.That(returnedSentence.Texts[0].pe_text, Is.EqualTo(" He ")); Assert.That(returnedSentence.Texts[1].pe_text, Is.EqualTo(" is ")); Assert.That(returnedSentence.Texts[2].pe_text, Is.EqualTo(" consistently ")); Assert.That(returnedSentence.Texts[3].pe_text, Is.EqualTo(" and ")); Assert.That(returnedSentence.Texts[4].pe_text, Is.EqualTo(" carefully ")); Assert.That(returnedSentence.Texts[5].pe_text, Is.EqualTo(" doing ")); Assert.That(returnedSentence.Texts[6].pe_text, Is.EqualTo(" it ")); Assert.That(returnedSentence.Texts[7].pe_text, Is.EqualTo(" . ")); }
private static void AssertThatUnShuffledSentenceReturnsExpectedSentence(string unShuffledSentence, string expectedSentence) { Paragraph paragraph = DocumentContentHelper.GetParagraphFromWordDocument(unShuffledSentence); var clauserUnitStrategy = new AdverbUnitStrategy(); // act var shufflerParagraph = clauserUnitStrategy.ShuffleSentenceUnit(paragraph); // assert Assert.That(shufflerParagraph.InnerText, Is.EqualTo( expectedSentence)); }
public void Shuffler_Routines_maintain_FullStop_At_end_of_sentences() { var sentence = LargeSentence; var clauserUnitStrategy = new ClauserUnitStrategy(); sentence = clauserUnitStrategy.ShuffleSentence(sentence); var adverbUnitStrategy = new AdverbUnitStrategy(); sentence = adverbUnitStrategy.ShuffleSentence(sentence); var timerUnitStrategy = new TimerUnitStrategy(); sentence = timerUnitStrategy.ShuffleSentence(sentence); var mDUnitStrategy = new MdUnitStrategy(); sentence = mDUnitStrategy.ShuffleSentence(sentence); var mdbkUnitStrategy = new MdbkUnitStrategy(); sentence = mdbkUnitStrategy.ShuffleSentence(sentence); var mdNulThatUnitStrategy = new MdNulThatUnitStrategy(); sentence = mdNulThatUnitStrategy.ShuffleSentence(sentence); var ddlUnitStrategy = new DdlUnitStrategy(); sentence = ddlUnitStrategy.ShuffleSentence(sentence); var pyYoUnitStrategy = new PyYoUnitStrategy(); sentence = pyYoUnitStrategy.ShuffleSentence(sentence); var percentUnitStrategy = new PercentUnitStrategy(); sentence = percentUnitStrategy.ShuffleSentence(sentence); Assert.That(sentence.Texts.Last().IsSentenceEnd); }
public void When_ADV_Then_ADJ_Does_Not_Shuffle() { var sentence = new Sentence() { Texts = new List <Text> { new Text() { pe_text = " This " }, new Text() { pe_text = " is " }, new Text() { pe_text = " absolutely ", pe_tag = "ADV" }, new Text() { pe_text = " great ", pe_tag = "ADJ" }, new Text() { pe_text = " . " } }, }; var adverbUnitStrategy = new AdverbUnitStrategy(); var returnedSentence = adverbUnitStrategy.ShuffleSentence(sentence); Assert.That(returnedSentence.Texts[0].pe_text, Is.EqualTo(" This ")); Assert.That(returnedSentence.Texts[1].pe_text, Is.EqualTo(" is ")); Assert.That(returnedSentence.Texts[2].pe_text, Is.EqualTo(" absolutely ")); Assert.That(returnedSentence.Texts[3].pe_text, Is.EqualTo(" great ")); Assert.That(returnedSentence.Texts[4].pe_text, Is.EqualTo(" . ")); }
public void When_EconomicGrowth_Sentence_Shuffled_provides_Correct_Output() { var sentence = new Sentence() { Texts = new List <Text>() { new Text { pe_tag = "ADJ", pe_text = "Economic", pe_order = 10 }, new Text { pe_tag = "NN", pe_text = "growth", pe_order = 20 }, new Text { pe_tag = "DYN9", pe_tag_revised = "VBA", pe_text = "has", pe_order = 30 }, new Text { pe_tag = "PAST", pe_text = "continued", pe_order = 40 }, new Text { pe_tag = "MD", pe_tag_revised = "MD1", pe_text = "at", pe_order = 50, pe_merge_ahead = 3 }, new Text { pe_tag = "PREN", pe_text = "a", pe_order = 60, pe_merge_ahead = 2 }, new Text { pe_tag = "ADJ", pe_text = "moderate", pe_order = 70 }, new Text { pe_tag = "NN", pe_text = "rate", pe_order = 80 }, new Text { pe_tag = "TM", pe_tag_revised = "TM1", pe_text = "so far", pe_order = 90 }, new Text { pe_tag = "TM", pe_tag_revised = "TM2", pe_text = "this year", pe_order = 100 }, new Text { pe_tag = "BKP", pe_text = " . ", pe_order = 110 }, } }; var adverbUnitStrategy = new AdverbUnitStrategy(); sentence = adverbUnitStrategy.ShuffleSentence(sentence); var timerUnitStrategy = new TimerUnitStrategy(); sentence = timerUnitStrategy.ShuffleSentence(sentence); Assert.That(sentence.Texts[0].pe_text, Is.EqualTo("Economic")); Assert.That(sentence.Texts[1].pe_text, Is.EqualTo("growth")); //NN Assert.That(sentence.Texts[2].pe_text, Is.EqualTo("this year")); //TM Assert.That(sentence.Texts[3].pe_text, Is.EqualTo("so far")); Assert.That(sentence.Texts[4].pe_text, Is.EqualTo("has")); //VBA Assert.That(sentence.Texts[5].pe_text, Is.EqualTo("continued")); //PAST Assert.That(sentence.Texts[6].pe_text, Is.EqualTo("at")); Assert.That(sentence.Texts[7].pe_text, Is.EqualTo("a")); Assert.That(sentence.Texts[8].pe_text, Is.EqualTo("moderate")); Assert.That(sentence.Texts[9].pe_text, Is.EqualTo("rate")); Assert.That(sentence.Texts[10].pe_text, Is.EqualTo(" . ")); var mDUnitStrategy = new MdUnitStrategy(); sentence = mDUnitStrategy.ShuffleSentence(sentence); Assert.That(sentence.Texts[0].pe_text, Is.EqualTo("Economic")); Assert.That(sentence.Texts[1].pe_text, Is.EqualTo("growth")); Assert.That(sentence.Texts[2].pe_text, Is.EqualTo("this year")); //TM 2 & 1 Assert.That(sentence.Texts[3].pe_text, Is.EqualTo("so far")); Assert.That(sentence.Texts[4].pe_text, Is.EqualTo("has")); //VBA Assert.That(sentence.Texts[5].pe_text, Is.EqualTo("at")); //MD1 Assert.That(sentence.Texts[6].pe_text, Is.EqualTo("a")); Assert.That(sentence.Texts[7].pe_text, Is.EqualTo("moderate")); Assert.That(sentence.Texts[8].pe_text, Is.EqualTo("rate")); Assert.That(sentence.Texts[9].pe_text, Is.EqualTo("continued")); //PAST Assert.That(sentence.Texts[10].pe_text, Is.EqualTo(" . ")); var mdbkUnitStrategy = new MdbkUnitStrategy(); sentence = mdbkUnitStrategy.ShuffleSentence(sentence); var mdNulThatUnitStrategy = new MdNulThatUnitStrategy(); sentence = mdNulThatUnitStrategy.ShuffleSentence(sentence); var ddlUnitStrategy = new DdlUnitStrategy(); sentence = ddlUnitStrategy.ShuffleSentence(sentence); var pyYoUnitStrategy = new PyYoUnitStrategy(); sentence = pyYoUnitStrategy.ShuffleSentence(sentence); var percentUnitStrategy = new PercentUnitStrategy(); sentence = percentUnitStrategy.ShuffleSentence(sentence); var clauserUnitStrategy = new ClauserUnitStrategy(); sentence = clauserUnitStrategy.ShuffleSentence(sentence); Assert.That(sentence.Texts[0].pe_text, Is.EqualTo("Economic")); Assert.That(sentence.Texts[1].pe_text, Is.EqualTo("growth")); Assert.That(sentence.Texts[2].pe_text, Is.EqualTo("this year")); //TM 2 & 1 Assert.That(sentence.Texts[3].pe_text, Is.EqualTo("so far")); Assert.That(sentence.Texts[4].pe_text, Is.EqualTo("has")); //VBA Assert.That(sentence.Texts[5].pe_text, Is.EqualTo("at")); //MD1 Assert.That(sentence.Texts[6].pe_text, Is.EqualTo("a")); Assert.That(sentence.Texts[7].pe_text, Is.EqualTo("moderate")); Assert.That(sentence.Texts[8].pe_text, Is.EqualTo("rate")); Assert.That(sentence.Texts[9].pe_text, Is.EqualTo("continued")); //PAST Assert.That(sentence.Texts[10].pe_text, Is.EqualTo(" . ")); }
public void EachStrategyInTurnMaintainsTheSentenceEnding() { var realGdpSentence = new Sentence() { Texts = new List <Text>() { new Text() { pe_tag_revised = "ADJ", pe_text = "Real" }, new Text() { pe_tag_revised = "NN", pe_text = "gdp" }, new Text() { pe_tag_revised = "PAST", pe_text = "rose" }, new Text() { pe_tag_revised = "MD2", pe_text = "at" }, new Text() { pe_tag_revised = "PREN1", pe_text = "an" }, new Text() { pe_tag_revised = "NN", pe_text = "annual rate" }, new Text() { pe_tag_revised = "MD2", pe_text = "of " }, new Text() { pe_tag_revised = "PREN2", pe_text = "about" }, new Text() { pe_tag_revised = "DG", pe_text = "2" }, new Text() { pe_tag_revised = "NN", pe_text = "percent" }, new Text() { pe_tag_revised = "MD3", pe_text = "in" }, new Text() { pe_tag_revised = "PREN3", pe_text = "the" }, new Text() { pe_tag_revised = "TM1", pe_text = "first qtr" }, new Text() { pe_tag_revised = "CS", pe_text = "after" }, //CS 13 new Text() { pe_tag_revised = "PRES", pe_text = "increasing" }, new Text() { pe_tag_revised = "MD4", pe_text = "at" }, new Text() { pe_tag_revised = "PREN4", pe_text = "a" }, new Text() { pe_tag_revised = "DG", pe_text = "3" }, new Text() { pe_tag_revised = "NN", pe_text = "percent" }, new Text() { pe_tag_revised = "NN", pe_text = "pace" }, new Text() { pe_tag_revised = "MD5", pe_text = "in" }, new Text() { pe_tag_revised = "PREN5", pe_text = "the" }, new Text() { pe_tag_revised = "TM2", pe_text = "4th qtr" }, new Text() { pe_tag_revised = "MD6", pe_text = " of " }, new Text() { pe_tag_revised = "TMY", pe_text = "2011" }, new Text() { pe_tag_revised = "PY", pe_text = "zhihou" }, new Text() { pe_tag_revised = "BKP", pe_text = " . " } } }; ClauserUnitStrategy clauserUnitStrategy = new ClauserUnitStrategy(); realGdpSentence = clauserUnitStrategy.ShuffleSentence(realGdpSentence); Assert.That(realGdpSentence.Texts[0].pe_tag_revised == "CS"); Assert.That(realGdpSentence.Texts[realGdpSentence.TextCount - 1].pe_text == " . "); AdverbUnitStrategy adverbUnitStrategy = new AdverbUnitStrategy(); realGdpSentence = adverbUnitStrategy.ShuffleSentence(realGdpSentence); Assert.That(realGdpSentence.Texts[realGdpSentence.TextCount - 1].pe_text == " . "); TimerUnitStrategy timerUnitStrategy = new TimerUnitStrategy(); realGdpSentence = timerUnitStrategy.ShuffleSentence(realGdpSentence); Assert.That(realGdpSentence.Texts[realGdpSentence.TextCount - 1].pe_text == " . "); }