public void testStringLargeArrayArraycopy()
    {
        String[] data = new String[]{"a", "ab", "abc", "ąęć", "1234", "test string", "ANOTHER TEST STRING", "", "\n", "\r"};
        int startPos = 2;
        int length = 8;
        LargeArray.setMaxSizeOf32bitArray(1073741824);
        StringLargeArray a = new StringLargeArray(data);
        StringLargeArray b = new StringLargeArray(2 * data.length, 20);
        Utilities.arraycopy(a, startPos, b, 0, length);
        for (int i = 0; i < length; i++) {
            assertEquals(data[startPos + i], b.get(i));
        }
        b = new StringLargeArray(2 * data.length, 20);
        Utilities.arraycopy(data, startPos, b, 0, length);
        for (int i = 0; i < length; i++) {
            assertEquals(data[startPos + i], b.get(i));
        }
        LargeArray.setMaxSizeOf32bitArray(data.length - 1);
        a = new StringLargeArray(data);
        b = new StringLargeArray(2 * data.length, 20);
        Utilities.arraycopy(a, startPos, b, 0, length);
        for (int i = 0; i < length; i++) {
            assertEquals(data[startPos + i], b.get(i));
        }
        b = new StringLargeArray(2 * data.length, 20);
        Utilities.arraycopy(data, startPos, b, 0, length);
        for (int i = 0; i < length; i++) {
            assertEquals(data[startPos + i], b.get(i));
        }
    }