diff --git a/README.MD b/README.MD index 00353fe..8a01c40 100644 --- a/README.MD +++ b/README.MD @@ -6,6 +6,7 @@ * Белорусский * Кириллица * Английский +* Греческий ### Получение букв алфавита ```java diff --git a/pom.xml b/pom.xml index 3b994be..2e7ae2a 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ dev.kalenchukov alphabet - 1.0.0 + 1.1.0 Alphabet Алфавиты языков мира diff --git a/src/main/java/dev/kalenchukov/alphabet/GreekAlphabet.java b/src/main/java/dev/kalenchukov/alphabet/GreekAlphabet.java new file mode 100644 index 0000000..ca4c92e --- /dev/null +++ b/src/main/java/dev/kalenchukov/alphabet/GreekAlphabet.java @@ -0,0 +1,65 @@ +/* + * Copyright © 2022 Алексей Каленчуков + * GitHub: https://github.com/kalenchukov + * E-mail: mailto:aleksey.kalenchukov@yandex.ru + */ + +package dev.kalenchukov.alphabet; + +import org.jetbrains.annotations.NotNull; + +/** + * Класс греческого алфавита. + */ +public class GreekAlphabet extends AbstractAlphabetCase +{ + /** + * Коды прописных букв в Unicode. + */ + @NotNull + public static final Character @NotNull [] LETTERS_UPPER_CASE = new Character[] { + '\u0391', '\u0392', '\u0393', '\u0394', '\u0395', '\u0396', + '\u0397', '\u0398', '\u0399', '\u039A', '\u039B', '\u039C', + '\u039D', '\u039E', '\u039F', '\u03A0', '\u03A1', '\u03A3', + '\u03A4', '\u03A5', '\u03A6', '\u03A7', '\u03A8', '\u03A9' + + }; + + /** + * Коды строчных букв в Unicode. + */ + @NotNull + public static final Character @NotNull [] LETTERS_LOWER_CASE = new Character[] { + '\u03B1', '\u03B2', '\u03B3', '\u03B4', '\u03B5', '\u03B6', + '\u03B7', '\u03B8', '\u03B9', '\u03BA', '\u03BB', '\u03BC', + '\u03BD', '\u03BE', '\u03BF', '\u03C0', '\u03C1', '\u03C3', + '\u03C2', '\u03C4', '\u03C5', '\u03C6', '\u03C7', '\u03C8', + '\u03C9' + + }; + + /** + * Коды букв в Unicode. + */ + @NotNull + public static final Character @NotNull [] LETTERS = new Character[] { + '\u0391', '\u03B1', '\u0392', '\u03B2', '\u0393', '\u03B3', + '\u0394', '\u03B4', '\u0395', '\u03B5', '\u0396', '\u03B6', + '\u0397', '\u03B7', '\u0398', '\u03B8', '\u0399', '\u03B9', + '\u039A', '\u03BA', '\u039B', '\u03BB', '\u039C', '\u03BC', + '\u039D', '\u03BD', '\u039E', '\u03BE', '\u039F', '\u03BF', + '\u03A0', '\u03C0', '\u03A1', '\u03C1', '\u03A3', '\u03C3', + '\u03C2', '\u03A4', '\u03C4', '\u03A5', '\u03C5', '\u03A6', + '\u03C6', '\u03A7', '\u03C7', '\u03A8', '\u03C8', '\u03A9', + '\u03C9' + + }; + + /** + * Конструктор для {@code GreekAlphabet}. + */ + public GreekAlphabet() + { + super(LETTERS, LETTERS_UPPER_CASE, LETTERS_LOWER_CASE); + } +} diff --git a/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java new file mode 100644 index 0000000..01461a7 --- /dev/null +++ b/src/test/java/dev/kalenchukov/alphabet/GreekAlphabetTest.java @@ -0,0 +1,603 @@ +/* + * Copyright © 2022 Алексей Каленчуков + * GitHub: https://github.com/kalenchukov + * E-mail: mailto:aleksey.kalenchukov@yandex.ru + */ + +package dev.kalenchukov.alphabet; + +import org.jetbrains.annotations.NotNull; +import org.junit.Test; + +import java.util.Optional; + +import static org.junit.Assert.*; + +public class GreekAlphabetTest +{ + @NotNull + public static final Alphabetical ALPHABET = new GreekAlphabet(); + + @NotNull + public static final AlphabeticalCase ALPHABET_CASE = new GreekAlphabet(); + + /** + * Проверяет количество букв в алфавите. + */ + @Test + public void testGetLettersCount() + { + assertEquals(49, ALPHABET.getLetters().length); + } + + /** + * Проверяет количество прописных букв в алфавите. + */ + @Test + public void testGetLettersUpperCaseCount() + { + assertEquals(24, ALPHABET_CASE.getLettersUpperCase().length); + } + + /** + * Проверяет количество прописных букв в алфавите. + */ + @Test + public void testGetLettersLowerCaseCount() + { + assertEquals(25, ALPHABET_CASE.getLettersLowerCase().length); + } + + /** + * Проверяет получение букв алфавита. + */ + @Test + public void testGetLetters() + { + Character[] letters = new Character[] { + 'Α', 'α', 'Β', 'β', 'Γ', 'γ', 'Δ', 'δ', 'Ε', 'ε', + 'Ζ', 'ζ', 'Η', 'η', 'Θ', 'θ', 'Ι', 'ι', 'Κ', 'κ', + 'Λ', 'λ', 'Μ', 'μ', 'Ν', 'ν', 'Ξ', 'ξ', 'Ο', 'ο', + 'Π', 'π', 'Ρ', 'ρ', 'Σ', 'σ', 'ς', 'Τ', 'τ', 'Υ', + 'υ', 'Φ', 'φ', 'Χ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω' + + }; + + assertArrayEquals(letters, ALPHABET.getLetters()); + } + + /** + * Проверяет получение среза букв алфавита. + */ + @Test + public void testGetLettersRange() + { + Character[] letters1 = new Character[] { + 'Α', 'α', 'Β', 'β', 'Γ', 'γ', 'Δ', 'δ', 'Ε', 'ε', + 'Ζ', 'ζ', 'Η', 'η', 'Θ', 'θ', 'Ι', 'ι', 'Κ', 'κ', + 'Λ', 'λ', 'Μ', 'μ', 'Ν', 'ν', 'Ξ', 'ξ', 'Ο', 'ο', + 'Π', 'π', 'Ρ', 'ρ', 'Σ', 'σ', 'ς', 'Τ', 'τ', 'Υ', + 'υ', 'Φ', 'φ', 'Χ', 'χ', 'Ψ', 'ψ', 'Ω', 'ω' + }; + + Character[] letters2 = new Character[] { + 'Α', 'α', 'Β', 'β', 'Γ', 'γ', 'Δ', 'δ', 'Ε', 'ε', + 'Ζ', 'ζ', 'Η', 'η', 'Θ', 'θ', 'Ι', 'ι', 'Κ', 'κ', + 'Λ', 'λ', 'Μ', 'μ', 'Ν', 'ν', 'Ξ', 'ξ', 'Ο', 'ο', + 'Π', 'π', 'Ρ' + }; + + Character[] letters3 = new Character[] { + 'Α', 'α', 'Β' + }; + + Character[] letters4 = new Character[] { + 'Α' + }; + + assertArrayEquals(letters1, ALPHABET.getLetters(1, 49)); + assertArrayEquals(letters2, ALPHABET.getLetters(1, 33)); + assertArrayEquals(letters3, ALPHABET.getLetters(1, 3)); + assertArrayEquals(letters4, ALPHABET.getLetters(1, 1)); + } + + /** + * Проверяет получение среза букв алфавита выходящего за минимальную границу. + */ + @Test(expected = IndexOutOfBoundsException.class) + public void testGetLettersRangeOutOfBoundsMin() + { + ALPHABET.getLetters(0, 49); + } + + /** + * Проверяет получение среза букв алфавита выходящего за максимальную границу. + */ + @Test(expected = IndexOutOfBoundsException.class) + public void testGetLettersRangeOutOfBoundsMax() + { + ALPHABET.getLetters(1, 50); + } + + /** + * Проверяет получение среза букв алфавита с инвертированной границей. + */ + @Test(expected = IllegalArgumentException.class) + public void testGetLettersRangeInversion() + { + ALPHABET.getLetters(33, 20); + } + + /** + * Проверяет прописные буквы в алфавите. + */ + @Test + public void testGetLettersUpperCase() + { + Character[] lettersUpperCase = new Character[] { + 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', + 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', + 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω' + }; + + assertArrayEquals(lettersUpperCase, ALPHABET_CASE.getLettersUpperCase()); + } + + /** + * Проверяет получение среза прописных букв алфавита. + */ + @Test + public void testGetLettersUpperCaseRange() + { + Character[] letters1 = new Character[] { + 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', + 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', + 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω' + }; + + Character[] letters2 = new Character[] { + 'Α', 'Β', 'Γ' + }; + + Character[] letters3 = new Character[] { + 'Α' + }; + + assertArrayEquals(letters1, ALPHABET_CASE.getLettersUpperCase(1, 24)); + assertArrayEquals(letters2, ALPHABET_CASE.getLettersUpperCase(1, 3)); + assertArrayEquals(letters3, ALPHABET_CASE.getLettersUpperCase(1, 1)); + } + + /** + * Проверяет получение среза прописных букв алфавита выходящего за минимальную границу. + */ + @Test(expected = IndexOutOfBoundsException.class) + public void testGetLettersRangeUpperCaseOutOfBoundsMin() + { + ALPHABET_CASE.getLettersUpperCase(0, 24); + } + + /** + * Проверяет получение среза прописных букв алфавита выходящего за максимальную границу. + */ + @Test(expected = IndexOutOfBoundsException.class) + public void testGetLettersRangeUpperCaseOutOfBoundsMax() + { + ALPHABET_CASE.getLettersUpperCase(1, 25); + } + + /** + * Проверяет получение среза прописных букв алфавита с инвертированной границей. + */ + @Test(expected = IllegalArgumentException.class) + public void testGetLettersRangeUpperCaseInversion() + { + ALPHABET_CASE.getLettersUpperCase(21, 14); + } + + /** + * Проверяет строчные буквы в алфавите. + */ + @Test + public void testGetLettersLowerCase() + { + Character[] lettersLowerCase = new Character[] { + 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', + 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', + 'ς', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω' + }; + + assertArrayEquals(lettersLowerCase, ALPHABET_CASE.getLettersLowerCase()); + } + + /** + * Проверяет получение среза строчных букв алфавита. + */ + @Test + public void testGetLettersLowerCaseRange() + { + Character[] letters1 = new Character[] { + 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', + 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', + 'ς', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω' + }; + + Character[] letters2 = new Character[] { + 'α', 'β', 'γ' + }; + + Character[] letters3 = new Character[] { + 'α' + }; + + assertArrayEquals(letters1, ALPHABET_CASE.getLettersLowerCase(1, 25)); + assertArrayEquals(letters2, ALPHABET_CASE.getLettersLowerCase(1, 3)); + assertArrayEquals(letters3, ALPHABET_CASE.getLettersLowerCase(1, 1)); + } + + /** + * Проверяет получение среза строчных букв алфавита выходящего за минимальную границу. + */ + @Test(expected = IndexOutOfBoundsException.class) + public void testGetLettersRangeLowerCaseOutOfBoundsMin() + { + ALPHABET_CASE.getLettersLowerCase(0, 25); + } + + /** + * Проверяет получение среза строчных букв алфавита выходящего за максимальную границу. + */ + @Test(expected = IndexOutOfBoundsException.class) + public void testGetLettersRangeLowerCaseOutOfBoundsMax() + { + ALPHABET_CASE.getLettersLowerCase(1, 26); + } + + /** + * Проверяет получение среза строчных букв алфавита с инвертированной границей. + */ + @Test(expected = IllegalArgumentException.class) + public void testGetLettersRangeLowerCaseInversion() + { + ALPHABET_CASE.getLettersLowerCase(23, 20); + } + + /** + * Проверяет позицию несуществующей буквы в алфавите. + */ + @Test + public void testGetPositionLetterBadLetter() + { + assertNull(ALPHABET.getPositionLetter('й')); + } + + /** + * Проверяет позиции букв в алфавите. + */ + @Test + public void testGetPositionLetter() + { + assertEquals(Optional.of(1), Optional.ofNullable(ALPHABET.getPositionLetter('Α'))); + assertEquals(Optional.of(2), Optional.ofNullable(ALPHABET.getPositionLetter('Β'))); + assertEquals(Optional.of(3), Optional.ofNullable(ALPHABET.getPositionLetter('Γ'))); + assertEquals(Optional.of(4), Optional.ofNullable(ALPHABET.getPositionLetter('Δ'))); + assertEquals(Optional.of(5), Optional.ofNullable(ALPHABET.getPositionLetter('Ε'))); + assertEquals(Optional.of(6), Optional.ofNullable(ALPHABET.getPositionLetter('Ζ'))); + assertEquals(Optional.of(7), Optional.ofNullable(ALPHABET.getPositionLetter('Η'))); + assertEquals(Optional.of(8), Optional.ofNullable(ALPHABET.getPositionLetter('Θ'))); + assertEquals(Optional.of(9), Optional.ofNullable(ALPHABET.getPositionLetter('Ι'))); + assertEquals(Optional.of(10), Optional.ofNullable(ALPHABET.getPositionLetter('Κ'))); + assertEquals(Optional.of(11), Optional.ofNullable(ALPHABET.getPositionLetter('Λ'))); + assertEquals(Optional.of(12), Optional.ofNullable(ALPHABET.getPositionLetter('Μ'))); + assertEquals(Optional.of(13), Optional.ofNullable(ALPHABET.getPositionLetter('Ν'))); + assertEquals(Optional.of(14), Optional.ofNullable(ALPHABET.getPositionLetter('Ξ'))); + assertEquals(Optional.of(15), Optional.ofNullable(ALPHABET.getPositionLetter('Ο'))); + assertEquals(Optional.of(16), Optional.ofNullable(ALPHABET.getPositionLetter('Π'))); + assertEquals(Optional.of(17), Optional.ofNullable(ALPHABET.getPositionLetter('Ρ'))); + assertEquals(Optional.of(18), Optional.ofNullable(ALPHABET.getPositionLetter('Σ'))); + assertEquals(Optional.of(19), Optional.ofNullable(ALPHABET.getPositionLetter('Τ'))); + assertEquals(Optional.of(20), Optional.ofNullable(ALPHABET.getPositionLetter('Υ'))); + assertEquals(Optional.of(21), Optional.ofNullable(ALPHABET.getPositionLetter('Φ'))); + assertEquals(Optional.of(22), Optional.ofNullable(ALPHABET.getPositionLetter('Χ'))); + assertEquals(Optional.of(23), Optional.ofNullable(ALPHABET.getPositionLetter('Ψ'))); + assertEquals(Optional.of(24), Optional.ofNullable(ALPHABET.getPositionLetter('Ω'))); + + assertEquals(Optional.of(1), Optional.ofNullable(ALPHABET.getPositionLetter('α'))); + assertEquals(Optional.of(2), Optional.ofNullable(ALPHABET.getPositionLetter('β'))); + assertEquals(Optional.of(3), Optional.ofNullable(ALPHABET.getPositionLetter('γ'))); + assertEquals(Optional.of(4), Optional.ofNullable(ALPHABET.getPositionLetter('δ'))); + assertEquals(Optional.of(5), Optional.ofNullable(ALPHABET.getPositionLetter('ε'))); + assertEquals(Optional.of(6), Optional.ofNullable(ALPHABET.getPositionLetter('ζ'))); + assertEquals(Optional.of(7), Optional.ofNullable(ALPHABET.getPositionLetter('η'))); + assertEquals(Optional.of(8), Optional.ofNullable(ALPHABET.getPositionLetter('θ'))); + assertEquals(Optional.of(9), Optional.ofNullable(ALPHABET.getPositionLetter('ι'))); + assertEquals(Optional.of(10), Optional.ofNullable(ALPHABET.getPositionLetter('κ'))); + assertEquals(Optional.of(11), Optional.ofNullable(ALPHABET.getPositionLetter('λ'))); + assertEquals(Optional.of(12), Optional.ofNullable(ALPHABET.getPositionLetter('μ'))); + assertEquals(Optional.of(13), Optional.ofNullable(ALPHABET.getPositionLetter('ν'))); + assertEquals(Optional.of(14), Optional.ofNullable(ALPHABET.getPositionLetter('ξ'))); + assertEquals(Optional.of(15), Optional.ofNullable(ALPHABET.getPositionLetter('ο'))); + assertEquals(Optional.of(16), Optional.ofNullable(ALPHABET.getPositionLetter('π'))); + assertEquals(Optional.of(17), Optional.ofNullable(ALPHABET.getPositionLetter('ρ'))); + assertEquals(Optional.of(18), Optional.ofNullable(ALPHABET.getPositionLetter('σ'))); + assertEquals(Optional.of(19), Optional.ofNullable(ALPHABET.getPositionLetter('ς'))); + assertEquals(Optional.of(20), Optional.ofNullable(ALPHABET.getPositionLetter('τ'))); + assertEquals(Optional.of(21), Optional.ofNullable(ALPHABET.getPositionLetter('υ'))); + assertEquals(Optional.of(22), Optional.ofNullable(ALPHABET.getPositionLetter('φ'))); + assertEquals(Optional.of(23), Optional.ofNullable(ALPHABET.getPositionLetter('χ'))); + assertEquals(Optional.of(24), Optional.ofNullable(ALPHABET.getPositionLetter('ψ'))); + assertEquals(Optional.of(25), Optional.ofNullable(ALPHABET.getPositionLetter('ω'))); + } + + /** + * Проверяет букву по позиции в алфавите. + */ + @Test + public void testGetLetter() + { + assertEquals(Optional.of('Α'), Optional.ofNullable(ALPHABET.getLetter(1))); + assertEquals(Optional.of('α'), Optional.ofNullable(ALPHABET.getLetter(2))); + assertEquals(Optional.of('Β'), Optional.ofNullable(ALPHABET.getLetter(3))); + assertEquals(Optional.of('β'), Optional.ofNullable(ALPHABET.getLetter(4))); + assertEquals(Optional.of('Γ'), Optional.ofNullable(ALPHABET.getLetter(5))); + assertEquals(Optional.of('γ'), Optional.ofNullable(ALPHABET.getLetter(6))); + assertEquals(Optional.of('Δ'), Optional.ofNullable(ALPHABET.getLetter(7))); + assertEquals(Optional.of('δ'), Optional.ofNullable(ALPHABET.getLetter(8))); + assertEquals(Optional.of('Ε'), Optional.ofNullable(ALPHABET.getLetter(9))); + assertEquals(Optional.of('ε'), Optional.ofNullable(ALPHABET.getLetter(10))); + assertEquals(Optional.of('Ζ'), Optional.ofNullable(ALPHABET.getLetter(11))); + assertEquals(Optional.of('ζ'), Optional.ofNullable(ALPHABET.getLetter(12))); + assertEquals(Optional.of('Η'), Optional.ofNullable(ALPHABET.getLetter(13))); + assertEquals(Optional.of('η'), Optional.ofNullable(ALPHABET.getLetter(14))); + assertEquals(Optional.of('Θ'), Optional.ofNullable(ALPHABET.getLetter(15))); + assertEquals(Optional.of('θ'), Optional.ofNullable(ALPHABET.getLetter(16))); + assertEquals(Optional.of('Ι'), Optional.ofNullable(ALPHABET.getLetter(17))); + assertEquals(Optional.of('ι'), Optional.ofNullable(ALPHABET.getLetter(18))); + assertEquals(Optional.of('Κ'), Optional.ofNullable(ALPHABET.getLetter(19))); + assertEquals(Optional.of('κ'), Optional.ofNullable(ALPHABET.getLetter(20))); + assertEquals(Optional.of('Λ'), Optional.ofNullable(ALPHABET.getLetter(21))); + assertEquals(Optional.of('λ'), Optional.ofNullable(ALPHABET.getLetter(22))); + assertEquals(Optional.of('Μ'), Optional.ofNullable(ALPHABET.getLetter(23))); + assertEquals(Optional.of('μ'), Optional.ofNullable(ALPHABET.getLetter(24))); + assertEquals(Optional.of('Ν'), Optional.ofNullable(ALPHABET.getLetter(25))); + assertEquals(Optional.of('ν'), Optional.ofNullable(ALPHABET.getLetter(26))); + assertEquals(Optional.of('Ξ'), Optional.ofNullable(ALPHABET.getLetter(27))); + assertEquals(Optional.of('ξ'), Optional.ofNullable(ALPHABET.getLetter(28))); + assertEquals(Optional.of('Ο'), Optional.ofNullable(ALPHABET.getLetter(29))); + assertEquals(Optional.of('ο'), Optional.ofNullable(ALPHABET.getLetter(30))); + assertEquals(Optional.of('Π'), Optional.ofNullable(ALPHABET.getLetter(31))); + assertEquals(Optional.of('π'), Optional.ofNullable(ALPHABET.getLetter(32))); + assertEquals(Optional.of('Ρ'), Optional.ofNullable(ALPHABET.getLetter(33))); + assertEquals(Optional.of('ρ'), Optional.ofNullable(ALPHABET.getLetter(34))); + assertEquals(Optional.of('Σ'), Optional.ofNullable(ALPHABET.getLetter(35))); + assertEquals(Optional.of('σ'), Optional.ofNullable(ALPHABET.getLetter(36))); + assertEquals(Optional.of('ς'), Optional.ofNullable(ALPHABET.getLetter(37))); + assertEquals(Optional.of('Τ'), Optional.ofNullable(ALPHABET.getLetter(38))); + assertEquals(Optional.of('τ'), Optional.ofNullable(ALPHABET.getLetter(39))); + assertEquals(Optional.of('Υ'), Optional.ofNullable(ALPHABET.getLetter(40))); + assertEquals(Optional.of('υ'), Optional.ofNullable(ALPHABET.getLetter(41))); + assertEquals(Optional.of('Φ'), Optional.ofNullable(ALPHABET.getLetter(42))); + assertEquals(Optional.of('φ'), Optional.ofNullable(ALPHABET.getLetter(43))); + assertEquals(Optional.of('Χ'), Optional.ofNullable(ALPHABET.getLetter(44))); + assertEquals(Optional.of('χ'), Optional.ofNullable(ALPHABET.getLetter(45))); + assertEquals(Optional.of('Ψ'), Optional.ofNullable(ALPHABET.getLetter(46))); + assertEquals(Optional.of('ψ'), Optional.ofNullable(ALPHABET.getLetter(47))); + assertEquals(Optional.of('Ω'), Optional.ofNullable(ALPHABET.getLetter(48))); + assertEquals(Optional.of('ω'), Optional.ofNullable(ALPHABET.getLetter(49))); + } + + /** + * Проверяет прописную букву по позиции в алфавите. + */ + @Test + public void testGetLetterUpperCase() + { + assertEquals(Optional.of('Α'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(1))); + assertEquals(Optional.of('Β'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(2))); + assertEquals(Optional.of('Γ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(3))); + assertEquals(Optional.of('Δ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(4))); + assertEquals(Optional.of('Ε'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(5))); + assertEquals(Optional.of('Ζ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(6))); + assertEquals(Optional.of('Η'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(7))); + assertEquals(Optional.of('Θ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(8))); + assertEquals(Optional.of('Ι'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(9))); + assertEquals(Optional.of('Κ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(10))); + assertEquals(Optional.of('Λ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(11))); + assertEquals(Optional.of('Μ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(12))); + assertEquals(Optional.of('Ν'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(13))); + assertEquals(Optional.of('Ξ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(14))); + assertEquals(Optional.of('Ο'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(15))); + assertEquals(Optional.of('Π'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(16))); + assertEquals(Optional.of('Ρ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(17))); + assertEquals(Optional.of('Σ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(18))); + assertEquals(Optional.of('Τ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(19))); + assertEquals(Optional.of('Υ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(20))); + assertEquals(Optional.of('Φ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(21))); + assertEquals(Optional.of('Χ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(22))); + assertEquals(Optional.of('Ψ'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(23))); + assertEquals(Optional.of('Ω'), Optional.ofNullable(ALPHABET_CASE.getLetterUpperCase(24))); + } + + /** + * Проверяет строчную букву по позиции в алфавите. + */ + @Test + public void testGetLetterLowerCase() + { + assertEquals(Optional.of('α'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(1))); + assertEquals(Optional.of('β'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(2))); + assertEquals(Optional.of('γ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(3))); + assertEquals(Optional.of('δ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(4))); + assertEquals(Optional.of('ε'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(5))); + assertEquals(Optional.of('ζ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(6))); + assertEquals(Optional.of('η'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(7))); + assertEquals(Optional.of('θ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(8))); + assertEquals(Optional.of('ι'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(9))); + assertEquals(Optional.of('κ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(10))); + assertEquals(Optional.of('λ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(11))); + assertEquals(Optional.of('μ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(12))); + assertEquals(Optional.of('ν'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(13))); + assertEquals(Optional.of('ξ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(14))); + assertEquals(Optional.of('ο'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(15))); + assertEquals(Optional.of('π'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(16))); + assertEquals(Optional.of('ρ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(17))); + assertEquals(Optional.of('σ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(18))); + assertEquals(Optional.of('ς'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(19))); + assertEquals(Optional.of('τ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(20))); + assertEquals(Optional.of('υ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(21))); + assertEquals(Optional.of('φ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(22))); + assertEquals(Optional.of('χ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(23))); + assertEquals(Optional.of('ψ'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(24))); + assertEquals(Optional.of('ω'), Optional.ofNullable(ALPHABET_CASE.getLetterLowerCase(25))); + } + + /** + * Проверяет принадлежность буквы к алфавиту. + */ + @Test + public void testIsLetter() + { + assertTrue(ALPHABET.isLetter('Α')); + assertTrue(ALPHABET.isLetter('Β')); + assertTrue(ALPHABET.isLetter('Γ')); + assertTrue(ALPHABET.isLetter('Δ')); + assertTrue(ALPHABET.isLetter('Ε')); + assertTrue(ALPHABET.isLetter('Ζ')); + assertTrue(ALPHABET.isLetter('Η')); + assertTrue(ALPHABET.isLetter('Θ')); + assertTrue(ALPHABET.isLetter('Ι')); + assertTrue(ALPHABET.isLetter('Κ')); + assertTrue(ALPHABET.isLetter('Λ')); + assertTrue(ALPHABET.isLetter('Μ')); + assertTrue(ALPHABET.isLetter('Ν')); + assertTrue(ALPHABET.isLetter('Ξ')); + assertTrue(ALPHABET.isLetter('Ο')); + assertTrue(ALPHABET.isLetter('Π')); + assertTrue(ALPHABET.isLetter('Ρ')); + assertTrue(ALPHABET.isLetter('Σ')); + assertTrue(ALPHABET.isLetter('Τ')); + assertTrue(ALPHABET.isLetter('Υ')); + assertTrue(ALPHABET.isLetter('Φ')); + assertTrue(ALPHABET.isLetter('Χ')); + assertTrue(ALPHABET.isLetter('Ψ')); + assertTrue(ALPHABET.isLetter('Ω')); + assertTrue(ALPHABET.isLetter('α')); + assertTrue(ALPHABET.isLetter('β')); + assertTrue(ALPHABET.isLetter('γ')); + assertTrue(ALPHABET.isLetter('δ')); + assertTrue(ALPHABET.isLetter('ε')); + assertTrue(ALPHABET.isLetter('ζ')); + assertTrue(ALPHABET.isLetter('η')); + assertTrue(ALPHABET.isLetter('θ')); + assertTrue(ALPHABET.isLetter('ι')); + assertTrue(ALPHABET.isLetter('κ')); + assertTrue(ALPHABET.isLetter('λ')); + assertTrue(ALPHABET.isLetter('μ')); + assertTrue(ALPHABET.isLetter('ν')); + assertTrue(ALPHABET.isLetter('ξ')); + assertTrue(ALPHABET.isLetter('ο')); + assertTrue(ALPHABET.isLetter('π')); + assertTrue(ALPHABET.isLetter('ρ')); + assertTrue(ALPHABET.isLetter('σ')); + assertTrue(ALPHABET.isLetter('ς')); + assertTrue(ALPHABET.isLetter('τ')); + assertTrue(ALPHABET.isLetter('υ')); + assertTrue(ALPHABET.isLetter('φ')); + assertTrue(ALPHABET.isLetter('χ')); + assertTrue(ALPHABET.isLetter('ψ')); + assertTrue(ALPHABET.isLetter('ω')); + } + + /** + * Проверяет принадлежность не принадлежащей буквы к алфавиту. + */ + @Test + public void testIsLetterBad() + { + assertFalse(ALPHABET.isLetter('ы')); + } + + /** + * Проверяет принадлежность буквы к алфавиту прописных букв. + */ + @Test + public void testIsLetterUpperCase() + { + assertTrue(ALPHABET_CASE.isLetterUpperCase('Α')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Β')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Γ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Δ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ε')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ζ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Η')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Θ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ι')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Κ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Λ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Μ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ν')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ξ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ο')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Π')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ρ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Σ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Τ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Υ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Φ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Χ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ψ')); + assertTrue(ALPHABET_CASE.isLetterUpperCase('Ω')); + } + + /** + * Проверяет принадлежность не принадлежащей буквы к алфавиту прописных букв. + */ + @Test + public void testIsLetterUpperCaseBad() + { + assertFalse(ALPHABET_CASE.isLetterUpperCase('β')); + } + + /** + * Проверяет принадлежность буквы к алфавиту строчных букв. + */ + @Test + public void testIsLetterLowerCase() + { + assertTrue(ALPHABET_CASE.isLetterLowerCase('α')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('β')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('γ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('δ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ε')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ζ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('η')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('θ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ι')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('κ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('λ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('μ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ν')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ξ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ο')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('π')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ρ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('σ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ς')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('τ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('υ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('φ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('χ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ψ')); + assertTrue(ALPHABET_CASE.isLetterLowerCase('ω')); + } + + /** + * Проверяет принадлежность не принадлежащей буквы к алфавиту строчных букв. + */ + @Test + public void testIsLetterLowerCaseBad() + { + assertFalse(ALPHABET_CASE.isLetterLowerCase('Β')); + } + +} \ No newline at end of file