예제 #1
0
 public virtual void TestPerfSelectAllBitsNaive()
 {
     for (int j = 0; j < 10000; j++) // real perftest: 1000000
     {
         for (int i = 0; i < 64; i++)
         {
             Assert.AreEqual(i, BroadWord.SelectNaive(unchecked ((long)0xFFFFFFFFFFFFFFFFL), i + 1));
         }
     }
 }
예제 #2
0
 private void TstSelect(long x, int r, int exp)
 {
     Assert.AreEqual(exp, BroadWord.SelectNaive(x, r), "selectNaive(" + x + "," + r + ")");
     Assert.AreEqual(exp, BroadWord.Select(x, r), "select(" + x + "," + r + ")");
 }
예제 #3
0
 private void TstRank(long x)
 {
     Assert.AreEqual(Number.BitCount(x), BroadWord.BitCount(x), "rank(" + x + ")");
 }
예제 #4
0
 public virtual void TestNotEquals0_8()
 {
     // 0 <= arguments < 2 ** k, k=8, see paper
     for (long i = 0x0L; i <= 0xFFL; i++)
     {
         long ii = i * BroadWord.L8_L;
         Assert.AreEqual(ToStringUtils.LongHex((i != 0L) ? unchecked (0x80L * BroadWord.L8_L) : 0x0L), ToStringUtils.LongHex(BroadWord.NotEquals0_8(ii)), ToStringUtils.LongHex(ii) + " <> 0");
     }
 }
예제 #5
0
 public virtual void TestSmalleru_8_01()
 {
     // 0 <= arguments < 2 ** k, k=8, see paper
     for (long i = 0x0L; i <= 0xFFL; i++)
     {
         for (long j = 0x0L; i <= 0xFFL; i++)
         {
             long ii = i * BroadWord.L8_L;
             long jj = j * BroadWord.L8_L;
             Assert.AreEqual(ToStringUtils.LongHex((i < j) ? unchecked (0x80L * BroadWord.L8_L) : 0x0L), ToStringUtils.LongHex(BroadWord.Smalleru_8(ii, jj)), ToStringUtils.LongHex(ii) + " < " + ToStringUtils.LongHex(jj));
         }
     }
 }