#include #include "util.h" static void test_nlz() { assert(nlz(0xF0) == 24); assert(nlz(1) == 31); assert(nlz(0) == 32); assert(nlz(0xFFFFFFFF) == 0); } static void test_dilate() { assert(dilate(0xFFFFFFFF) == 0x5555555555555555ul); } static void test_undilate() { assert(undilate(0x5555555555555555ul) == 0xFFFFFFFF); } static void test_dilate_inv(uint32_t max) { uint32_t i; for(i = 0; i < max; i++) assert(undilate(dilate(i)) == i); } int main() { test_nlz(); test_dilate(); test_undilate(); test_dilate_inv(43125); return 0; }