Livt packages
Eccelerators.BitTwiddling
Version 0.1.1
Readable 32-bit bit manipulation, counting, scanning, permutation, and arithmetic utilities for Livt.
Published files (26)
tests/counting/BitCountingTest.lvt
namespace Eccelerators.BitTwiddling.Tests.Counting
using Eccelerators.BitTwiddling.Counting
@Test
component BitCountingTest
{
@Test
fn TestPopulationCounts()
{
assert BitCounting.PopCountIterative(0) == 0
assert BitCounting.PopCountIterative(0xFFFFFFFF) == 32
assert BitCounting.PopCountParallel(0) == 0
assert BitCounting.PopCountParallel(0xFFFFFFFF) == 32
assert BitCounting.PopCountParallel(0xAAAAAAAA) == 16
assert BitCounting.PopCountParallel(0x80000001) == 2
assert BitCounting.PopCount(0x12345678) == 13
assert BitCounting.PopCountIterative(0x12345678) == BitCounting.PopCountParallel(0x12345678)
}
@Test
fn TestParity()
{
assert BitCounting.HasOddParity(0) == false
assert BitCounting.HasOddParity(1) == true
assert BitCounting.HasOddParity(3) == false
assert BitCounting.HasOddParity(0x80000001) == false
assert BitCounting.HasOddParity(0x80000003) == true
}
}