From 5f6d4873b22e9d06cad585ea5d6b481c8645e04d Mon Sep 17 00:00:00 2001 From: Aleksey Kalenchukov Date: Fri, 5 Aug 2022 09:35:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20getLettersShuffle()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.MD | 18 +++++++++++ TODO.MD | 1 - .../alphabet/AbstractAlphabet.java | 32 ++++++++++++++++--- .../kalenchukov/alphabet/Alphabetical.java | 9 ++++++ .../BelarusianAlphabetLowerCaseTest.java | 17 ++++++++++ .../alphabet/BelarusianAlphabetTest.java | 20 ++++++++++++ .../BelarusianAlphabetUpperCaseTest.java | 17 ++++++++++ .../alphabet/CyrillicAlphabetTest.java | 17 ++++++++++ .../EnglishAlphabetLowerCaseTest.java | 16 ++++++++++ .../alphabet/EnglishAlphabetTest.java | 19 +++++++++++ .../EnglishAlphabetUpperCaseTest.java | 16 ++++++++++ .../alphabet/GreekAlphabetLowerCaseTest.java | 16 ++++++++++ .../alphabet/GreekAlphabetTest.java | 18 +++++++++++ .../alphabet/GreekAlphabetUpperCaseTest.java | 16 ++++++++++ .../RussianAlphabetLowerCaseTest.java | 17 ++++++++++ .../alphabet/RussianAlphabetTest.java | 20 ++++++++++++ .../RussianAlphabetUpperCaseTest.java | 17 ++++++++++ 17 files changed, 281 insertions(+), 5 deletions(-) diff --git a/README.MD b/README.MD index 44d7909..6b0907a 100644 --- a/README.MD +++ b/README.MD @@ -56,6 +56,24 @@ alphabet.getLettersReverse(); */ ``` +#### Получение букв алфавита в перемешанном порядке + +```java +Alphabetical alphabet = new RussianAlphabet(); +alphabet.getLettersShuffle(); +/* +Результат выполнения: +[ + Ж, Ё, С, Ш, ф, У, э, о, ю, Я, Т, и, + я, Ц, г, з, Н, И, Е, Ч, Э, е, м, Д, + О, т, у, й, З, Г, Ю, д, п, Ъ, б, ш, + с, Ф, р, ч, Б, х, л, Ы, к, Л, а, К, + Щ, в, Р, ё, В, ъ, ь, Х, П, ы, Й, ц, + М, н, ж, щ, А, Ь +] +*/ +``` + #### Получение среза букв алфавита ```java diff --git a/TODO.MD b/TODO.MD index 868985f..fe86e64 100644 --- a/TODO.MD +++ b/TODO.MD @@ -8,6 +8,5 @@ * Латинский алфавит добавить * [?] Перечисления для получения алфавитов, алфавитов прописных букв, алфавитов строчных букв * [+] Метод join() объединения букв в строку с разделителем и без -* Метод shuffle() для получения букв алфавита в перемешанном случайном образом порядке * [+] Метод random() для получения случайных букв указанного количества * diff --git a/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java b/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java index c6959a0..20c313f 100644 --- a/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java +++ b/src/main/java/dev/kalenchukov/alphabet/AbstractAlphabet.java @@ -10,10 +10,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Unmodifiable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; /** * Класс абстрактного алфавита. @@ -167,6 +164,33 @@ protected Integer getPosition(@NotNull final List<@NotNull Character> alphabet, return Collections.unmodifiableList(this.getLettersReverse(this.letters)); } + /** + * @see Alphabetical#getLettersShuffle() + */ + @NotNull + @Unmodifiable + @Override + public List<@NotNull Character> getLettersShuffle() + { + final int coefficientShuffle = (int) (this.letters.size() * 2.5); + + List letters = new ArrayList<>(this.letters); + Random random = new Random(); + + for (int iterationShuffle = 0; iterationShuffle < coefficientShuffle; iterationShuffle++) + { + int indexFrom = random.nextInt(this.letters.size()); + int indexIn = random.nextInt(this.letters.size()); + + final char charTemp = letters.get(indexIn); + + letters.set(indexIn, letters.get(indexFrom)); + letters.set(indexFrom, charTemp); + } + + return Collections.unmodifiableList(letters); + } + /** * Возвращает буквы алфавита в обратном порядке. * diff --git a/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java b/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java index 8848f60..ae383d3 100644 --- a/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java +++ b/src/main/java/dev/kalenchukov/alphabet/Alphabetical.java @@ -48,6 +48,15 @@ public interface Alphabetical @NotNull List<@NotNull Character> getLettersReverse(); + /** + * Возвращает буквы алфавита в перемешанном порядке. + * + * @return Коллекция букв алфавита. + */ + @Unmodifiable + @NotNull + List<@NotNull Character> getLettersShuffle(); + /** * Возвращает позицию буквы в алфавите. * diff --git a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java index 79bd6b2..1e7293f 100644 --- a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetLowerCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -103,6 +104,22 @@ public void testGetLettersReverse() assertEquals(Optional.of('я'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', + 'і', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', + 'с', 'т', 'у', 'ў', 'ф', 'х', 'ц', 'ч', 'ш', + 'ы', 'ь', 'э', 'ю', 'я' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java index 4e4f4d4..db7bfbe 100644 --- a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -167,6 +168,25 @@ public void testGetLettersReverse() assertEquals(Optional.of('я'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', + 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'І', 'і', + 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', + 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', + 'У', 'у', 'Ў', 'ў', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', + 'Ч', 'ч', 'Ш', 'ш', 'Ы', 'ы', 'Ь', 'ь', 'Э', 'э', + 'Ю', 'ю', 'Я', 'я' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java index 192ed7c..418bbb9 100644 --- a/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/BelarusianAlphabetUpperCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -103,6 +104,22 @@ public void testGetLettersReverse() assertEquals(Optional.of('Я'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', + 'І', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', + 'С', 'Т', 'У', 'Ў', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', + 'Ы', 'Ь', 'Э', 'Ю', 'Я' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java index cfb1920..e7ee9f3 100644 --- a/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/CyrillicAlphabetTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -125,6 +126,22 @@ public void testGetLettersReverse() assertEquals(Optional.of('Ѵ'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'Ѕ', 'З', 'И', 'І', + 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'Ꙋ', 'Ф', + 'Х', 'Ѡ', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ь', 'Ѣ', 'Ю', + 'Ꙗ', 'Ѥ', 'Ѧ', 'Ѫ', 'Ѩ', 'Ѭ', 'Ѯ', 'Ѱ', 'Ѳ', 'Ѵ' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java index 6b45563..e9248bd 100644 --- a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetLowerCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -91,6 +92,21 @@ public void testGetLettersReverse() assertEquals(Optional.of('z'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', + 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', + 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java index e434fd7..03d37e2 100644 --- a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -143,6 +144,24 @@ public void testGetLettersReverse() assertEquals(Optional.of('z'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'A', 'a', 'B', 'b', 'C', 'c', 'D', 'd', 'E', 'e', + 'F', 'f', 'G', 'g', 'H', 'h', 'I', 'i', 'J', 'j', + 'K', 'k', 'L', 'l', 'M', 'm', 'N', 'n', 'O', 'o', + 'P', 'p', 'Q', 'q', 'R', 'r', 'S', 's', 'T', 't', + 'U', 'u', 'V', 'v', 'W', 'w', 'X', 'x', 'Y', 'y', + 'Z', 'z' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java index 6496149..c9ffb98 100644 --- a/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/EnglishAlphabetUpperCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -91,6 +92,21 @@ public void testGetLettersReverse() assertEquals(Optional.of('Z'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', + 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', + 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java index 4c4bdf3..47426e8 100644 --- a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetLowerCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -89,6 +90,21 @@ public void testGetLettersReverse() assertEquals(Optional.of('ω'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', + 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', + 'ς', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java index fadf913..463db8e 100644 --- a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -137,6 +138,23 @@ public void testGetLettersReverse() assertEquals(Optional.of('ω'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'Α', 'α', 'Β', 'β', 'Γ', 'γ', 'Δ', 'δ', 'Ε', 'ε', + 'Ζ', 'ζ', 'Η', 'η', 'Θ', 'θ', 'Ι', 'ι', 'Κ', 'κ', + 'Λ', 'λ', 'Μ', 'μ', 'Ν', 'ν', 'Ξ', 'ξ', 'Ο', 'ο', + 'Π', 'π', 'Ρ', 'ρ', 'Σ', 'σ', 'ς', 'Τ', 'τ', 'Υ', + 'υ', 'Φ', 'φ', 'Χ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java index a16aea6..2b7f5ae 100644 --- a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetUpperCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -87,6 +88,21 @@ public void testGetLettersReverse() assertEquals(Optional.of('Ω'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', + 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', + 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java index 5ac25c5..feaf54f 100644 --- a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetLowerCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -105,6 +106,22 @@ public void testGetLettersReverse() assertEquals(Optional.of('я'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', + 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', + 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', + 'ъ', 'ы', 'ь', 'э', 'ю', 'я' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java index d8932b5..794060b 100644 --- a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -171,6 +172,25 @@ public void testGetLettersReverse() assertEquals(Optional.of('я'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'А', 'а', 'Б', 'б', 'В', 'в', 'Г', 'г', 'Д', 'д', + 'Е', 'е', 'Ё', 'ё', 'Ж', 'ж', 'З', 'з', 'И', 'и', + 'Й', 'й', 'К', 'к', 'Л', 'л', 'М', 'м', 'Н', 'н', + 'О', 'о', 'П', 'п', 'Р', 'р', 'С', 'с', 'Т', 'т', + 'У', 'у', 'Ф', 'ф', 'Х', 'х', 'Ц', 'ц', 'Ч', 'ч', + 'Ш', 'ш', 'Щ', 'щ', 'Ъ', 'ъ', 'Ы', 'ы', 'Ь', 'ь', + 'Э', 'э', 'Ю', 'ю', 'Я', 'я' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */ diff --git a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java index a2382c5..867bdbf 100644 --- a/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java +++ b/src/test/java/dev/kalenchukov/alphabet/RussianAlphabetUpperCaseTest.java @@ -9,6 +9,7 @@ import org.jetbrains.annotations.NotNull; import org.junit.Test; +import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -105,6 +106,22 @@ public void testGetLettersReverse() assertEquals(Optional.of('Я'), Optional.ofNullable(letters.get(0))); } + /** + * Проверяет получение букв алфавита в перемешанном порядке. + */ + @Test + public void testGetLettersShuffle() + { + List letters = List.of( + 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё', 'Ж', 'З', + 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', + 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', + 'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я' + ); + + assertFalse(Arrays.equals(letters.toArray(), ALPHABET.getLettersShuffle().toArray())); + } + /** * Проверяет получение среза букв алфавита. */