예제 #1
0
        public static void Parse6b()
        {
            var value = "IBAN AL47212110090000000235698741";

            Assert.NotNull(Iban.Parse(value, IbanStyles.AllowHeader));
            Assert.True(Iban.TryParse(value, IbanStyles.AllowHeader).IsSuccess);
        }
예제 #2
0
        public static void Equality3()
        {
            var ok  = Fallible.Ok;
            var nok = Fallible.FromError(Error);

            Assert.True(nok != ok);
        }
예제 #3
0
        public static void Equals2(string value1, string value2)
        {
            var    parts1 = ParseFast(value1);
            object parts2 = ParseFast(value2);

            Assert.True(parts1.Equals(parts2));
        }
예제 #4
0
        public static void Equals2(string value1, string value2)
        {
            var    iban1 = ParseFast(value1);
            object iban2 = ParseFast(value2);

            Assert.True(iban1.Equals(iban2));
        }
예제 #5
0
        public static void FromError1()
        {
            var nok = Fallible.FromError(Error);

            Assert.True(nok.IsError);
            Assert.False(nok.IsSuccess);
        }
예제 #6
0
        public static void Deconstruct1()
        {
            var ok = Fallible.Ok;

            var(succeed, err) = ok;
            Assert.True(succeed);
            Assert.Null(err);
        }
예제 #7
0
        public static void RightOrNone1()
        {
            var either = Either <Obj, Obj> .OfLeft(new Obj("left"));

            var result = either.RightOrNone();

            Assert.True(result.IsNone);
        }
예제 #8
0
        public static void Equality2(string value1, string value2)
        {
            var iban1 = ParseFast(value1);
            var iban2 = ParseFast(value2);

            Assert.False(iban1 == iban2);
            Assert.True(iban1 != iban2);
        }
예제 #9
0
        public static void Equality2(string value1, string value2)
        {
            var parts1 = ParseFast(value1);
            var parts2 = ParseFast(value2);

            Assert.False(parts1 == parts2);
            Assert.True(parts1 != parts2);
        }
예제 #10
0
        public static void OfRight1()
        {
            var either = Either <Obj, Obj> .OfRight(new Obj("left"));

            Assert.NotNull(either);
            Assert.True(either.IsRight);
            Assert.False(either.IsLeft);
        }
예제 #11
0
        public static void WhereAny1a()
        {
            bool notCalled = true;
            Func <Either <bool, int> > fun = () => { notCalled = false; return(Either <bool, int> .OfLeft(true)); };
            var q = Enumerable.Repeat(fun, 1).WhereAny(f => f());

            Assert.True(notCalled);
            Assert.CalledOnNext(q, ref notCalled);
        }
예제 #12
0
        public static void SelectAny1b()
        {
            bool          notCalled = true;
            Func <string> fun       = () => { notCalled = false; return(String.Empty); };
            var           q         = Enumerable.Repeat(fun, 1).SelectAny(f => f());

            Assert.True(notCalled);
            Assert.CalledOnNext(q, ref notCalled);
        }
예제 #13
0
        public static void CheckIntegrity3(string value)
        {
            var iban = Iban.Parse(value, IbanStyles.None, IbanValidationLevels.Integrity).Value;

            var result = Iban.CheckIntegrity(iban);

            Assert.True(result.HasValue);
            Assert.True(result.Value.VerificationLevels.Contains(IbanValidationLevels.Integrity));
        }
예제 #14
0
        public static void WhereAny1()
        {
            bool         notCalled = true;
            Func <bool?> fun       = () => { notCalled = false; return(true); };
            var          q         = Enumerable.Repeat(fun, 1).WhereAny(f => f());

            Assert.True(notCalled);
            Assert.CalledOnNext(q, ref notCalled);
        }
예제 #15
0
        public static void cast6()
        {
            var exp    = new Obj("right");
            var either = (Either <string, Obj>)exp;

            Assert.NotNull(either);
            Assert.True(either.IsRight);
            Assert.True(either.ContainsRight(exp));
        }
예제 #16
0
        public static void cast5()
        {
            var exp    = new Obj("left");
            var either = (Either <Obj, string>)exp;

            Assert.NotNull(either);
            Assert.True(either.IsLeft);
            Assert.True(either.ContainsLeft(exp));
        }
예제 #17
0
        public static void Swap1()
        {
            var exp    = new Obj("left");
            var either = Either <Obj, Obj> .OfLeft(exp);

            var swapped = either.Swap();

            Assert.True(swapped.IsRight);
            Assert.True(swapped.ContainsRight(exp));
        }
예제 #18
0
        public static void Equals1()
        {
            var ok = Fallible.Ok;

            Assert.True(ok.Equals(ok));

            var nok = Fallible.FromError(Error);

            Assert.True(nok.Equals(nok));
        }
