@Test
  public void testInitialValueEmittedNoProducer() {
    PublishSubject<Integer> source = PublishSubject.create();

    TestSubscriber<Integer> ts = new TestSubscriber<>();

    source
        .scan(
            0,
            new BiFunction<Integer, Integer, Integer>() {
              @Override
              public Integer apply(Integer t1, Integer t2) {
                return t1 + t2;
              }
            })
        .subscribe(ts);

    ts.assertNoErrors();
    ts.assertNotComplete();
    ts.assertValue(0);
  }