From 7db24db23f8ee5c29ab2ee0900920dd15f71f046 Mon Sep 17 00:00:00 2001 From: powersagitar <114868133+powersagitar@users.noreply.github.com> Date: Wed, 8 Jan 2025 16:17:46 -0500 Subject: [PATCH] Add `Response` unit tests --- .../app/src/test/java/mastermind/AppTest.java | 14 --- .../test/java/mastermind/ResponseTest.java | 95 +++++++++++++++++++ 2 files changed, 95 insertions(+), 14 deletions(-) delete mode 100644 culminating-mastermind/app/src/test/java/mastermind/AppTest.java create mode 100644 culminating-mastermind/app/src/test/java/mastermind/ResponseTest.java diff --git a/culminating-mastermind/app/src/test/java/mastermind/AppTest.java b/culminating-mastermind/app/src/test/java/mastermind/AppTest.java deleted file mode 100644 index ff355b8..0000000 --- a/culminating-mastermind/app/src/test/java/mastermind/AppTest.java +++ /dev/null @@ -1,14 +0,0 @@ -/* - * This source file was generated by the Gradle 'init' task - */ -package mastermind; - -import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; - -class AppTest { - @Test void appHasAGreeting() { - // App classUnderTest = new App(); - // assertNotNull(classUnderTest.getGreeting(), "app should have a greeting"); - } -} diff --git a/culminating-mastermind/app/src/test/java/mastermind/ResponseTest.java b/culminating-mastermind/app/src/test/java/mastermind/ResponseTest.java new file mode 100644 index 0000000..5563393 --- /dev/null +++ b/culminating-mastermind/app/src/test/java/mastermind/ResponseTest.java @@ -0,0 +1,95 @@ +package mastermind; + +import mastermind.core.Code; +import mastermind.core.Response; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class ResponseTest { + @Test + void guessAllCorrect() { + final Code code = new Code(List.of(0, 0, 0, 0)); + final Code guess = new Code(List.of(0, 0, 0, 0)); + final Response response = new Response(code, guess); + final int expectedCorrectCount = 4; + final int expectedMisplacementCount = 0; + + assertEquals(expectedCorrectCount, response.getResponse().first); + assertEquals(expectedMisplacementCount, response.getResponse().second); + } + + @Test + void guessPartialCorrectNoMisplacement() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final Code guess = new Code(List.of(0, 1, 4, 5)); + final Response response = new Response(code, guess); + final int expectedCorrectCount = 2; + final int expectedMisplacementCount = 0; + + assertEquals(expectedCorrectCount, response.getResponse().first); + assertEquals(expectedMisplacementCount, response.getResponse().second); + } + + @Test + void guessNoCorrectNoMisplacement() { + final Code code = new Code(List.of(0, 0, 0, 0)); + final Code guess = new Code(List.of(1, 1, 1, 1)); + final Response response = new Response(code, guess); + final int expectedCorrectCount = 0; + final int expectedMisplacementCount = 0; + + assertEquals(expectedCorrectCount, response.getResponse().first); + assertEquals(expectedMisplacementCount, response.getResponse().second); + } + + @Test + void guessPartialCorrectWithMisplacement() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final Code guess = new Code(List.of(0, 1, 3, 2)); + final Response response = new Response(code, guess); + final int expectedCorrectCount = 2; + final int expectedMisplacementCount = 2; + + assertEquals(expectedCorrectCount, response.getResponse().first); + assertEquals(expectedMisplacementCount, response.getResponse().second); + } + + @Test + void guessAllMisplacement() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final Code guess = new Code(List.of(3, 2, 1, 0)); + final Response response = new Response(code, guess); + final int expectedCorrectCount = 0; + final int expectedMisplacementCount = 4; + + assertEquals(expectedCorrectCount, response.getResponse().first); + assertEquals(expectedMisplacementCount, response.getResponse().second); + } + + @Test + void guessAllMisplacementWithDuplicates() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final Code guess = new Code(List.of(3, 3, 3, 4)); + final Response response = new Response(code, guess); + final int expectedCorrectCount = 0; + final int expectedMisplacementCount = 1; + + assertEquals(expectedCorrectCount, response.getResponse().first); + assertEquals(expectedMisplacementCount, response.getResponse().second); + } + + @Test + void guessMisplacementIsCorrect() { + final Code code = new Code(List.of(0, 1, 2, 3)); + final Code guess = new Code(List.of(0, 0, 0, 0)); + final Response response = new Response(code, guess); + final int expectedCorrectCount = 1; + final int expectedMisplacementCount = 0; + + assertEquals(expectedCorrectCount, response.getResponse().first); + assertEquals(expectedMisplacementCount, response.getResponse().second); + } +}