예제 #19
0
        public static void Deconstruct1()
        {
            var exp    = new Obj();
            var either = Either <Obj, int> .OfLeft(exp);

            var(isLeft, left, right) = either;
            Assert.True(isLeft);
            Assert.Same(exp, left);
            Assert.Equal(default(int), right);
        }
예제 #20
0
        public static void Map1a()
        {
            bool notCalled = true;
            Func <Either <int, int> > fun = () => { notCalled = false; return(Either <int, int> .OfLeft(1)); };
            var q = Either.Map(Enumerable.Repeat(fun, 1), f => f());

            Assert.True(notCalled);
            q.OnLeft(x => Assert.CalledOnNext(x, ref notCalled));
            q.OnRight(x => Assert.Fail());
        }
예제 #21
0
        public static void SwapUnchecked2()
        {
            var exp    = new Obj("right");
            var either = Either <Obj, Obj> .OfRight(exp);

            var swapped = either.SwapUnchecked();

            Assert.True(swapped.IsLeft);
            Assert.True(swapped.ContainsLeft(exp));
        }
예제 #22
0
        public static void TryParse3(string value)
        {
            var result = IbanParts.TryParse(value);

            Assert.True(result.IsError);

#if !NO_INTERNALS_VISIBLE_TO
            result.OnError(err => Assert.Equal(Format.Current(Strings.InvalidInput_CheckDigits, value), err));
#endif
        }
예제 #23
0
        public static void Deconstruct1()
        {
            var exp = new Obj();
            var ok  = Result <Obj, string> .Of(exp);

            var(succeed, value, err) = ok;
            Assert.True(succeed);
            Assert.Same(exp, value);
            Assert.Null(err);
        }
        public static void WhereImpl1a()
        {
            bool notCalled = true;
            Func <Either <bool, int> > fun
                = () => { notCalled = false; return(Either <bool, int> .OfLeft(true)); };
            var q = Enumerable.Repeat(fun, 1).WhereImpl(f => f());

            Assert.True(notCalled);
            q.OnLeft(x => Assert.CalledOnNext(x, ref notCalled));
            q.OnRight(x => Assert.Fail());
        }
예제 #25
0
        public static void Equals4()
        {
            var ok   = Fallible.Ok;
            var nok  = Fallible.FromError(Error);
            var nok1 = Fallible.FromError(Error1);
            var nok2 = Fallible.FromError(Error1);

            Assert.False(ok.Equals(nok));
            Assert.False(nok1.Equals(nok));
            Assert.True(nok1.Equals(nok2));
        }
예제 #26
0
        public static void RightOrNone2()
        {
            var value  = new Obj("right");
            var either = Either <string, Obj> .OfRight(value);

            var exp = Maybe.Of(value);

            var result = either.RightOrNone();

            Assert.True(result.IsSome);
            Assert.True(result.Contains(value));
        }
예제 #27
0
        public static void LeftOrNone2()
        {
            var value  = new Obj("left");
            var either = Either <Obj, Obj> .OfLeft(value);

            var exp = Maybe.Of(value);

            var result = either.LeftOrNone();

            Assert.True(result.IsSome);
            Assert.True(result.Contains(value));
        }
예제 #28
0
        public static void Equality1()
        {
            var nok1 = Fallible.FromError(Error);
            var nok2 = Fallible.FromError(Error);

            Assert.True(nok1 == nok2);
            Assert.False(nok1 != nok2);

            var nok3 = Fallible.FromError(Error);
            var nok4 = Fallible.FromError(Error1);

            Assert.False(nok3 == nok4);
            Assert.True(nok3 != nok4);
        }
예제 #29
0
        public static void TryParse5(string value, string expectedBban)
        {
            var parts = IbanParts.TryParse(value);

            var countryCode = parts.Select(x => x.CountryCode);

            Assert.True(countryCode.Contains("FR"));

            var checkDigits = parts.Select(x => x.CheckDigits);

            Assert.True(checkDigits.Contains("34"));

            var bban = parts.Select(x => x.Bban);

            Assert.True(bban.Contains(expectedBban));
        }
예제 #30
0
        public static void Parse7a()
        {
            Assert.Null(Iban.Parse("", IbanStyles.Any));
            Assert.True(Iban.TryParse("", IbanStyles.Any).IsError);

            Assert.Null(Iban.Parse(" ", IbanStyles.Any));
            Assert.True(Iban.TryParse(" ", IbanStyles.Any).IsError);

            Assert.Null(Iban.Parse("X ", IbanStyles.Any));
            Assert.True(Iban.TryParse("X ", IbanStyles.Any).IsError);

            Assert.Null(Iban.Parse(" X", IbanStyles.Any));
            Assert.True(Iban.TryParse(" X", IbanStyles.Any).IsError);

            Assert.Null(Iban.Parse("X X", IbanStyles.Any));
            Assert.True(Iban.TryParse("X X", IbanStyles.Any).IsError);
        }