Initial import of libdpf.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
commit
e4e666f459
4563 changed files with 1690372 additions and 0 deletions
76
thirdparty/uint256_t/tests/testcases/rightshift.cpp
vendored
Normal file
76
thirdparty/uint256_t/tests/testcases/rightshift.cpp
vendored
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
#include <gtest/gtest.h>
|
||||
|
||||
#include "uint256_t.h"
|
||||
|
||||
TEST(BitShift, right){
|
||||
// operator>>
|
||||
uint256_t val(0xffffffffffffffffULL);
|
||||
uint64_t exp = 0xffffffffffffffffULL;
|
||||
for(uint8_t i = 0; i < 64; i++){
|
||||
EXPECT_EQ(val >> i, exp >> i);
|
||||
}
|
||||
|
||||
uint256_t zero(0);
|
||||
for(uint8_t i = 0; i < 64; i++){
|
||||
EXPECT_EQ(zero >> i, 0);
|
||||
}
|
||||
|
||||
// operator>>=
|
||||
for(uint8_t i = 0; i < 64; i++){
|
||||
EXPECT_EQ(val >>= 1, exp >>= 1);
|
||||
}
|
||||
|
||||
for(uint8_t i = 0; i < 64; i++){
|
||||
EXPECT_EQ(zero >>= 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(External, shift_right){
|
||||
bool t = true;
|
||||
bool f = false;
|
||||
uint8_t u8 = 0xffULL;
|
||||
uint16_t u16 = 0xffffULL;
|
||||
uint32_t u32 = 0xffffffffULL;
|
||||
uint64_t u64 = 0xffffffffffffffffULL;
|
||||
|
||||
const uint256_t zero(0);
|
||||
const uint256_t one(1);
|
||||
|
||||
EXPECT_EQ(t >> zero, one);
|
||||
EXPECT_EQ(f >> zero, zero);
|
||||
EXPECT_EQ(u8 >> zero, u8);
|
||||
EXPECT_EQ(u16 >> zero, u16);
|
||||
EXPECT_EQ(u32 >> zero, u32);
|
||||
EXPECT_EQ(u64 >> zero, u64);
|
||||
|
||||
EXPECT_EQ(t >>= zero, t);
|
||||
EXPECT_EQ(f >>= zero, f);
|
||||
EXPECT_EQ(u8 >>= zero, u8);
|
||||
EXPECT_EQ(u16 >>= zero, u16);
|
||||
EXPECT_EQ(u32 >>= zero, u32);
|
||||
EXPECT_EQ(u64 >>= zero, u64);
|
||||
|
||||
EXPECT_EQ(t >> one, uint256_t(t) >> 1);
|
||||
EXPECT_EQ(f >> one, uint256_t(f) >> 1);
|
||||
EXPECT_EQ(u8 >> one, uint256_t(u8) >> 1);
|
||||
EXPECT_EQ(u16 >> one, uint256_t(u16) >> 1);
|
||||
EXPECT_EQ(u32 >> one, uint256_t(u32) >> 1);
|
||||
EXPECT_EQ(u64 >> one, uint256_t(u64) >> 1);
|
||||
|
||||
EXPECT_EQ(t >>= one, false);
|
||||
EXPECT_EQ(f >>= one, false);
|
||||
EXPECT_EQ(u8 >>= one, (uint8_t) 0x7fULL);
|
||||
EXPECT_EQ(u16 >>= one, (uint16_t) 0x7fffULL);
|
||||
EXPECT_EQ(u32 >>= one, (uint32_t) 0x7fffffffULL);
|
||||
EXPECT_EQ(u64 >>= one, (uint64_t) 0x7fffffffffffffffULL);
|
||||
|
||||
EXPECT_EQ(u8 >> uint256_t(7), zero);
|
||||
EXPECT_EQ(u16 >> uint256_t(15), zero);
|
||||
EXPECT_EQ(u32 >> uint256_t(31), zero);
|
||||
EXPECT_EQ(u64 >> uint256_t(63), zero);
|
||||
|
||||
EXPECT_EQ(u8 >>= uint256_t(7), (uint8_t) 0);
|
||||
EXPECT_EQ(u16 >>= uint256_t(15), (uint16_t) 0);
|
||||
EXPECT_EQ(u32 >>= uint256_t(31), (uint32_t) 0);
|
||||
EXPECT_EQ(u64 >>= uint256_t(63), (uint64_t) 0);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue