You've already forked linux-packaging-mono
Imported Upstream version 3.8.0
Former-commit-id: 6a76a29bd07d86e57c6c8da45c65ed5447d38a61
This commit is contained in:
@@ -315,12 +315,14 @@ namespace System.Numerics {
|
||||
word = (uint)sub;
|
||||
borrow = (uint)(sub >> 32) & 0x1u;
|
||||
|
||||
data [data.Length - 1] = ~word & store_mask;
|
||||
if ((~word & store_mask) == 0)
|
||||
data = Resize (data, data.Length - 1);
|
||||
else
|
||||
data [data.Length - 1] = ~word & store_mask;
|
||||
}
|
||||
if (borrow != 0) //FIXME I believe this can't happen, can someone write a test for it?
|
||||
throw new Exception ("non zero final carry");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public bool IsEven {
|
||||
|
@@ -550,13 +550,18 @@ namespace MonoTests.System.Numerics
|
||||
{
|
||||
long[] values = new long [] {
|
||||
0, long.MinValue, long.MaxValue, -1, 1L + int.MaxValue, -1L + int.MinValue, 0x1234, 0xFFFFFFFFL, 0x1FFFFFFFFL, -0xFFFFFFFFL, -0x1FFFFFFFFL,
|
||||
0x100000000L, -0x100000000L, 0x100000001L, -0x100000001L };
|
||||
0x100000000L, -0x100000000L, 0x100000001L, -0x100000001L, 4294967295L, -4294967295L, 4294967296L, -4294967296L };
|
||||
foreach (var val in values) {
|
||||
var a = new BigInteger (val);
|
||||
var b = new BigInteger (a.ToByteArray ());
|
||||
try {
|
||||
var a = new BigInteger (val);
|
||||
var b = new BigInteger (a.ToByteArray ());
|
||||
|
||||
Assert.AreEqual (val, (long)a, "#a_" + val);
|
||||
Assert.AreEqual (val, (long)b, "#b_" + val);
|
||||
Assert.AreEqual (val, (long)a, "#a_" + val);
|
||||
Assert.AreEqual (val, (long)b, "#b_" + val);
|
||||
Assert.AreEqual (a, b, "#a == #b (" + val + ")");
|
||||
} catch (Exception e) {
|
||||
Assert.Fail ("could not roundtrip {0}", val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user