public void EventuallyTrySetFromTaskGeneric() {
        var r1 = new TaskCompletionSource<int>();
        var r2 = new TaskCompletionSource<int>();
        var t3 = r1.EventuallyTrySetFromTask(r2.Task);
        r1.Task.AssertNotCompleted();
        t3.AssertNotCompleted();

        r2.TrySetResult(1);
        t3.AssertRanToCompletion().AssertIsTrue();
        r1.Task.AssertRanToCompletion().AssertEquals(1);

        r1.EventuallyTrySetFromTask(r2.Task).AssertRanToCompletion().AssertIsFalse();
    }