@Test
public void testCopyAttributesWithGapsBetweenPrivateTags() {
Attributes attributes = new Attributes();
attributes.setString(Tag.AffectedSOPInstanceUID, VR.UI, "1.2.3.4.5.6");
attributes.setString(0x20010010, VR.LO, "PrivateCreator10");
attributes.setString(0x20010050, VR.LO, "PrivateCreator50");
attributes.setString(0x20010090, VR.LO, "PrivateCreator90");
attributes.setString(0x20011000, VR.SH, "PrivateTag10");
attributes.setString(0x20015000, VR.SH, "PrivateTag50");
attributes.setString(0x20019000, VR.SH, "PrivateTag90");
Attributes copy = new Attributes(attributes);
Attributes unexpectedCopy = new Attributes();
unexpectedCopy.setString(Tag.AffectedSOPInstanceUID, VR.UI, "1.2.3.4.5.6");
unexpectedCopy.setString(0x20010010, VR.LO, "PrivateCreator10");
unexpectedCopy.setString(0x20010011, VR.LO, "PrivateCreator50");
unexpectedCopy.setString(0x20010012, VR.LO, "PrivateCreator90");
unexpectedCopy.setString(0x20011000, VR.SH, "PrivateTag10");
unexpectedCopy.setString(0x20011100, VR.SH, "PrivateTag50");
unexpectedCopy.setString(0x20011200, VR.SH, "PrivateTag90");
Assert.assertEquals(copy.toString(), unexpectedCopy.toString()); // will match
Assert.assertEquals(copy.toString(), attributes.toString()); // will fail
}