hunk.code_window:     const predicate = () => {
         return 42;
       };
       expectObservable((<any>e1).min(predicate), unsub).toBe(expected, { w: 42 });
       expectSubscriptions(e1.subscriptions).toBe(e1subs);
     });
     it('should not break unsubscription chains when result is unsubscribed explicitly', () => {
  
hunk.labels: keep keep keep keep replace keep keep keep keep
hunk.after_edit:     expectObservable((<any>e1).min(predicate), unsub).toBe(expected);
  
hunk.file_path: spec/operators/min-spec.ts
hunk.type: replace
file: import {expect} from 'chai';
  import * as Rx from '../../dist/cjs/Rx';
  
  const { Observable, UnsubscriptionError } = Rx;
  
  /** @test {UnsubscriptionError} */
  describe('UnsubscriptionError', () => {
    it('should create a message that is a clear indication of its internal errors', () => {
      const err1 = new Error('Swiss cheese tastes amazing but smells like socks');
      const err2 = new Error('User too big to fit in tiny European elevator');
      const source1 = Observable.create(() => () => { throw err1; });
      const source2 = Observable.timer(1000);
      const source3 = Observable.create(() => () => { throw err2; });
      const source = source1.merge(source2, source3);
  
      const subscription = source.subscribe();
  
      try {
        subscription.unsubscribe();
      } catch (err) {
        expect(err instanceof UnsubscriptionError).to.equal(true);
        expect(err.message).to.equal(`2 errors occurred during unsubscription:
    1) ${err1}
    2) ${err2}`);
        expect(err.name).to.equal('UnsubscriptionError');
      }
    });
  });
  