コード例 #1
0
ファイル: BoolTest.cs プロジェクト: cfm-art/DotNetMonad
        public void Test_TrueValue()
        {
            var trueValue = Bool.True();

            var isCalled = false;

            trueValue.When(() => { isCalled = true; }, () => Abort());
            Assert.True(isCalled);

            var one = trueValue.When(() => 1, () => 0);

            Assert.Equal(1, one);

            var t = trueValue.Bind(_ => {
                Assert.True(_);
                return(Bool.False());
            });

            Assert.False(Polluter.Pollute(t));

            var t2 = trueValue.Fmap(_ => {
                Assert.True(_);
                return(false);
            });

            Assert.False(Polluter.Pollute(t2));
        }