public static ArrayList<byte[]> copyToNewArrays(Collection<ByteRange> ranges) { if (ranges == null) { return new ArrayList<>(0); } ArrayList<byte[]> arrays = Lists.newArrayListWithCapacity(ranges.size()); for (ByteRange range : ranges) { arrays.add(range.deepCopyToNewArray()); } return arrays; }
@Test public void testBasics() { ByteRange r = new SimpleMutableByteRange(new byte[] { 1, 3, 2 }); Assert.assertFalse(SimpleMutableByteRange.isEmpty(r)); Assert.assertNotNull(r.getBytes());//should be empty byte[], but could change this behavior Assert.assertEquals(3, r.getBytes().length); Assert.assertEquals(0, r.getOffset()); Assert.assertEquals(3, r.getLength()); //cloning (deep copying) Assert.assertTrue(Bytes.equals(new byte[]{1, 3, 2}, r.deepCopyToNewArray())); Assert.assertNotSame(r.getBytes(), r.deepCopyToNewArray()); //hash code Assert.assertTrue(r.hashCode() > 0); Assert.assertEquals(r.hashCode(), r.deepCopy().hashCode()); //copying to arrays byte[] destination = new byte[]{-59};//junk r.deepCopySubRangeTo(2, 1, destination, 0); Assert.assertTrue(Bytes.equals(new byte[]{2}, destination)); //set length r.setLength(1); Assert.assertTrue(Bytes.equals(new byte[]{1}, r.deepCopyToNewArray())); r.setLength(2);//verify we retained the 2nd byte, but dangerous in real code Assert.assertTrue(Bytes.equals(new byte[]{1, 3}, r.deepCopyToNewArray())); }
@Test public void testEmpty(){ Assert.assertTrue(SimpleMutableByteRange.isEmpty(null)); ByteRange r = new SimpleMutableByteRange(); Assert.assertTrue(SimpleMutableByteRange.isEmpty(r)); Assert.assertTrue(r.isEmpty()); r.set(new byte[0]); Assert.assertEquals(0, r.getBytes().length); Assert.assertEquals(0, r.getOffset()); Assert.assertEquals(0, r.getLength()); Assert.assertTrue(Bytes.equals(new byte[0], r.deepCopyToNewArray())); Assert.assertEquals(0, r.compareTo(new SimpleMutableByteRange(new byte[0], 0, 0))); Assert.assertEquals(0, r.hashCode()); }
public static ArrayList<byte[]> copyToNewArrays(Collection<ByteRange> ranges) { if (ranges == null) { return new ArrayList<>(0); } ArrayList<byte[]> arrays = Lists.newArrayListWithCapacity(ranges.size()); for (ByteRange range : ranges) { arrays.add(range.deepCopyToNewArray()); } return arrays; }
public static ArrayList<byte[]> copyToNewArrays(Collection<ByteRange> ranges) { if (ranges == null) { return new ArrayList<>(0); } ArrayList<byte[]> arrays = Lists.newArrayListWithCapacity(ranges.size()); for (ByteRange range : ranges) { arrays.add(range.deepCopyToNewArray()); } return arrays; }
public static ArrayList<byte[]> copyToNewArrays(Collection<ByteRange> ranges) { if (ranges == null) { return new ArrayList<byte[]>(0); } ArrayList<byte[]> arrays = Lists.newArrayListWithCapacity(ranges.size()); for (ByteRange range : ranges) { arrays.add(range.deepCopyToNewArray()); } return arrays; }
/***************** standard methods ************************/ @Override public String toString() { StringBuilder sb = new StringBuilder(); int i = 0; for (ByteRange r : sortedRanges) { if (i > 0) { sb.append("\n"); } sb.append(i + " " + Bytes.toStringBinary(r.deepCopyToNewArray())); ++i; } sb.append("\ntotalSize:" + numBytes); sb.append("\navgSize:" + getAvgSize()); return sb.toString(); }
/***************** standard methods ************************/ @Override public String toString() { StringBuilder sb = new StringBuilder(); int i = 0; for (ByteRange r : sortedRanges) { if (i > 0) { sb.append("\n"); } sb.append(i + " " + Bytes.toStringBinary(r.deepCopyToNewArray())); ++i; } sb.append("\ntotalSize:" + numBytes); sb.append("\navgSize:" + getAvgSize()); return sb.toString(); }
/************************** printing ***********************/ @Override public String toString() { String s = ""; if (parent == null) { s += "R "; } else { s += getBnlIndicator(false) + " " + Bytes.toString(parent.getNewByteArray()); } s += "[" + Bytes.toString(token.deepCopyToNewArray()) + "]"; if (numOccurrences > 0) { s += "x" + numOccurrences; } return s; }
/************************** printing ***********************/ @Override public String toString() { String s = ""; if (parent == null) { s += "R "; } else { s += getBnlIndicator(false) + " " + Bytes.toString(parent.getNewByteArray()); } s += "[" + Bytes.toString(token.deepCopyToNewArray()) + "]"; if (numOccurrences > 0) { s += "x" + numOccurrences; } return s; }
public String getPaddedTokenAndOccurrenceString() { StringBuilder sb = new StringBuilder(); sb.append(getBnlIndicator(true)); sb.append(Strings.padFront(numOccurrences + "", ' ', 3)); sb.append(Strings.padFront(nodeDepth + "", ' ', 3)); if (outputArrayOffset >= 0) { sb.append(Strings.padFront(outputArrayOffset + "", ' ', 3)); } sb.append(" "); for (int i = 0; i < tokenStartOffset; ++i) { sb.append(" "); } sb.append(Bytes.toString(token.deepCopyToNewArray()).replaceAll(" ", "_")); return sb.toString(); }
public String getPaddedTokenAndOccurrenceString() { StringBuilder sb = new StringBuilder(); sb.append(getBnlIndicator(true)); sb.append(Strings.padFront(numOccurrences + "", ' ', 3)); sb.append(Strings.padFront(nodeDepth + "", ' ', 3)); if (outputArrayOffset >= 0) { sb.append(Strings.padFront(outputArrayOffset + "", ' ', 3)); } sb.append(" "); for (int i = 0; i < tokenStartOffset; ++i) { sb.append(" "); } sb.append(Bytes.toString(token.deepCopyToNewArray()).replaceAll(" ", "_")); return sb.toString(); }
@Test public void testBasics() { ByteRange r = new SimpleMutableByteRange(new byte[] { 1, 3, 2 }); Assert.assertFalse(SimpleMutableByteRange.isEmpty(r)); Assert.assertNotNull(r.getBytes());//should be empty byte[], but could change this behavior Assert.assertEquals(3, r.getBytes().length); Assert.assertEquals(0, r.getOffset()); Assert.assertEquals(3, r.getLength()); //cloning (deep copying) Assert.assertTrue(Bytes.equals(new byte[]{1, 3, 2}, r.deepCopyToNewArray())); Assert.assertNotSame(r.getBytes(), r.deepCopyToNewArray()); //hash code Assert.assertTrue(r.hashCode() > 0); Assert.assertEquals(r.hashCode(), r.deepCopy().hashCode()); //copying to arrays byte[] destination = new byte[]{-59};//junk r.deepCopySubRangeTo(2, 1, destination, 0); Assert.assertTrue(Bytes.equals(new byte[]{2}, destination)); //set length r.setLength(1); Assert.assertTrue(Bytes.equals(new byte[]{1}, r.deepCopyToNewArray())); r.setLength(2);//verify we retained the 2nd byte, but dangerous in real code Assert.assertTrue(Bytes.equals(new byte[]{1, 3}, r.deepCopyToNewArray())); }
@Test public void testBasics() { ByteRange r = new SimpleMutableByteRange(new byte[] { 1, 3, 2 }); Assert.assertFalse(SimpleMutableByteRange.isEmpty(r)); Assert.assertNotNull(r.getBytes());//should be empty byte[], but could change this behavior Assert.assertEquals(3, r.getBytes().length); Assert.assertEquals(0, r.getOffset()); Assert.assertEquals(3, r.getLength()); //cloning (deep copying) Assert.assertTrue(Bytes.equals(new byte[]{1, 3, 2}, r.deepCopyToNewArray())); Assert.assertNotSame(r.getBytes(), r.deepCopyToNewArray()); //hash code Assert.assertTrue(r.hashCode() > 0); Assert.assertEquals(r.hashCode(), r.deepCopy().hashCode()); //copying to arrays byte[] destination = new byte[]{-59};//junk r.deepCopySubRangeTo(2, 1, destination, 0); Assert.assertTrue(Bytes.equals(new byte[]{2}, destination)); //set length r.setLength(1); Assert.assertTrue(Bytes.equals(new byte[]{1}, r.deepCopyToNewArray())); r.setLength(2);//verify we retained the 2nd byte, but dangerous in real code Assert.assertTrue(Bytes.equals(new byte[]{1, 3}, r.deepCopyToNewArray())); }
@Test public void testEmpty(){ Assert.assertTrue(SimpleMutableByteRange.isEmpty(null)); ByteRange r = new SimpleMutableByteRange(); Assert.assertTrue(SimpleMutableByteRange.isEmpty(r)); Assert.assertTrue(r.isEmpty()); r.set(new byte[0]); Assert.assertEquals(0, r.getBytes().length); Assert.assertEquals(0, r.getOffset()); Assert.assertEquals(0, r.getLength()); Assert.assertTrue(Bytes.equals(new byte[0], r.deepCopyToNewArray())); Assert.assertEquals(0, r.compareTo(new SimpleMutableByteRange(new byte[0], 0, 0))); Assert.assertEquals(0, r.hashCode()); }
@Test public void testEmpty(){ Assert.assertTrue(SimpleMutableByteRange.isEmpty(null)); ByteRange r = new SimpleMutableByteRange(); Assert.assertTrue(SimpleMutableByteRange.isEmpty(r)); Assert.assertTrue(r.isEmpty()); r.set(new byte[0]); Assert.assertEquals(0, r.getBytes().length); Assert.assertEquals(0, r.getOffset()); Assert.assertEquals(0, r.getLength()); Assert.assertTrue(Bytes.equals(new byte[0], r.deepCopyToNewArray())); Assert.assertEquals(0, r.compareTo(new SimpleMutableByteRange(new byte[0], 0, 0))); Assert.assertEquals(0, r.hashCode()); }