public void CoroutineThreadIntShouldBePossibleToPauseAndRestart()
        {
            // ReSharper disable once ConvertToConstant.Local
            int hundred = 100;
            var ft      = new CoroutineThread(1);
            var first   = new WaitCoroutine(hundred);
            var second  = new WaitCoroutine(200);

            ft.AddCoroutine(first, second);
            ft.Start();
            Thread.Sleep(1000);
            ft.Pause();
            Thread.Sleep(300);
            var firstCycles  = first.Cycles;
            var secondCycles = second.Cycles;

            Assert.AreEqual(ft.Status, CoroutineThreadStatus.Paused);
            Thread.Sleep(1500);
            Assert.AreEqual(firstCycles, first.Cycles);
            Assert.AreEqual(secondCycles, second.Cycles);
            ft.Start();
            Thread.Sleep(300);
            Assert.AreEqual(CoroutineThreadStatus.Running, ft.Status);
            ft.Stop();
            Thread.Sleep(300);
            Assert.AreEqual(CoroutineThreadStatus.Stopped, ft.Status);

            Assert.IsTrue(firstCycles <= first.Cycles);
            Assert.IsTrue(secondCycles <= second.Cycles);
        }