public void ReadsTillTheEnd() { var reader = new MockCharacterReader(@"a .- _/"); var character = reader.GetNextChar(); Assert.AreEqual('a', character); character = reader.GetNextChar(); Assert.AreEqual(' ', character); character = reader.GetNextChar(); Assert.AreEqual('.', character); character = reader.GetNextChar(); Assert.AreEqual('-', character); character = reader.GetNextChar(); Assert.AreEqual('\r', character); character = reader.GetNextChar(); Assert.AreEqual('\n', character); character = reader.GetNextChar(); Assert.AreEqual('_', character); character = reader.GetNextChar(); Assert.AreEqual('/', character); Assert.ThrowsException <System.IO.EndOfStreamException>(() => reader.GetNextChar()); }
public void TestUniqueItems() { var reader = new MockCharacterReader("a b b c c c d d d d e e e e"); var analizer = new WordFrequencyAnalizer(reader); var output = analizer.Analize(); CollectionAssert.AllItemsAreUnique(output, "All words in collection are not unique"); }
public void TestConsumeWordMethod_Basic() { var reader = new MockCharacterReader("a"); var analizer = new WordFrequencyAnalizer(reader); var word = analizer.ConsumeWord(); Assert.AreEqual("a", word, $"Consumed word not equal to the expected one. Expected a, Got: {word}"); }
public void TestSorting() { var reader = new MockCharacterReader("a b b c c c d d d d e e e e"); var analizer = new WordFrequencyAnalizer(reader); var output = analizer.Analize(); var expected = new List <WordFrequency> { new WordFrequency("d", 4), new WordFrequency("e", 4), new WordFrequency("c", 3), new WordFrequency("b", 2), new WordFrequency("a", 1), }; CollectionAssert.AreEqual(expected, output, "Sorting does not satisfy requirements"); }
public void TestConsumeWordMethod_GarbageOnEndOfWord() { // single character var reader = new MockCharacterReader("a."); var analizer = new WordFrequencyAnalizer(reader); var word = analizer.ConsumeWord(); Assert.AreEqual("a", word, $"Consumed word not equal to the expected one. Expected: a, Got: {word}"); // multiple characters reader = new MockCharacterReader("a. --"); analizer = new WordFrequencyAnalizer(reader); word = analizer.ConsumeWord(); Assert.AreEqual("a", word, $"Consumed word not equal to the expected one. Expected: a, Got: {word}"); }
public void TestStringFromPdf() { var reader = new MockCharacterReader("It was the best of times, it was the worst of times"); var analizer = new WordFrequencyAnalizer(reader); var output = analizer.Analize(); var expected = new List <WordFrequency> { new WordFrequency("it", 2), new WordFrequency("of", 2), new WordFrequency("the", 2), new WordFrequency("times", 2), new WordFrequency("was", 2), new WordFrequency("best", 1), new WordFrequency("worst", 1), }; CollectionAssert.AreEqual(expected, output, "Sorting does not satisfy requirements"); }
public void TestConsumeWordMethod() { var reader = new MockCharacterReader(@"a ,-'#/471b /*-51''b47 9161!# $%&/()=4486 5161"); var analizer = new WordFrequencyAnalizer(reader); var word = analizer.ConsumeWord(); Assert.AreEqual("a", word, $"Consumed word not equal to the expected one. Expected: a, Got: {word}"); word = analizer.ConsumeWord(); Assert.AreEqual("b", word, $"Consumed word not equal to the expected one. Expected: b, Got: {word}"); word = analizer.ConsumeWord(); Assert.AreEqual("b", word, $"Consumed word not equal to the expected one. Expected: b, Got: {word}"); word = analizer.ConsumeWord(); Assert.AreEqual(string.Empty, word, $"Consumed word not equal to the expected one. Expected: null, Got: {word}"); word = analizer.ConsumeWord(); Assert.AreEqual(string.Empty, word, $"Consumed word not equal to the expected one. Expected: null, Got: {word}"); }
public void ThrowsExceptionOnEnd() { var reader = new MockCharacterReader(string.Empty); Assert.ThrowsException <System.IO.EndOfStreamException>(() => reader.GetNextChar()); }