### Question:
LongEncoder implements Encoder { @Override public long encode( Object value ) { long longValue = ((Number)value).longValue(); long length = numberOfDigits( longValue ); length = length << 57; long returnVal = length | longValue; return returnVal; }  @Override long encode( Object value ); @Override String toString();  }### Answer:
@Test public void shouldProperlyEncodeLength() { Encoder encoder = new LongEncoder(); long a = encoder.encode( 1L << 25 ); long b = encoder.encode( 1L << 28 ); assertNotEquals( a, b ); }