コード例 #1
0
ファイル: ChoiceTests.cs プロジェクト: gusty/fsharpx
        public void Cast_Exception()
        {
            object a = "hello";

            FSharpChoice.Cast <int>(a)
            .Match(i => Assert.Fail("should not have succeeded with value {0}", i),
                   e => {});
        }
コード例 #2
0
ファイル: ChoiceTests.cs プロジェクト: gusty/fsharpx
        public void Cast_OK()
        {
            object a = 40;

            FSharpChoice.Cast <int>(a)
            .Match(i => Assert.AreEqual(40, i),
                   e => Assert.Fail(e.Message));
        }
コード例 #3
0
ファイル: ChoiceTests.cs プロジェクト: gusty/fsharpx
        public void ChoiceToOption()
        {
            object       a = 40;
            const string b = "60";
            var          r = from i in FSharpOption.ParseInt(b)
                             from j in FSharpChoice.Cast <int>(a).ToFSharpOption()
                             select i + j;

            Assert.AreEqual(100.Some(), r);
        }
コード例 #4
0
ファイル: ChoiceTests.cs プロジェクト: gusty/fsharpx
        public void SelectSecond_Error()
        {
            object       a = 40;
            const string b = "xx";
            var          r = from i in FSharpOption.ParseInt(b).ToFSharpChoice("Invalid value b")
                             from j in FSharpChoice.Cast <int>(a).SelectSecond(_ => "Invalid value a")
                             select i + j;

            r.Match(i => Assert.Fail("should not have succeeded with value {0}", i),
                    e => Assert.AreEqual("Invalid value b", e));
        }
コード例 #5
0
ファイル: ChoiceTests.cs プロジェクト: gusty/fsharpx
        public void SelectSecond_OK()
        {
            object       a = 40;
            const string b = "60";
            var          r = from i in FSharpOption.ParseInt(b).ToFSharpChoice("Invalid value b")
                             from j in FSharpChoice.Cast <int>(a).SelectSecond(_ => "Invalid value a")
                             select i + j;

            r.Match(i => Assert.AreEqual(100, i),
                    Assert.Fail);
        }
コード例 #6
0
ファイル: ChoiceTests.cs プロジェクト: gusty/fsharpx
        public void OptionToChoice()
        {
            object       a = 40;
            const string b = "60";
            var          r = from i in FSharpOption.ParseInt(b).ToFSharpChoice(new Exception())
                             from j in FSharpChoice.Cast <int>(a)
                             select i + j;

            r.Match(i => Assert.AreEqual(100, i),
                    e => Assert.Fail(e.Message));
        }