public void TestGetLowestSetBit()
{
for (int i = 0; i < 10; ++i)
{
BigInteger test = new BigInteger(128, 0, random).Add(one);
int bit1 = test.GetLowestSetBit();
Assert.AreEqual(test, test.ShiftRight(bit1).ShiftLeft(bit1));
int bit2 = test.ShiftLeft(i + 1).GetLowestSetBit();
Assert.AreEqual(i + 1, bit2 - bit1);
int bit3 = test.ShiftLeft(13 * i + 1).GetLowestSetBit();
Assert.AreEqual(13 * i + 1, bit3 - bit1);
}
}