lean4-htt/src/tests/util/bit_tricks.cpp
Nuno Lopes 9152aaa7d6 fix(bit_tricks): make sure no one calls math.h's log2()
this fixes the bit_trick test with MSVC
2018-03-06 11:21:28 -08:00

33 lines
936 B
C++

/*
Copyright (c) 2013 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Author: Leonardo de Moura
*/
#include "util/test.h"
#include "util/bit_tricks.h"
using namespace lean;
static void tst1() {
lean_assert(log2(255u) == 7);
lean_assert(log2(256u) == 8);
lean_assert(log2(257u) == 8);
lean_assert(log2(321u) == 8);
lean_assert(log2(520u) == 9);
lean_assert(log2(65535u) == 15);
lean_assert(log2(65536u) == 16);
lean_assert(log2(65537u) == 16);
lean_assert(log2(5203939u) == 22);
lean_assert(log2(10309482u) == 23);
lean_assert(log2(41039392u) == 25);
lean_assert(log2(213469392u) == 27);
lean_assert(log2(1293828727u) == 30);
lean_assert(log2(1073741824u) == 30);
lean_assert(log2(2147483648u) == 31);
lean_assert(log2(4294967295u) == 31);
}
int main() {
tst1();
return has_violations() ? 1 : 0;
}