public void CoroutineReturnValue_ForgotToSetResult()
        {
            var scheduler = new InterleavedCoroutineScheduler();
            var coroutine = new ReturnValueCoroutine(1);

            scheduler.Execute(coroutine);
            scheduler.Update(0);
            Assert.Equal(CoroutineStatus.Running, coroutine.Status);
            scheduler.Update(0);
            Assert.Equal(CoroutineStatus.CompletedNormal, coroutine.Status);
            Assert.Throws <CoroutineException>(() => coroutine.Result);
        }
        public void CoroutineReturnValue()
        {
            var scheduler = new InterleavedCoroutineScheduler();
            var coroutine = new ReturnValueCoroutine(3);

            scheduler.Execute(coroutine);
            scheduler.Update(0);
            Assert.Equal(CoroutineStatus.Running, coroutine.Status);
            scheduler.Update(0);
            Assert.Equal(CoroutineStatus.Running, coroutine.Status);
            scheduler.Update(0);
            Assert.Equal(CoroutineStatus.CompletedNormal, coroutine.Status);
            Assert.Equal(2, coroutine.Result);
        }