anchor.diff:      group('delay', () {
         _delayWithNoErrors();
         _delayNotCloseOnError();
  +      _delayCloseOnError();
       });
     }
   
  
positive.code:       // closing the controllers happen asynchronously, so give it a few milliseconds for both to complete and trigger
        // the merged stream to also complete
        new Timer(new Duration(milliseconds : 10), () {
          expect(list.length, equals(3), reason : "delayed stream should have populated delayed list");
  
          for (var i = 0; i <= 2; i++) {
            expect(list.where((n) => n == i).length, equals(1), reason : "delayed stream should contain $i");
  
negative.code:       // since each event is delayed by 1 milliseconds, give it some buffer space and check after 15 ms if
        // all the delayed events have been processed
        new Timer(new Duration(milliseconds : 10), () {
          expect(list.length, equals(3), reason : "delayed stream should have all three events");
  
          for (var i = 0; i <= 2; i++) {
            expect(list.where((n) => n == i).length, equals(1), reason : "delayed stream should contain $i");
          }
  
          expect(hasErr, equals(false), reason : "delayed stream should not have received error");
          expect(isDone, equals(true),  reason : "delayed stream should be completed");
        });
  