algorithms-sandbox/dictee/java/test/com/brainbaking/dictee/DicteeTests.java

77 lines
2.3 KiB
Java

package com.brainbaking.dictee;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class DicteeTests {
@ParameterizedTest
@ValueSource(strings = {
"sup Dikke kerels|wup dikkE kerel|6",
"sup Dikke kerels|wup dikkE kerels|4" })
public void combinatieGeval_hoofdLetterEnKleineLetters(String input) {
Dictee dictee = createDictee(input);
int expected = getExpected(input);
assertEquals(expected, dictee.verbeter());
}
@ParameterizedTest
@ValueSource(strings = {
"sup dikke kerels|wup dikke kerel|4",
"sup dikke kerels|wup dikke kerels|2" })
public void combinatieGeval_zonderHoofdletters(String input) {
Dictee dictee = createDictee(input);
int expected = getExpected(input);
assertEquals(expected, dictee.verbeter());
}
@Test
public void uitgebreidGeval() {
Dictee dictee = new Dictee("mogelike drangken zijn water cola fruitsap",
"Mogelijke dranken zijn: water, cola, fruitsap.");
assertEquals(13, dictee.verbeter());
}
@ParameterizedTest
@ValueSource(strings = { "kat|kat|0", "kot|kat|2" })
public void basisGevallen_zelfdeGrootte(String input) {
Dictee dictee = createDictee(input);
int expected = getExpected(input);
assertEquals(expected, dictee.verbeter());
}
@ParameterizedTest
@ValueSource(strings = { "kast|kat|2", "at|kat|2", "kat|at|2" })
public void verschillenInGrootte(String input) {
Dictee dictee = createDictee(input);
int expected = getExpected(input);
assertEquals(expected, dictee.verbeter());
}
@ParameterizedTest
@ValueSource(strings = { "kat|Kat|1", "Kat|kat|1", "Kat|lat|2", "lat|Kat|2" })
public void hoofdletters(String input) {
Dictee dictee = createDictee(input);
int expected = getExpected(input);
assertEquals(expected, dictee.verbeter());
}
private int getExpected(String input) {
return Integer.parseInt(input.split("\\|")[2]);
}
private Dictee createDictee(String input) {
String[] split = input.split("\\|");
return new Dictee(split[0], split[1]);
}
}