blob: a661144dbd9350a426fb9da36f97d52253c3932c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
using System;
using NUnit.Framework;
namespace Org.BouncyCastle.Utilities.UtilTests
{
[TestFixture]
public class IntegersTest
{
[Test]
public void TestNumberOfLeadingZeros()
{
for (int i = 0; i < 31; ++i)
{
Assert.AreEqual(i, Integers.NumberOfLeadingZeros((int)(0x80000000U >> i)));
Assert.AreEqual(i, Integers.NumberOfLeadingZeros((int)(0xFFFFFFFFU >> i)));
}
Assert.AreEqual(31, Integers.NumberOfLeadingZeros(1));
Assert.AreEqual(32, Integers.NumberOfLeadingZeros(0));
}
[Test]
public void TestNumberOfTrailingZeros()
{
for (int i = 0; i < 31; ++i)
{
Assert.AreEqual(i, Integers.NumberOfTrailingZeros(1 << i));
Assert.AreEqual(i, Integers.NumberOfTrailingZeros(-1 << i));
}
Assert.AreEqual(31, Integers.NumberOfTrailingZeros(int.MinValue));
Assert.AreEqual(32, Integers.NumberOfTrailingZeros(0));
}
}
}
|