code: public static <T> Iterator<T> dropRight(Iterator<T> self, int num) {
          if (num <= 0) {
              return self;
          }
          return new DropRightIterator<T>(self, num);
      }
docs: Drops the given number of elements from the tail of this Iterator.
  <pre class="groovyTestCase">
  def getObliterator() { "obliter8".iterator() }
  assert obliterator.dropRight(-1).toList() == ['o', 'b', 'l', 'i', 't', 'e', 'r', '8']
  assert obliterator.dropRight(0).toList() == ['o', 'b', 'l', 'i', 't', 'e', 'r', '8']
  assert obliterator.dropRight(1).toList() == ['o', 'b', 'l', 'i', 't', 'e', 'r']
  assert obliterator.dropRight(4).toList() == ['o', 'b', 'l', 'i']
  assert obliterator.dropRight(7).toList() == ['o']
  assert obliterator.dropRight(8).toList() == []
  assert obliterator.dropRight(9).toList() == []
  </pre>
  
  @param self the original Iterator
  @param num  the number of elements to drop
  @return an Iterator consisting of all the elements of this Iterator minus the last <code>num</code> elements,
  or an empty Iterator if it has less then <code>num</code> elements.
  @since 2.4.0