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/encoding/BitEncodingTest.lvt
namespace Eccelerators.BitTwiddling.Tests.Encoding
using Eccelerators.BitTwiddling.Encoding
@Test
component BitEncodingTest
{
@Test
fn TestGrayCode()
{
assert WordEncoding32.BinaryToGray(0 as uint) == (0 as uint)
assert WordEncoding32.BinaryToGray(1 as uint) == (1 as uint)
assert WordEncoding32.BinaryToGray(2 as uint) == (3 as uint)
assert WordEncoding32.BinaryToGray(3 as uint) == (2 as uint)
var gray: uint = WordEncoding32.BinaryToGray(0x12345678)
assert WordEncoding32.GrayToBinary(gray) == (0x12345678 as uint)
}
@Test
fn TestOneHot()
{
assert WordEncoding32.IsOneHot(0 as uint) == false
assert WordEncoding32.IsOneHot(0x80000000) == true
assert WordEncoding32.IsOneHot(3 as uint) == false
assert WordEncoding32.IsOneHotOrZero(0 as uint) == true
assert WordEncoding32.IndexToOneHot(5) == (0x20 as uint)
assert WordEncoding32.IndexToOneHot(32) == (0 as uint)
assert WordEncoding32.OneHotToIndex(0x80000000) == 31
assert WordEncoding32.OneHotToIndex(3 as uint) == -1
}
}