### Question:
LongOperations implements MathOperations<Long>, Comparator<Long> { public Long roundDown( Long value, int decimalShift ) { if (value == 0) return 0l; if (decimalShift >= 0) return value; long shiftedValue = Math.abs(value); for (int i = 0; i != -decimalShift; ++i) shiftedValue /= 10l; shiftedValue *= Long.signum(value); for (int i = 0; i != -decimalShift; ++i) shiftedValue *= 10l; return shiftedValue; }  Class<Long> getOperandClass(); Long add( Long value1,
                     Long value2 ); Long subtract( Long value1,
                          Long value2 ); Long multiply( Long value1,
                          Long value2 ); double divide( Long value1,
                          Long value2 ); Long negate( Long value ); Long increment( Long value ); Long maximum( Long value1,
                         Long value2 ); Long minimum( Long value1,
                         Long value2 ); int compare( Long value1,
                        Long value2 ); BigDecimal asBigDecimal( Long value ); Long fromBigDecimal( BigDecimal value ); Long createZeroValue(); Long create( int value ); Long create( long value ); Long create( double value ); double sqrt( Long value ); Comparator<Long> getComparator(); Long random( Long minimum,
                        Long maximum,
                        Random rng ); double doubleValue( Long value ); float floatValue( Long value ); int intValue( Long value ); long longValue( Long value ); short shortValue( Long value ); int getExponentInScientificNotation( Long value ); Long roundUp( Long value,
                         int decimalShift ); Long roundDown( Long value,
                           int decimalShift ); Long keepSignificantFigures( Long value,
                                        int numSigFigs );  }### Answer:
@Test public void shouldRoundDownNumbersGreaterThan10() { assertThat(ops.roundDown(-101l, 0), is(-101l)); assertThat(ops.roundDown(-101l, 1), is(-101l)); assertThat(ops.roundDown(-101l, 1), is(-101l)); assertThat(ops.roundDown(-101l, -1), is(-100l)); assertThat(ops.roundDown(-109l, -1), is(-100l)); assertThat(ops.roundDown(101l, 0), is(101l)); assertThat(ops.roundDown(101l, 0), is(101l)); assertThat(ops.roundDown(101l, 1), is(101l)); assertThat(ops.roundDown(101l, 1), is(101l)); assertThat(ops.roundDown(109l, -1), is(100l)); assertThat(ops.roundDown(101l, -1), is(100l)); }