### Question:
Sequences { public static Iterable<Integer> halving(int start) { return () -> new IntegerHalvingIterator(start); } private  Sequences(); static Iterable<BigInteger> halvingIntegral(
        BigInteger max,
        BigInteger start); static Iterable<BigDecimal> halvingDecimal(
        BigDecimal max,
        BigDecimal start); static Iterable<Integer> halving(int start);  }### Answer:
@Test public void halvingInts() { assertEquals( newArrayList(27, 13, 6, 3, 1), newArrayList(Sequences.halving(27))); }
@Test public void callingNextOutOfSequenceOnHalvingInts() { Iterator<Integer> i = Sequences.halving(0).iterator(); i.next(); thrown.expect(NoSuchElementException.class); i.next(); }