public static long toLowerCase(final long word) {
        final long mask = applyUpperCasePattern(word) >>> 2;
        return word | mask;
    }
@Test
    void toLowerCaseInt() {
        // given
        final byte[] asciiTable = getExtendedAsciiTable();
        shuffleArray(asciiTable, random);

        // when
        for (int idx = 0; idx < asciiTable.length; idx += Integer.BYTES) {
            final int value = getInt(asciiTable, idx);
            final int actual = SWARUtil.toLowerCase(value);
            int expected = 0;
            for (int i = 0; i < Integer.BYTES; i++) {
                final byte b = (byte) Character.toLowerCase(asciiTable[idx + i]);
                expected |= (b & 0xff) << (24 - (Byte.SIZE * i));
            }
            // then
            assertEquals(expected, actual);
        }
    }