private void fail(String prefix,String message,Iterable<? extends Throwable> errors){
  AssertionError ae=new AssertionError(prefix + message);
  CompositeException ce=new CompositeException();
  for (  Throwable e : errors) {
    if (e == null) {
      ce.addSuppressed(new NullPointerException("Throwable was null!"));
    }
 else {
      ce.addSuppressed(e);
    }
  }
  ae.initCause(ce);
  isPassing=false;
}

private void fail ( String prefix , String message , Iterable < ? extends Throwable > errors ) { AssertionError ae = new AssertionError ( prefix + message ) ; CompositeException ce = new CompositeException ( ) ; for ( Throwable e : errors ) { if ( e == null ) { ce . addSuppressed ( new NullPointerException ( "Throwable was null!" ) ) ; } else { ce . addSuppressed ( e ) ; } } ae . initCause ( ce ) ; isPassing = false ; }
fail with the given message and add the sequence of errors as suppressed ones . < p > note this is delibarately the only fail method . most of the times an assertion would fail but it is possible it was due to an exception somewhere . this construct will capture those potential errors and report it along with the original failure .
