@Test /* * test issue-209 */ public void testSpreadDelimiter() { doTestDelimited(Buffer.buffer("start-a-b-c-dddabc"), Buffer.buffer("abc"), new Integer[] { 18 }, Buffer.buffer("start-a-b-c-ddd")); doTestDelimited(Buffer.buffer("start-abc-dddabc"), Buffer.buffer("abc"), new Integer[] { 18 }, Buffer.buffer("start-"), Buffer.buffer("-ddd")); doTestDelimited(Buffer.buffer("start-ab-c-dddabc"), Buffer.buffer("abc"), new Integer[] { 18 }, Buffer.buffer("start-ab-c-ddd")); }
private void delimited(Buffer delim) { int lines = 50; Buffer[] expected = new Buffer[lines]; //We create lines of length zero to <lines> and shuffle them List<Buffer> lineList = generateLines(lines, true, delim.getByte(0)); expected = lineList.toArray(expected); int totLength = lines * (lines - 1) / 2; // The sum of 0...(lines - 1) Buffer inp = Buffer.buffer(totLength + lines * delim.length()); for (int i = 0; i < lines; i++) { inp.appendBuffer(expected[i]); inp.appendBuffer(delim); } //We then try every combination of chunk size up to twice the input string length for (int i = 1; i < inp.length() * 2; i++) { doTestDelimited(inp, delim, new Integer[]{i}, expected); } //Then we try a sequence of random chunk sizes List<Integer> chunkSizes = generateChunkSizes(lines); //Repeat a few times for (int i = 0; i < 10; i++) { Collections.shuffle(chunkSizes); doTestDelimited(inp, delim, chunkSizes.toArray(new Integer[]{}), expected); } }
@Test /* * test issue-209 */ public void testSpreadDelimiter() { doTestDelimited(Buffer.buffer("start-a-b-c-dddabc"), Buffer.buffer("abc"), new Integer[] { 18 }, Buffer.buffer("start-a-b-c-ddd")); doTestDelimited(Buffer.buffer("start-abc-dddabc"), Buffer.buffer("abc"), new Integer[] { 18 }, Buffer.buffer("start-"), Buffer.buffer("-ddd")); doTestDelimited(Buffer.buffer("start-ab-c-dddabc"), Buffer.buffer("abc"), new Integer[] { 18 }, Buffer.buffer("start-ab-c-ddd")); }
private void delimited(Buffer delim) { int lines = 50; Buffer[] expected = new Buffer[lines]; //We create lines of length zero to <lines> and shuffle them List<Buffer> lineList = generateLines(lines, true, delim.getByte(0)); expected = lineList.toArray(expected); int totLength = lines * (lines - 1) / 2; // The sum of 0...(lines - 1) Buffer inp = Buffer.buffer(totLength + lines * delim.length()); for (int i = 0; i < lines; i++) { inp.appendBuffer(expected[i]); inp.appendBuffer(delim); } //We then try every combination of chunk size up to twice the input string length for (int i = 1; i < inp.length() * 2; i++) { doTestDelimited(inp, delim, new Integer[]{i}, expected); } //Then we try a sequence of random chunk sizes List<Integer> chunkSizes = generateChunkSizes(lines); //Repeat a few times for (int i = 0; i < 10; i++) { Collections.shuffle(chunkSizes); doTestDelimited(inp, delim, chunkSizes.toArray(new Integer[]{}), expected); } }