### Question:
DN implements Comparable<DN>, Serializable { @Override public int compareTo(DN other) { return toNormalizedByteString().compareTo(other.toNormalizedByteString()); } DN();  DN(RDN[] rdnComponents);  DN(List<RDN> rdnComponents);  DN(RDN rdn, DN parentDN); static DN rootDN(); boolean isRootDN(); int size(); RDN rdn(); DN rename(final DN fromDN, final DN toDN); RDN getRDN(int pos); DN parent(); DN getParentDNInSuffix(); DN child(RDN rdn); DN concat(RDN[] rdnComponents); DN child(DN relativeBaseDN); boolean isDescendantOf(DN dn); boolean isAncestorOf(DN dn); boolean matchesBaseAndScope(DN baseDN, SearchScope scope); static DN decode(ByteSequence dnString); static DN valueOf(String dnString); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); void toString(StringBuilder buffer); String toNormalizedUrlSafeString(); ByteString toNormalizedByteString(); @Override int compareTo(DN other); static final DN NULL_DN; static final byte NORMALIZED_RDN_SEPARATOR; static final byte NORMALIZED_AVA_SEPARATOR; static final byte NORMALIZED_ESC_BYTE; }### Answer:
@Test(dataProvider = "createDNEqualityData") public void testCompareTo(String first, String second, int result) throws Exception { DN dn1 = DN.valueOf(first); DN dn2 = DN.valueOf(second); int rc = dn1.compareTo(dn2); if (rc < 0) { rc = -1; } else if (rc > 0) { rc = 1; } assertEquals(rc, result, "Comparison for <" + first + "> and <" + second + ">."); }