diff --git a/src/CharacterFrequencyCounter.java b/src/CharacterFrequencyCounter.java index d4e09c1..a1b3060 100644 --- a/src/CharacterFrequencyCounter.java +++ b/src/CharacterFrequencyCounter.java @@ -60,8 +60,10 @@ public int getFrequency(char c) { */ public double getRelativePercentage(char c) { c = Character.toLowerCase(c); - int charCount = frequencyMap.get(c); - + int charCount = 0; + if(frequencyMap.get(c) != null){ + charCount = frequencyMap.get(c); + } return ((double) charCount / totalCharacterCount) * 100; } } diff --git a/src/CharacterFrequencyCounterTest.java b/src/CharacterFrequencyCounterTest.java index bed3ee2..eaf0517 100644 --- a/src/CharacterFrequencyCounterTest.java +++ b/src/CharacterFrequencyCounterTest.java @@ -3,5 +3,23 @@ import org.junit.jupiter.api.Test; public class CharacterFrequencyCounterTest { - + @Test + public void testLAppears3TimesInHelloWorld(){ + // arrange + CharacterFrequencyCounter counter = new CharacterFrequencyCounter("hello world"); + // act + int actual = counter.getFrequency('l'); + // assert + assertEquals(3, actual); + } + + @Test + public void testNonOccurringCharacterPercentageIsZero(){ + // arrange + CharacterFrequencyCounter counter = new CharacterFrequencyCounter("hi there"); + // act + double actualPercent = counter.getRelativePercentage('z'); + // assert + assertEquals(0.0, actualPercent, 0.0001); + } } \ No newline at end of file