public void SeqOrderingTest1() { var v13 = AbortableComputation <int> .Seed(NeverAbort, 13); var vStr = AbortableComputation <string> .Seed(NeverAbort, "test"); var composition = v13.Seq(vStr); var val = composition.Run(); Assert.AreEqual("test", val.Value); }
public void FmapOrderingTest() { var m = AbortableComputation <int> .Seed(NeverAbort, 13) .Fmap(x => x + 2) .Fmap(x => x * 2); var val = m.Run(); Assert.IsTrue(val.HasValue); Assert.AreEqual(2 * (13 + 2), val.Value); }
public void SeqOrderingTest3() { var strBranchRun = false; var v13 = AbortableComputation <int> .Seed(NeverAbort, 13); var vStr = new AbortableComputation <string>(AlwaysAbort, () => { strBranchRun = true; return("test"); }); var composition = v13.Seq(vStr); var val = composition.Run(); Assert.IsFalse(strBranchRun); Assert.IsTrue(val.IsNothing); }