// SPDX-License-Identifier: MIT #include #include #include "Utils/Allocator/FlexBitSet.h" TEST_CASE("FlexBitSet - Sizing") { // Ensure that FlexBitSet sizing is correct. // Size of zero shouldn't take any space. CHECK(FEXCore::FlexBitSet::SizeInBytes(0) == 0); CHECK(FEXCore::FlexBitSet::SizeInBytes(0) == 0); CHECK(FEXCore::FlexBitSet::SizeInBytes(0) == 0); CHECK(FEXCore::FlexBitSet::SizeInBytes(0) == 0); CHECK(FEXCore::FlexBitSet::SizeInBits(0) == 0); CHECK(FEXCore::FlexBitSet::SizeInBits(0) == 0); CHECK(FEXCore::FlexBitSet::SizeInBits(0) == 0); CHECK(FEXCore::FlexBitSet::SizeInBits(0) == 0); // Size of 1 should take one sizeof(ElementSize) size CHECK(FEXCore::FlexBitSet::SizeInBytes(1) == sizeof(uint8_t)); CHECK(FEXCore::FlexBitSet::SizeInBytes(1) == sizeof(uint16_t)); CHECK(FEXCore::FlexBitSet::SizeInBytes(1) == sizeof(uint32_t)); CHECK(FEXCore::FlexBitSet::SizeInBytes(1) == sizeof(uint64_t)); CHECK(FEXCore::FlexBitSet::SizeInBits(1) == sizeof(uint8_t) * 8); CHECK(FEXCore::FlexBitSet::SizeInBits(1) == sizeof(uint16_t) * 8); CHECK(FEXCore::FlexBitSet::SizeInBits(1) == sizeof(uint32_t) * 8); CHECK(FEXCore::FlexBitSet::SizeInBits(1) == sizeof(uint64_t) * 8); // Size of `sizeof(ElementSize) * 8` should take one sizeof(ElementSize) size CHECK(FEXCore::FlexBitSet::SizeInBytes(sizeof(uint8_t) * 8) == sizeof(uint8_t)); CHECK(FEXCore::FlexBitSet::SizeInBytes(sizeof(uint16_t) * 8) == sizeof(uint16_t)); CHECK(FEXCore::FlexBitSet::SizeInBytes(sizeof(uint32_t) * 8) == sizeof(uint32_t)); CHECK(FEXCore::FlexBitSet::SizeInBytes(sizeof(uint64_t) * 8) == sizeof(uint64_t)); CHECK(FEXCore::FlexBitSet::SizeInBits(sizeof(uint8_t) * 8) == sizeof(uint8_t) * 8); CHECK(FEXCore::FlexBitSet::SizeInBits(sizeof(uint16_t) * 8) == sizeof(uint16_t) * 8); CHECK(FEXCore::FlexBitSet::SizeInBits(sizeof(uint32_t) * 8) == sizeof(uint32_t) * 8); CHECK(FEXCore::FlexBitSet::SizeInBits(sizeof(uint64_t) * 8) == sizeof(uint64_t) * 8); }