mirror of
https://github.com/fraillt/bitsery.git
synced 2026-09-03 08:58:33 +00:00
range spec bits required is constexpr
This commit is contained in:
@@ -6,27 +6,17 @@
|
||||
#include "SerializationTestUtils.h"
|
||||
using namespace testing;
|
||||
|
||||
TEST(Ranges, IntegralRanges) {
|
||||
TEST(Ranges, RequiredBitsIsConstexpr) {
|
||||
constexpr RangeSpec<int> r1{0, 31};
|
||||
static_assert(r1.bitsRequired() == 5);
|
||||
EXPECT_TRUE(r1.isValid(0));
|
||||
EXPECT_TRUE(r1.isValid(15));
|
||||
EXPECT_TRUE(r1.isValid(31));
|
||||
EXPECT_FALSE(r1.isValid(-1));
|
||||
EXPECT_FALSE(r1.isValid(32));
|
||||
|
||||
constexpr RangeSpec<MyEnumClass> r2{MyEnumClass::E1, MyEnumClass::E4};
|
||||
EXPECT_TRUE(r2.isValid(MyEnumClass::E2));
|
||||
EXPECT_FALSE(r2.isValid(MyEnumClass::E5));
|
||||
static_assert(r2.bitsRequired() == 2);
|
||||
|
||||
int x= 0;
|
||||
RangeSpec<int> r3{x,3};
|
||||
EXPECT_THAT(r3.bitsRequired(), Eq(2));
|
||||
constexpr RangeSpec<double> r3{-1.0,1.0, 5u, 0};
|
||||
static_assert(r3.bitsRequired() == 5);
|
||||
|
||||
constexpr RangeSpec<float> r4{-1.0f,1.0f, 0.01f};
|
||||
static_assert(r4.bitsRequired() == 8);
|
||||
|
||||
SerializationContext ctx;
|
||||
// ctx.createSerializer().range(486, {0,900});
|
||||
// ctx.createSerializer().range(MyEnumClass::E4, {MyEnumClass::E1,MyEnumClass::E6});
|
||||
// ctx.createSerializer().range(4.5f, {0.0f,10.0f, 10});
|
||||
// ctx.createSerializer().range(4.5f, {0.0f,10.0f, 0.001f});
|
||||
}
|
||||
Reference in New Issue
Block a user