From db5384201f620f8a7e3fd4f0d3ef3ceb379813fc Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Tue, 27 Dec 2022 11:58:59 +0100 Subject: [PATCH] Add test for Tichu. --- .../me/zobrist/tichucounter/TichuUnitTest.kt | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt diff --git a/app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt b/app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt new file mode 100644 index 0000000..54b6eaf --- /dev/null +++ b/app/src/test/java/me/zobrist/tichucounter/TichuUnitTest.kt @@ -0,0 +1,62 @@ +package me.zobrist.tichucounter + +import me.zobrist.tichucounter.domain.Round +import me.zobrist.tichucounter.domain.Tichu +import org.junit.Assert.* +import org.junit.Test + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class TichuUnitTest { + @Test + fun calculation_isCorrect() { + + var inputScoreA = 125 + var inputScoreB = -25 + + val tichu: Tichu = Tichu() + + // Normal round range -25 to 125 as input + while (inputScoreB <= 125) { + assertGeneratedRound(tichu, inputScoreA, inputScoreB) + + inputScoreA -= 5 + inputScoreB += 5 + } + + // Double win + assertGeneratedRound(tichu, 200, 0) + + // Double win with Tichu + assertGeneratedRound(tichu, 300, 0) + + // Double win with Grand Tichu + assertGeneratedRound(tichu, 400, 0) + + //Good rounds trough Tichu + assertValidRound(tichu, Round(0,0)) + assertValidRound(tichu, Round(-100,0)) + + //Bad rounds + assertInvalidRound(tichu, Round(5, 12)) + assertInvalidRound(tichu, Round(12, 5)) + assertInvalidRound(tichu, Round(5, 55)) + } + + private fun assertGeneratedRound(tichu: Tichu, scoreA: Int, expectedScoreB: Int) { + val round = Round(scoreA, tichu.calculateOtherScore(scoreA)) + assertEquals(expectedScoreB, round.scoreB) + assertTrue(tichu.isValidRound(round)) + } + + private fun assertInvalidRound(tichu: Tichu, round: Round) { + assertFalse(tichu.isValidRound(round)) + } + + private fun assertValidRound(tichu: Tichu, round: Round) { + assertTrue(tichu.isValidRound(round)) + } +} \ No newline at end of file