RawSpeed
fast raw decoding library
Loading...
Searching...
No Matches
BitTest.cpp File Reference
#include "adt/Bit.h"
#include <algorithm>
#include <cstdint>
#include <limits>
#include <string>
#include <tuple>
#include <vector>
#include <gtest/gtest.h>
Include dependency graph for BitTest.cpp:

Go to the source code of this file.

Classes

class  rawspeed_test::anonymous_namespace{BitTest.cpp}::PowerOfTwoTest
class  rawspeed_test::anonymous_namespace{BitTest.cpp}::ClampBitsTest
class  string
 STL class. More...

Namespaces

namespace  rawspeed_test
namespace  rawspeed_test::anonymous_namespace{BitTest.cpp}

Macros

#define MIN(a, b)
#define MAX(a, b)
#define ROW(v, p, pv)
#define ROWS(v, p, pv)
#define THREEROWS(v, p)
#define MOREROWS(v)
#define GENERATE()

Typedefs

using rawspeed_test::anonymous_namespace{BitTest.cpp}::powerOfTwoType = std::tuple<int, bool>
using rawspeed_test::anonymous_namespace{BitTest.cpp}::ClampBitsType = std::tuple<int, int, uint16_t>

Functions

 rawspeed_test::anonymous_namespace{BitTest.cpp}::INSTANTIATE_TEST_SUITE_P (PowerOfTwoTest, PowerOfTwoTest, ::testing::ValuesIn(powerOfTwoValues))
 rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST_P (PowerOfTwoTest, PowerOfTwoTest)
 rawspeed_test::anonymous_namespace{BitTest.cpp}::INSTANTIATE_TEST_SUITE_P (ClampBitsTest, ClampBitsTest, ::testing::ValuesIn(ClampBitsValues))
 rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST_P (ClampBitsTest, ClampBitsTest)
 rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST (ClampBitsDeathTest, Only16Bit)
 rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST (ClampBitsUnsignedDeathTest, NoNopClamps)
template<typename T>
requires std::is_arithmetic_v<T>
constexpr auto RAWSPEED_READNONE clampBits (T value, unsigned int nBits)
template<typename T>
constexpr bool RAWSPEED_READNONE isPowerOfTwo (T val)

Variables

const powerOfTwoType rawspeed_test::anonymous_namespace{BitTest.cpp}::powerOfTwoValues []
const ClampBitsType rawspeed_test::anonymous_namespace{BitTest.cpp}::ClampBitsValues []

Macro Definition Documentation

◆ GENERATE

#define GENERATE ( )
Value:
MOREROWS(0) \
MOREROWS(1) \
MOREROWS(2) MOREROWS(4) MOREROWS(8) MOREROWS(16) MOREROWS(24) MOREROWS(30)
#define MOREROWS(v)
Definition BitTest.cpp:94

Definition at line 101 of file BitTest.cpp.

◆ MAX

#define MAX ( a,
b )
Value:
((a) > (b) ? (a) : (b))

Definition at line 83 of file BitTest.cpp.

◆ MIN

#define MIN ( a,
b )
Value:
((a) < (b) ? (a) : (b))

Definition at line 82 of file BitTest.cpp.

◆ MOREROWS

#define MOREROWS ( v)
Value:
THREEROWS(v, 0) \
THREEROWS(v, 1) \
THREEROWS(v, 2) \
THREEROWS(v, 4) \
THREEROWS(v, 8) THREEROWS(v, 16)
#define THREEROWS(v, p)
Definition BitTest.cpp:89

Definition at line 94 of file BitTest.cpp.

◆ ROW

#define ROW ( v,
p,
pv )
Value:
make_tuple((v), (p), MIN(pv, MAX(v, 0))),
#define MIN(a, b)
Definition BitTest.cpp:82
#define MAX(a, b)
Definition BitTest.cpp:83

Definition at line 85 of file BitTest.cpp.

◆ ROWS

#define ROWS ( v,
p,
pv )
Value:
ROW(-v, p, 0) ROW(v, p, pv)
#define ROW(v, p, pv)
Definition BitTest.cpp:85

Definition at line 87 of file BitTest.cpp.

◆ THREEROWS

#define THREEROWS ( v,
p )
Value:
ROWS(((1 << (v)) - 1), (p), ((1 << (p)) - 1)) \
ROWS(((1 << (v)) - 0), (p), ((1 << (p)) - 1)) \
ROWS(((1 << (v)) + 1), (p), ((1 << (p)) - 1))
#define ROWS(v, p, pv)
Definition BitTest.cpp:87

Definition at line 89 of file BitTest.cpp.

Function Documentation

◆ clampBits()

template<typename T>
requires std::is_arithmetic_v<T>
auto RAWSPEED_READNONE rawspeed::clampBits ( T value,
unsigned int nBits )
constexpr

Definition at line 75 of file Bit.h.

Referenced by rawspeed::DngOpcodes::OffsetPerRowOrCol< S >::apply(), rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST(), rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST(), and rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST_P().

Here is the caller graph for this function:

◆ isPowerOfTwo()

template<typename T>
bool RAWSPEED_READNONE rawspeed::isPowerOfTwo ( T val)
constexpr

Definition at line 38 of file Bit.h.

Referenced by rawspeed_test::anonymous_namespace{BitTest.cpp}::TEST_P().

Here is the caller graph for this function: