diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2021-12-09 23:23:46 +0530 |
---|---|---|
committer | Harsh Shandilya <me@msfjarvis.dev> | 2021-12-21 02:13:24 +0530 |
commit | 16392b75814a71a4d78b3598cd3364baeb0b446e (patch) | |
tree | 2ca56bce0682664cf0bfc7bee0c58511e40907b8 /passgen/diceware/src/test/kotlin/dev | |
parent | 67f8eb840425ce287041d5ac5094c7831779f4d7 (diff) |
diceware: add Die class and tests
Diffstat (limited to 'passgen/diceware/src/test/kotlin/dev')
-rw-r--r-- | passgen/diceware/src/test/kotlin/dev/msfjarvis/aps/passgen/diceware/DieTest.kt | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/passgen/diceware/src/test/kotlin/dev/msfjarvis/aps/passgen/diceware/DieTest.kt b/passgen/diceware/src/test/kotlin/dev/msfjarvis/aps/passgen/diceware/DieTest.kt new file mode 100644 index 00000000..69a355c5 --- /dev/null +++ b/passgen/diceware/src/test/kotlin/dev/msfjarvis/aps/passgen/diceware/DieTest.kt @@ -0,0 +1,47 @@ +/* + * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ + +package dev.msfjarvis.aps.passgen.diceware + +import kotlin.random.Random +import kotlin.test.Test +import kotlin.test.assertEquals + +class DieTest { + + /** Pre-seeded [Random] instance to ensure tests are deterministic. */ + private val random = Random(1_00_000) + + private val intGenerator = RandomIntGenerator { it.random(random) } + + @Test + fun test_one_roll() { + val die = Die(6, intGenerator) + assertEquals(5, die.roll()) + } + + @Test + fun test_multiple_rolls() { + val die = Die(6, intGenerator) + assertEquals(526242, die.rollMultiple(6)) + } + + @Test + fun test_consecutive_rolls() { + val die = Die(6, intGenerator) + assertEquals(5, die.roll()) + assertEquals(2, die.roll()) + assertEquals(6, die.roll()) + assertEquals(2, die.roll()) + assertEquals(4, die.roll()) + assertEquals(2, die.roll()) + } + + @Test + fun test_100_sides() { + val die = Die(100, intGenerator) + assertEquals(67, die.roll()) + } +} |