From f167b704bf716119e39ffea7ba5af1cdda86dd92 Mon Sep 17 00:00:00 2001 From: Benjamin Dweck Date: Fri, 25 Sep 2020 13:12:20 +0200 Subject: [PATCH] Fixed breaking test (erroneously detecting ANSI environment) and mis-colorized space at the end of the bit string, at the CHECKSUM --- .../rudefox/burrow/Dice8EntropyGenerator.java | 18 +++++++++++------- .../burrow/mnemonic_8_sided_dice_tests.java | 2 ++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/io/rudefox/burrow/Dice8EntropyGenerator.java b/src/main/java/io/rudefox/burrow/Dice8EntropyGenerator.java index f6b9c22..5b6cbc0 100644 --- a/src/main/java/io/rudefox/burrow/Dice8EntropyGenerator.java +++ b/src/main/java/io/rudefox/burrow/Dice8EntropyGenerator.java @@ -90,23 +90,27 @@ public class Dice8EntropyGenerator { int entropyBitIndex = entropyBitString.length() - currentRollSetBitString.length() + rollSetBitIndex; if (entropyBitIndex < targetBitsOfEntropy) - rollSetBitsLine.append(styleBit(rollSetBitIndex, "" + currentRollSetBitString.charAt(rollSetBitIndex))); + rollSetBitsLine.append(styleBit("" + currentRollSetBitString.charAt(rollSetBitIndex), entropyBitIndex, rollSetBitIndex)); else rollSetBitsLine.append("-"); - if (rollSetBitIndex == 32) rollSetBitsLine.append("|"); - else if (rollSetBitIndex % 3 == 2) rollSetBitsLine.append(styleBit(rollSetBitIndex, " ")); - else if (rollSetBitIndex % 11 == 10) rollSetBitsLine.append(" | "); + if (rollSetBitIndex == 32) + rollSetBitsLine.append("|"); + else if (rollSetBitIndex % 3 == 2) + rollSetBitsLine.append(styleBit(" ", entropyBitIndex, rollSetBitIndex)); + else if (rollSetBitIndex % 11 == 10) + rollSetBitsLine.append(" | "); } return rollSetBitsLine; } - private String styleBit(int rollSetBitIndex, String s) { + private String styleBit(String bit, int globalEntropyBitIndex, int currentRollSetBitIndex) { - if (!ansiColorOutput) return s; + if (!ansiColorOutput || globalEntropyBitIndex >= targetBitsOfEntropy) + return bit; - return getBitFormat(rollSetBitIndex).format(s); + return getBitFormat(currentRollSetBitIndex).format(bit); } private AnsiFormat getBitFormat(int rollSetBitIndex) { diff --git a/src/test/java/io/rudefox/burrow/mnemonic_8_sided_dice_tests.java b/src/test/java/io/rudefox/burrow/mnemonic_8_sided_dice_tests.java index 97f2665..eeaa253 100644 --- a/src/test/java/io/rudefox/burrow/mnemonic_8_sided_dice_tests.java +++ b/src/test/java/io/rudefox/burrow/mnemonic_8_sided_dice_tests.java @@ -10,6 +10,8 @@ class mnemonic_8_sided_dice_tests extends CliTestFixture { @Test void with_arguments_interactive_8_sided_dice_should_generate_mnemonic_sentence() throws UnsupportedEncodingException { + System.setProperty("picocli.ansi", "false"); + withArgs("mnemonic -i8 --bits 128"); expectedOutput("Input 11 x 8-sided dice rolls [1-8]: ");