public void BI_copy_ctor_works()
 {
     BigInteger i = new BigInteger(1, new uint[] { 1, 2, 3 });
     BigInteger c = new BigInteger(i);
     Expect(SameValue(c, i.Signum, i.GetMagnitude()));
 }
        public void Subtract_from_zero_yields_negation()
        {
            BigInteger x = new BigInteger(0, new uint[0]);
            BigInteger y = new BigInteger(1, new uint[] { 0x12345678, 0x12345678, 0xFFFFFFFF, 0xFFFFFFFF, 0x22222222 });
            BigInteger z = x.Subtract(y);

            Expect(SameValue(z, -1, y.GetMagnitude()));
        }
 static bool SameValue(BigInteger i, int sign, uint[] mag)
 {
     return SameSign(i.Signum, sign)
         && SameMag(i.GetMagnitude(), mag);
 }
 public void Negate_positive_is_same_mag_neg()
 {
     BigInteger x = new BigInteger(1, new uint[] {0xfedcba98, 0x87654321});
     BigInteger xn = x.Negate();
     Expect(SameValue(xn, -1, x.GetMagnitude()));
 }