### Question:
RawKey implements Key<T> { @Override public int compareTo(Key otherKey) { return Bytes.compareTo(this.toBytes(), otherKey.toBytes()); } RawKey(byte[] key); @Override byte[] toBytes(); @Override boolean equals(Object o); @Override int hashCode(); @Override int compareTo(Key otherKey);  }### Answer:
@Test public void testCompareToReturnsZeroValueWhenByteValueOfKeyIsEqualToOther() { final Key<Entity> a = new RawKey<>("hello".getBytes()); final Key<Entity> b = new RawKey<>("hello".getBytes()); assertEquals(0, a.compareTo(b)); }
@Test public void testCompareToReturnsPositiveValueWhenByteValueOfKeyIsGreaterThanOther() { final Key<Entity> a = new RawKey<>("hello".getBytes()); final Key<Entity> b = new RawKey<>("goodbye".getBytes()); assertTrue(0 < a.compareTo(b)); }
@Test public void testCompareToReturnsNegativeValueWhenByteValueOfKeyIsLessThanOther() { final Key<Entity> a = new RawKey<>("hello".getBytes()); final Key<Entity> b = new RawKey<>("hello there".getBytes()); assertTrue(0 > a.compareTo(b)); }