public void TestTaskFactory ()
		{
			var sut = new TaskExample ();
			var result = sut.TaskFactory ();

			Assert.AreEqual (3, result);
		}
		public void TestStartAndRunSynchronously ()
		{
			var sut = new TaskExample ();
			sut.RunSynchronously ();

			Assert.IsTrue (sut.IsSet);
		}
		public void TestChildTasks ()
		{
			var sut = new TaskExample ();
			var result = sut.ChildTasks ();

			Assert.AreEqual (3, result);
		}
		public void TestNewAndStart ()
		{
			var sut = new TaskExample ();
			sut.StartAndWait ();

			Assert.IsTrue (sut.IsSet);
		}
		public void TestStartNew ()
		{
			var sut = new TaskExample ();
			sut.StartNew ();

			Assert.IsTrue (sut.IsSet);
		}
		public void TestContinuationTaskAgain ()
		{
			var sut = new TaskExample ();
			var result = sut.ContinuationTaskAgain ();

			Assert.IsTrue (sut.IsSet);
			Assert.AreEqual ("OnlyOnRanToCompletion", result);
		}
		public void TestContinuationTask ()
		{
			var sut = new TaskExample ();
			var result = sut.ContinuationTask ();

			Assert.IsTrue (sut.IsSet);
			Assert.IsFalse (result);
		}
		public void TestResult ()
		{
			var sut = new TaskExample ();
			var result = sut.Result ();

			Assert.IsTrue (sut.IsSet); 
			Assert.IsTrue (result);
		}
		public void TestWaitAny ()
		{
			var sut = new TaskExample ();
			var result = sut.WaitAny ();

			Assert.AreEqual (6, result);
		}
		public void TestCancellingATask ()
		{
			var sut = new TaskExample ();
			var result = sut.CancellingATask ();

			Assert.AreEqual (true, result);
		}
		public void TestTimingOutATask ()
		{
			var sut = new TaskExample ();
			var result = sut.TimingOutATask ();

			Assert.AreEqual (0, result);
		}