Skip to content

Instantly share code, notes, and snippets.

@BartoszDabek
Created February 29, 2020 09:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save BartoszDabek/8b96279d2c6ccc4fd7da51f890a2b58b to your computer and use it in GitHub Desktop.
Save BartoszDabek/8b96279d2c6ccc4fd7da51f890a2b58b to your computer and use it in GitHub Desktop.
TDD - recuritment task tests
class FrequencyTest {
private Frequency frequency;
@BeforeEach
void setUp() {
frequency = getFrequency();
}
@Test
void should_return_1_for_single_character() {
Map<Character, Double> result = frequency.analyze("a");
assertEquals(1.0, result.get('a'));
}
@Test
void should_return_half_when_two_different_characters() {
Map<Character, Double> result = frequency.analyze("ab");
assertEquals(0.5, result.get('a'));
assertEquals(0.5, result.get('b'));
}
@Test
void should_return_1_for_the_same_character() {
Map<Character, Double> result = frequency.analyze("aaa");
assertEquals(1.0, result.get('a'));
}
@Test
void should_return_even_half_when_two_different_characters() {
Map<Character, Double> result = frequency.analyze("aab");
assertEquals(0.5, result.get('a'));
assertEquals(0.5, result.get('b'));
}
@Test
void should_return_even_half_when_different_characters() {
Map<Character, Double> result = frequency.analyze("abcd");
assertEquals(0.25, result.get('a'));
assertEquals(0.25, result.get('b'));
assertEquals(0.25, result.get('c'));
assertEquals(0.25, result.get('d'));
}
@Test
void should_return_1_for_the_same_character_with_Upper_And_Lower_case() {
Map<Character, Double> result = frequency.analyze("AaA");
assertEquals(1.0, result.get('a'));
}
@Test
void should_return_even_half_when_different_characters_occurs_few_times() {
Map<Character, Double> result = frequency.analyze("aaaaAbcdd");
assertEquals(0.25, result.get('a'));
assertEquals(0.25, result.get('b'));
assertEquals(0.25, result.get('c'));
assertEquals(0.25, result.get('d'));
}
@Test
void should_throw_exception_when_null_input() {
assertThrows(IllegalArgumentException.class, () -> frequency.analyze(null));
}
private Frequency getFrequency() {
return new FrequencyImpl();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment