This repository has been archived on 2023-10-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-archive/source/blender/blenlib/tests/BLI_math_bits_test.cc
Brecht Van Lommel 53d203dea8 Tests: move remaining gtests into their own module folders
And make them part of the blender_test runner. The one exception is blenlib
performance tests, which we don't want to run by default. They remain in their
own executable.

Differential Revision: https://developer.blender.org/D8498
2020-08-10 18:14:00 +02:00

51 lines
1.5 KiB
C++

/* Apache License, Version 2.0 */
#include "BLI_math_bits.h"
#include "testing/testing.h"
#include <iostream>
TEST(math_bits, BitscanReverseClearUint)
{
uint a = 1234;
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 21);
EXPECT_EQ(a, 210);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 24);
EXPECT_EQ(a, 82);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 25);
EXPECT_EQ(a, 18);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 27);
EXPECT_EQ(a, 2);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 30);
EXPECT_EQ(a, 0);
a = 3563987529;
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 0);
EXPECT_EQ(a, 1416503881);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 1);
EXPECT_EQ(a, 342762057);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 3);
EXPECT_EQ(a, 74326601);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 5);
EXPECT_EQ(a, 7217737);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 9);
EXPECT_EQ(a, 3023433);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 10);
EXPECT_EQ(a, 926281);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 12);
EXPECT_EQ(a, 401993);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 13);
EXPECT_EQ(a, 139849);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 14);
EXPECT_EQ(a, 8777);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 18);
EXPECT_EQ(a, 585);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 22);
EXPECT_EQ(a, 73);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 25);
EXPECT_EQ(a, 9);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 28);
EXPECT_EQ(a, 1);
EXPECT_EQ(bitscan_reverse_clear_uint(&a), 31);
EXPECT_EQ(a, 0);
}