public void Test_GenerateWords_CorrectNumber()
 {
     MarkovGenerator gen = InitBaseMarkovGenerator();
     List<char> correctSplit = new List<char>();
     correctSplit.Add(' ');
     correctSplit.AddRange(_defaultSentenceEnd);
     correctSplit.AddRange(_defaultPunctuation);
     string[] correctWords = _simpleString.Split(correctSplit.ToArray());
     string[] correctWordsLower = new string[correctWords.Length] ;
     for(int i = 0 ; i < correctWords.Length ; i++)
     {
     	correctWordsLower[i] = correctWords[i].ToLowerInvariant() ;
     }
     string[] words = gen.GenerateWords(20).Split(new char[]{' '});
     Assert.AreEqual(20, words.Length);
     foreach (string word in words)
     {
         CollectionAssert.DoesNotContain(_defaultPunctuation, word);
         CollectionAssert.DoesNotContain(_defaultSentenceEnd, word);
         CollectionAssert.Contains(correctWordsLower, word);
     }
 }
		public void Test_GetNumWords_NegativeNumWords()
		{
			MarkovGenerator gen = InitBaseMarkovGenerator() ;
            Assert.Throws<Exceptions.InvalidArguments>(delegate { gen.GenerateWords(-2); });
		}