示例#1
0
        public void GetSingleAnalyzedCharacter_CorrectFrequency(char character, string sourceText,
                                                                decimal expectedFrequency, int decimalPlaceDelta)
        {
            var frequencyAnalyser = new CharFrequencyAnalyzer();

            var actual = frequencyAnalyser.GetSingleAnalyzedCharacter(character, sourceText);

            Assert.AreEqual(expectedFrequency, decimal.Round(actual.Frequency, decimalPlaceDelta));
        }
示例#2
0
        public void GetAllAnalyzedCharacters_OccurenceCount_IsEqualToSourceTextLength(string sourceText)
        {
            var frequencyAnalyser  = new CharFrequencyAnalyzer();
            var analyzedCharacters = frequencyAnalyser.GetAllAnalyzedCharacters(sourceText);

            var totalOccurenceCount = analyzedCharacters.Sum(analyzedCharacter => analyzedCharacter.OccurenceCount);

            Assert.AreEqual(sourceText.Length, totalOccurenceCount);
        }
示例#3
0
        public void GetSingleAnalyzedCharacter_NoContent_ThrowsArgumentOutOfRange(char character,
                                                                                  string sourceText)
        {
            var frequencyAnalyser = new CharFrequencyAnalyzer();

            Assert.Throws <ArgumentOutOfRangeException>(() =>
            {
                frequencyAnalyser.GetSingleAnalyzedCharacter(character, sourceText);
            });
        }
示例#4
0
        public void GetSingleAnalyzedCharacter_HasContent_IsEqualToExpectedLength(char character,
                                                                                  string sourceText, int expectedCount)
        {
            var frequencyAnalyser = new CharFrequencyAnalyzer();
            var analyzedCharacter = frequencyAnalyser.GetSingleAnalyzedCharacter(character, sourceText);

            if (analyzedCharacter.OccurenceCount < 0)
            {
                Assert.Fail("Negative character occurence count");
            }

            Assert.AreEqual(expectedCount, analyzedCharacter.OccurenceCount);
        }
示例#5
0
        public void GGetAllAnalyzedCharacters_FindsAllUniqueCharacters(string sourceText, char[] uniqueCharacters)
        {
            var frequencyAnalyser  = new CharFrequencyAnalyzer();
            var analyzedCharacters = frequencyAnalyser.GetAllAnalyzedCharacters(sourceText).ToArray();

            Assert.AreEqual(uniqueCharacters.Length, analyzedCharacters.Count());

            foreach (var uniqueCharacter in uniqueCharacters)
            {
                if (!analyzedCharacters.Any(ac => ac.Character.Equals(uniqueCharacter)))
                {
                    Assert.Fail($"Character: '{uniqueCharacter}' was not found in the output set.");
                }
            }

            Assert.Pass();
        }
示例#6
0
        public void GetMultipleAnalyzedCharacters_HasContent_AllCharactersPresent(char[] characters,
                                                                                  string sourceText)
        {
            var frequencyAnalyser  = new CharFrequencyAnalyzer();
            var analyzedCharacters = frequencyAnalyser.GetMultipleAnalyzedCharacters(characters, sourceText).ToArray();

            Assert.AreEqual(characters.Length, analyzedCharacters.Length);

            foreach (var character in characters)
            {
                if (!analyzedCharacters.Any(ac => ac.Character.Equals(character)))
                {
                    Assert.Fail($"Character '{character}' was not found in the analyzed set.");
                }
            }

            Assert.Pass();
        }
示例#7
0
        public void GetAllAnalyzedCharacters_EmptyInput_ThrowsArgumentNullException()
        {
            var frequencyAnalyzer = new CharFrequencyAnalyzer();

            Assert.Throws <ArgumentNullException>(() => { frequencyAnalyzer.GetAllAnalyzedCharacters(string.Empty); });
        }