System.IComparable.CompareTo(TUnderlying)

Here are the examples of the csharp api System.IComparable.CompareTo(TUnderlying) taken from open source projects. By voting up you can indicate which examples are most useful and appropriate.

5 Examples 7

19 Source : EnumTransformerTests.cs
with MIT License
from nemesissoft

[Test]
        public void ParseNumberFlags() //7 = 1,2,4
        {
            if (!_sut.IsFlagEnum)
                replacedert.Preplaced("Test is not supported for non-flag enums");

            var sb = new StringBuilder();
            var failed = new List<string>();
            foreach (var (number, _, _) in _testValues)
            {
                if (number.CompareTo(_numberHandler.Zero) <= 0)
                    continue;
                sb.Length = 0;

                var num = number;
                int bitMeaning = 1;
                while (num.CompareTo(_numberHandler.Zero) > 0)
                {
                    bool isSet = _numberHandler.And(num, _numberHandler.One).Equals(_numberHandler.One); //num & 1 == 1
                    if (isSet)
                        sb.Append(bitMeaning).Append(',');
                    num = _numberHandler.ShR(num, 1); // num = num >> 1;
                    bitMeaning *= 2;
                }

                if (sb.Length > 0)
                    sb.Remove(sb.Length - 1, 1);
                var text = sb.ToString();

                var actual = _sut.Parse(text.replacedpan());
                //var native1 = (TEnum)Enum.Parse(typeof(TEnum), text, true);
                var native = (TEnum)Enum.Parse(typeof(TEnum), number.ToString(), true);
                bool preplaced = Equals(actual, native);

                string message = $"{ToTick(preplaced)}  '{actual}' {ToOperator(preplaced)} '{native}', {number} ({text})";

                if (!preplaced)
                    failed.Add(message);
            }
            replacedert.That(failed, Is.Empty, GetFailedMessageBuilder(failed));
        }

19 Source : NumberTests.cs
with MIT License
from nemesissoft

[Test]
        public void AddTest()
        {
            var min = _sut.MinValue;
            var minMinus1 = _sut.Sub(min, _sut.One);
            replacedert.That(minMinus1, Is.GreaterThan(min));

            var max = _sut.MaxValue;
            var maxPlus1 = _sut.Add(max, _sut.One);

            replacedert.That(maxPlus1, Is.LessThan(max));


            var loopFrom = _sut.Add(min, _sut.One);
            var increment = _sut.Div(max, _sut.FromInt64(120));
            var loopMax = _sut.Sub(_sut.MaxValue, increment);


            bool atLeaseOnePreplaced = false;
            var prev = min;
            for (TUnderlying next = loopFrom;
                next.CompareTo(loopMax) < 0;
                next = _sut.Add(next, increment))
            {
                replacedert.That(next, Is.GreaterThan(prev));
                prev = next;
                atLeaseOnePreplaced = true;
            }

            replacedert.IsTrue(atLeaseOnePreplaced);
        }

19 Source : NumberTests.cs
with MIT License
from nemesissoft

[Test]
        public void TryParseTest()
        {
            var min = _sut.MinValue;
            var max = _sut.MaxValue;

            var loopFrom = _sut.Add(min, _sut.One);
            var increment = _sut.Div(max, _sut.FromInt64(120));
            var loopMax = _sut.Sub(max, increment);

            var prev = min;
            uint preplacedes = 0;
            for (TUnderlying i = loopFrom;
                i.CompareTo(loopMax) < 0;
                i = _sut.Add(i, increment))
            {
                string text = i.ToString(null, CultureInfo.InvariantCulture);
                bool success = _sut.TryParse(text.replacedpan(), out var value);

                replacedert.That(success, Is.True, $"Failed at '{text}'");
                replacedert.That(value, Is.GreaterThan(prev));
                prev = value;


                var left = BigInteger.Parse(text, NumberStyles.Number, CultureInfo.InvariantCulture);
                string text2 = value.ToString(null, CultureInfo.InvariantCulture);
                var right = BigInteger.Parse(text2, NumberStyles.Number, CultureInfo.InvariantCulture);
                replacedert.That(left, Is.EqualTo(right), $"BigInt {text}");


                preplacedes++;
            }

            replacedert.That(preplacedes, Is.GreaterThanOrEqualTo(120));
        }

19 Source : EnumTransformerTests.cs
with MIT License
from nemesissoft

private static IReadOnlyList<(TUnderlying Number, TEnum Enum, string Text)> GetTestValues()
        {
            Type enumType = typeof(TEnum);
            var values = Enum.GetValues(enumType).Cast<TUnderlying>().ToList();


            TUnderlying min = values.Count == 0 ? _numberHandler.Zero : values.Min(),
                        max = values.Count == 0 ? _numberHandler.Zero : values.Max();

            int iMin = 10, iMax = 10;
            while (iMin-- > 0)
                if (min.CompareTo(_numberHandler.MinValue) > 0)
                    min = _numberHandler.Sub(min, _numberHandler.One);
                else iMax++;

            while (iMax-- > 0)
                if (max.CompareTo(_numberHandler.MaxValue) < 0)
                    max = _numberHandler.Add(max, _numberHandler.One);

            var result = new List<(TUnderlying, TEnum, string)>();

            for (var number = min; number.CompareTo(max) <= 0; number = _numberHandler.Add(number, _numberHandler.One))
                result.Add(
                    (number, ToEnum(number), ToEnum(number).ToString("G"))
                    );

            return result.AsReadOnly();
        }

19 Source : EnumTransformerTests.cs
with MIT License
from nemesissoft

private static IReadOnlyList<(TUnderlying Number, TEnum Enum, string Text)> GetTestValues()
        {
            Type enumType = typeof(TEnum);
            var values = Enum.GetValues(enumType).Cast<TUnderlying>().ToList();


            TUnderlying min = values.Count == 0 ? _numberHandler.Zero : values.Min(),
                        max = values.Count == 0 ? _numberHandler.Zero : values.Max();

            int iMin = 10, iMax = 10;
            while (iMin-- > 0)
                if (min.CompareTo(_numberHandler.MinValue) > 0)
                    min = _numberHandler.Sub(min, _numberHandler.One);
                else iMax++;

            while (iMax-- > 0)
                if (max.CompareTo(_numberHandler.MaxValue) < 0)
                    max = _numberHandler.Add(max, _numberHandler.One);

            var result = new List<(TUnderlying, TEnum, string)>();

            for (var number = min; number.CompareTo(max) <= 0; number = _numberHandler.Add(number, _numberHandler.One))
                result.Add(
                    (number, ToEnum(number), ToEnum(number).ToString("G"))
                    );

            return result.AsReadOnly();
        }