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
19
Source : EnumTransformerTests.cs
with MIT License
from nemesissoft
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
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
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
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
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();
}