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
160
test/tests/helpers/custom_input_type.hpp
Normal file
160
test/tests/helpers/custom_input_type.hpp
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
#include <cstdint>
|
||||
|
||||
class custom_input_type
|
||||
{
|
||||
public:
|
||||
constexpr custom_input_type()
|
||||
: val_{0}
|
||||
{ }
|
||||
|
||||
constexpr custom_input_type(uint16_t val)
|
||||
: val_{val}
|
||||
{ }
|
||||
|
||||
custom_input_type operator<<(std::size_t shift) const
|
||||
{
|
||||
return custom_input_type{static_cast<uint16_t>(val_ << shift)};
|
||||
}
|
||||
|
||||
custom_input_type & operator<<=(std::size_t shift)
|
||||
{
|
||||
this->val_ <<= shift;
|
||||
return *this;
|
||||
}
|
||||
|
||||
custom_input_type operator>>(std::size_t shift) const
|
||||
{
|
||||
return custom_input_type{static_cast<uint16_t>(val_ >> shift)};
|
||||
}
|
||||
|
||||
custom_input_type & operator>>=(std::size_t shift)
|
||||
{
|
||||
this->val_ >>= shift;
|
||||
return *this;
|
||||
}
|
||||
|
||||
custom_input_type operator&(const custom_input_type & rhs) const
|
||||
{
|
||||
return custom_input_type{static_cast<uint16_t>(this->val_ & rhs.val_)};
|
||||
}
|
||||
|
||||
custom_input_type operator^(const custom_input_type & rhs) const
|
||||
{
|
||||
return custom_input_type{static_cast<uint16_t>(this->val_ ^ rhs.val_)};
|
||||
}
|
||||
|
||||
custom_input_type operator~() const
|
||||
{
|
||||
return custom_input_type{static_cast<uint16_t>(~this->val_)};
|
||||
}
|
||||
|
||||
custom_input_type & operator++()
|
||||
{
|
||||
++this->val_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
custom_input_type operator++(int)
|
||||
{
|
||||
custom_input_type tmp = *this;
|
||||
this->operator++();
|
||||
return tmp;
|
||||
}
|
||||
|
||||
custom_input_type & operator--()
|
||||
{
|
||||
--this->val_;
|
||||
return *this;
|
||||
}
|
||||
|
||||
custom_input_type operator--(int)
|
||||
{
|
||||
custom_input_type tmp = *this;
|
||||
this->operator--();
|
||||
return tmp;
|
||||
}
|
||||
|
||||
bool operator==(const custom_input_type & rhs) const
|
||||
{
|
||||
return this->val_ == rhs.val_;
|
||||
}
|
||||
|
||||
bool operator>(const custom_input_type & rhs) const
|
||||
{
|
||||
return this->val_ > rhs.val_;
|
||||
}
|
||||
|
||||
bool operator>=(const custom_input_type & rhs) const
|
||||
{
|
||||
return this->val_ >= rhs.val_;
|
||||
}
|
||||
|
||||
bool operator<(const custom_input_type & rhs) const
|
||||
{
|
||||
return this->val_ < rhs.val_;
|
||||
}
|
||||
|
||||
bool operator<=(const custom_input_type & rhs) const
|
||||
{
|
||||
return this->val_ <= rhs.val_;
|
||||
}
|
||||
|
||||
operator bool() const
|
||||
{
|
||||
return static_cast<bool>(this->val_);
|
||||
}
|
||||
|
||||
operator uint16_t() const
|
||||
{
|
||||
return val_;
|
||||
}
|
||||
|
||||
operator uint64_t() const
|
||||
{
|
||||
return static_cast<uint64_t>(val_);
|
||||
}
|
||||
|
||||
private:
|
||||
uint16_t val_;
|
||||
};
|
||||
|
||||
namespace dpf::utils
|
||||
{
|
||||
|
||||
template <>
|
||||
struct msb_of<custom_input_type>
|
||||
{
|
||||
static constexpr custom_input_type value{0x8000};
|
||||
};
|
||||
|
||||
template <>
|
||||
struct mod_pow_2<custom_input_type>
|
||||
{
|
||||
std::size_t operator()(custom_input_type val, std::size_t n) const noexcept
|
||||
{
|
||||
return static_cast<std::size_t>(static_cast<uint16_t>(val) % (1ul << n));
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
namespace std
|
||||
{
|
||||
|
||||
template<>
|
||||
class numeric_limits<custom_input_type>
|
||||
: public numeric_limits<uint16_t> {};
|
||||
|
||||
template<>
|
||||
class numeric_limits<custom_input_type const>
|
||||
: public numeric_limits<custom_input_type> {};
|
||||
|
||||
template<>
|
||||
class numeric_limits<custom_input_type volatile>
|
||||
: public numeric_limits<custom_input_type> {};
|
||||
|
||||
template<>
|
||||
class numeric_limits<custom_input_type const volatile>
|
||||
: public numeric_limits<custom_input_type> {};
|
||||
|
||||
}
|
||||
54
test/tests/helpers/custom_output_type_large_plus_minus.hpp
Normal file
54
test/tests/helpers/custom_output_type_large_plus_minus.hpp
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#include <cstdint>
|
||||
|
||||
class custom_output_type_large_plus_minus
|
||||
{
|
||||
public:
|
||||
constexpr custom_output_type_large_plus_minus()
|
||||
: a_{0}, b_{0}, c_{0}, d_{0}
|
||||
{ }
|
||||
|
||||
constexpr custom_output_type_large_plus_minus(uint64_t val)
|
||||
: a_{val}, b_{val}, c_{val}, d_{val}
|
||||
{ }
|
||||
|
||||
constexpr custom_output_type_large_plus_minus(uint64_t a, uint64_t b, uint64_t c, uint64_t d)
|
||||
: a_{a}, b_{b}, c_{c}, d_{d}
|
||||
{ }
|
||||
|
||||
custom_output_type_large_plus_minus operator+(const custom_output_type_large_plus_minus & rhs) const
|
||||
{
|
||||
return custom_output_type_large_plus_minus{this->a_ + rhs.a_, this->b_ + rhs.b_, this->c_ + rhs.c_, this->d_ + rhs.d_};
|
||||
}
|
||||
|
||||
custom_output_type_large_plus_minus operator-(const custom_output_type_large_plus_minus & rhs) const
|
||||
{
|
||||
return custom_output_type_large_plus_minus{this->a_ - rhs.a_, this->b_ - rhs.b_, this->c_ - rhs.c_, this->d_ - rhs.d_};
|
||||
}
|
||||
|
||||
custom_output_type_large_plus_minus operator^(const custom_output_type_large_plus_minus & rhs) const
|
||||
{
|
||||
return custom_output_type_large_plus_minus{this->a_ ^ rhs.a_, this->b_ ^ rhs.b_, this->c_ ^ rhs.c_, this->d_ ^ rhs.d_};
|
||||
}
|
||||
|
||||
bool operator==(const custom_output_type_large_plus_minus & rhs) const
|
||||
{
|
||||
return this->a_ == rhs.a_ && this->b_ == rhs.b_ && this->c_ == rhs.c_ && this->d_ == rhs.d_;
|
||||
}
|
||||
|
||||
private:
|
||||
uint64_t a_, b_, c_, d_;
|
||||
};
|
||||
|
||||
namespace dpf::utils
|
||||
{
|
||||
|
||||
template <>
|
||||
struct make_from_integral_value<custom_output_type_large_plus_minus>
|
||||
{
|
||||
constexpr custom_output_type_large_plus_minus operator()(uint64_t val) const noexcept
|
||||
{
|
||||
return custom_output_type_large_plus_minus{val, val, val, val};
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
49
test/tests/helpers/custom_output_type_large_xor.hpp
Normal file
49
test/tests/helpers/custom_output_type_large_xor.hpp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
#include <cstdint>
|
||||
|
||||
class custom_output_type_large_xor
|
||||
{
|
||||
public:
|
||||
constexpr custom_output_type_large_xor()
|
||||
: a_{0}, b_{0}, c_{0}, d_{0}
|
||||
{ }
|
||||
|
||||
constexpr custom_output_type_large_xor(uint64_t val)
|
||||
: a_{val}, b_{val}, c_{val}, d_{val}
|
||||
{ }
|
||||
|
||||
constexpr custom_output_type_large_xor(uint64_t a, uint64_t b, uint64_t c, uint64_t d)
|
||||
: a_{a}, b_{b}, c_{c}, d_{d}
|
||||
{ }
|
||||
|
||||
custom_output_type_large_xor operator-(const custom_output_type_large_xor & rhs) const
|
||||
{
|
||||
return this->operator^(rhs);
|
||||
}
|
||||
|
||||
custom_output_type_large_xor operator^(const custom_output_type_large_xor & rhs) const
|
||||
{
|
||||
return custom_output_type_large_xor{this->a_ ^ rhs.a_, this->b_ ^ rhs.b_, this->c_ ^ rhs.c_, this->d_ ^ rhs.d_};
|
||||
}
|
||||
|
||||
bool operator==(const custom_output_type_large_xor & rhs) const
|
||||
{
|
||||
return this->a_ == rhs.a_ && this->b_ == rhs.b_ && this->c_ == rhs.c_ && this->d_ == rhs.d_;
|
||||
}
|
||||
|
||||
private:
|
||||
uint64_t a_, b_, c_, d_;
|
||||
};
|
||||
|
||||
namespace dpf::utils
|
||||
{
|
||||
|
||||
template <>
|
||||
struct make_from_integral_value<custom_output_type_large_xor>
|
||||
{
|
||||
constexpr custom_output_type_large_xor operator()(uint64_t val) const noexcept
|
||||
{
|
||||
return custom_output_type_large_xor{val, val, val, val};
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
48
test/tests/helpers/custom_output_type_small.hpp
Normal file
48
test/tests/helpers/custom_output_type_small.hpp
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#include <cstdint>
|
||||
|
||||
class custom_output_type_small
|
||||
{
|
||||
public:
|
||||
constexpr custom_output_type_small()
|
||||
: val_{0}
|
||||
{ }
|
||||
|
||||
constexpr custom_output_type_small(uint64_t val)
|
||||
: val_{val}
|
||||
{ }
|
||||
|
||||
custom_output_type_small operator+(const custom_output_type_small & rhs) const
|
||||
{
|
||||
return custom_output_type_small{this->val_ + rhs.val_};
|
||||
}
|
||||
|
||||
custom_output_type_small operator-(const custom_output_type_small & rhs) const
|
||||
{
|
||||
return custom_output_type_small{this->val_ - rhs.val_};
|
||||
}
|
||||
|
||||
custom_output_type_small operator^(const custom_output_type_small & rhs) const
|
||||
{
|
||||
return custom_output_type_small{this->val_ ^ rhs.val_};
|
||||
}
|
||||
|
||||
bool operator==(const custom_output_type_small & rhs) const
|
||||
{
|
||||
return this->val_ == rhs.val_;
|
||||
}
|
||||
|
||||
private:
|
||||
uint64_t val_;
|
||||
};
|
||||
|
||||
namespace dpf::leaf_arithmetic
|
||||
{
|
||||
|
||||
HEDLEY_PRAGMA(GCC diagnostic push)
|
||||
HEDLEY_PRAGMA(GCC diagnostic ignored "-Wignored-attributes")
|
||||
template <> struct add_t<custom_output_type_small, simde__m128i> final : public detail::add2x64_t {};
|
||||
template <> struct subtract_t<custom_output_type_small, simde__m128i> final : public detail::sub2x64_t {};
|
||||
template <> struct multiply_t<custom_output_type_small, simde__m128i> final : public detail::mul2x64_t {};
|
||||
HEDLEY_PRAGMA(GCC diagnostic pop)
|
||||
|
||||
}
|
||||
24
test/tests/helpers/domain_walk.hpp
Normal file
24
test/tests/helpers/domain_walk.hpp
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#ifndef LIBDPF_TEST_TESTS_HELPERS_DOMAIN_WALK_HPP__
|
||||
#define LIBDPF_TEST_TESTS_HELPERS_DOMAIN_WALK_HPP__
|
||||
|
||||
// eval_interval / eval_full emit points in integer order of the input bits
|
||||
// (the same order as operator++ for ordinary integers). xor_wrapper::operator++
|
||||
// is characteristic-2 addition, XOR 1, so it does not walk that domain.
|
||||
template <typename InputT>
|
||||
InputT next_domain_point(InputT cur)
|
||||
{
|
||||
if constexpr (dpf::utils::has_characteristic_two_v<InputT>)
|
||||
{
|
||||
using narrow = dpf::utils::integral_type_from_bitlength_t<dpf::utils::bitlength_of_v<InputT>>;
|
||||
auto bits = static_cast<narrow>(dpf::utils::to_integral_type<InputT>{}(cur));
|
||||
bits = static_cast<narrow>(bits + narrow{1});
|
||||
return dpf::utils::make_from_integral_value<InputT>{}(bits);
|
||||
}
|
||||
else
|
||||
{
|
||||
++cur;
|
||||
return cur;
|
||||
}
|
||||
}
|
||||
|
||||
#endif // LIBDPF_TEST_TESTS_HELPERS_DOMAIN_WALK_HPP__
|
||||
664
test/tests/helpers/eval_common_data.hpp
Normal file
664
test/tests/helpers/eval_common_data.hpp
Normal file
|
|
@ -0,0 +1,664 @@
|
|||
#ifndef LIBDPF_TEST_TESTS_HELPERS_EVAL_COMMON_DATA_HPP__
|
||||
#define LIBDPF_TEST_TESTS_HELPERS_EVAL_COMMON_DATA_HPP__
|
||||
|
||||
#include "custom_input_type.hpp"
|
||||
#include "custom_output_type_small.hpp"
|
||||
#include "custom_output_type_large_plus_minus.hpp"
|
||||
#include "custom_output_type_large_xor.hpp"
|
||||
#include "domain_walk.hpp"
|
||||
|
||||
template <typename InputT,
|
||||
typename OutputT>
|
||||
using test_type = std::tuple<InputT, OutputT>;
|
||||
|
||||
template <typename InputT,
|
||||
typename OutputT>
|
||||
using param_type = std::vector<test_type<InputT, OutputT>>;
|
||||
|
||||
using dpf::literals::operator""_bitstring;
|
||||
using dpf::literals::operator""_bitstring_8;
|
||||
|
||||
static std::tuple
|
||||
<
|
||||
// base test
|
||||
param_type<uint16_t, uint64_t>,
|
||||
|
||||
// test input types
|
||||
param_type<int16_t, uint64_t>,
|
||||
param_type<uint8_t, uint64_t>,
|
||||
param_type<uint64_t, uint64_t>,
|
||||
param_type<simde_int128, uint64_t>,
|
||||
param_type<simde_uint128, uint64_t>,
|
||||
param_type<dpf::bitstring<10>, uint64_t>,
|
||||
param_type<dpf::keyword<3, dpf::alphabets::hex>, uint64_t>,
|
||||
param_type<dpf::modint<10>, uint64_t>,
|
||||
param_type<dpf::xor_wrapper<int16_t>, uint64_t>,
|
||||
param_type<dpf::xor_wrapper<uint16_t>, uint64_t>,
|
||||
|
||||
// test output types
|
||||
param_type<uint16_t, int64_t>,
|
||||
param_type<uint16_t, uint8_t>,
|
||||
param_type<uint16_t, simde_int128>,
|
||||
param_type<uint16_t, simde_uint128>,
|
||||
param_type<uint16_t, dpf::bit>,
|
||||
param_type<uint16_t, dpf::bitstring<20, uint8_t>>,
|
||||
param_type<uint16_t, dpf::bitstring<150>>,
|
||||
param_type<uint16_t, dpf::xor_wrapper<int64_t>>,
|
||||
param_type<uint16_t, dpf::xor_wrapper<uint64_t>>,
|
||||
|
||||
// custom types
|
||||
param_type<custom_input_type, uint64_t>,
|
||||
param_type<uint16_t, custom_output_type_small>,
|
||||
param_type<uint16_t, custom_output_type_large_plus_minus>,
|
||||
param_type<uint16_t, custom_output_type_large_xor>
|
||||
> allParams
|
||||
{
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x0000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x0000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x0000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x5555), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x5555), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x5555), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x8000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x8000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x8000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x8000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(int16_t(0x0000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(int16_t(0x0000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(int16_t(0x0000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(int16_t(0x0000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0x5555), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(int16_t(0x5555), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(int16_t(0x5555), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(int16_t(0x5555), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0x7FFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(int16_t(0x7FFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(int16_t(0x7FFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(int16_t(0x7FFF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0x8000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(int16_t(0x8000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(int16_t(0x8000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(int16_t(0x8000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0xAAAA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(int16_t(0xAAAA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(int16_t(0xAAAA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(int16_t(0xAAAA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0xFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(int16_t(0xFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(int16_t(0xFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(int16_t(0xFFFF), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint8_t(0x00), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint8_t(0x00), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint8_t(0x00), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint8_t(0x00), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0x55), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint8_t(0x55), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint8_t(0x55), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint8_t(0x55), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0x7F), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint8_t(0x7F), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint8_t(0x7F), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint8_t(0x7F), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0x80), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint8_t(0x80), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint8_t(0x80), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint8_t(0x80), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0xAA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint8_t(0xAA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint8_t(0xAA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint8_t(0xAA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0xFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint8_t(0xFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint8_t(0xFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint8_t(0xFF), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint64_t(0x0000000000000000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint64_t(0x0000000000000000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint64_t(0x0000000000000000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint64_t(0x0000000000000000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0x5555555555555555), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint64_t(0x5555555555555555), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint64_t(0x5555555555555555), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint64_t(0x5555555555555555), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0x7FFFFFFFFFFFFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint64_t(0x7FFFFFFFFFFFFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint64_t(0x7FFFFFFFFFFFFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint64_t(0x7FFFFFFFFFFFFFFF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0X8000000000000000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint64_t(0X8000000000000000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint64_t(0X8000000000000000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint64_t(0X8000000000000000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0xAAAAAAAAAAAAAAAA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint64_t(0xAAAAAAAAAAAAAAAA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint64_t(0xAAAAAAAAAAAAAAAA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint64_t(0xAAAAAAAAAAAAAAAA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint64_t(0xFFFFFFFFFFFFFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint64_t(0xFFFFFFFFFFFFFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint64_t(0xFFFFFFFFFFFFFFFF), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0x7FFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_int128(0x7FFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_int128(0x7FFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_int128(0x7FFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0x8000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_int128(0x8000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_int128(0x8000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_int128(0x8000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0x7FFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_uint128(0x7FFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_uint128(0x7FFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_uint128(0x7FFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0x8000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_uint128(0x8000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_uint128(0x8000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_uint128(0x8000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(0000000000_bitstring, uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(0000000000_bitstring, uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(0000000000_bitstring, uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(0000000000_bitstring, uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(0101010101_bitstring, uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(0101010101_bitstring, uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(0101010101_bitstring, uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(0101010101_bitstring, uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(0111111111_bitstring, uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(0111111111_bitstring, uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(0111111111_bitstring, uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(0111111111_bitstring, uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(1000000000_bitstring, uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(1000000000_bitstring, uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(1000000000_bitstring, uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(1000000000_bitstring, uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(1010101010_bitstring, uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(1010101010_bitstring, uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(1010101010_bitstring, uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(1010101010_bitstring, uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(1111111111_bitstring, uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(1111111111_bitstring, uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(1111111111_bitstring, uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(1111111111_bitstring, uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("000"), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("000"), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("000"), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("000"), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("555"), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("555"), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("555"), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("555"), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("7ff"), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("7ff"), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("7ff"), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("7ff"), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("800"), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("800"), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("800"), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("800"), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("aaa"), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("aaa"), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("aaa"), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("aaa"), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("fff"), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("fff"), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("fff"), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("fff"), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::modint<10>(0x000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::modint<10>(0x000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::modint<10>(0x000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::modint<10>(0x000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x155), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::modint<10>(0x155), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::modint<10>(0x155), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::modint<10>(0x155), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x1FF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::modint<10>(0x1FF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::modint<10>(0x1FF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::modint<10>(0x1FF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x200), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::modint<10>(0x200), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::modint<10>(0x200), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::modint<10>(0x200), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x2AA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::modint<10>(0x2AA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::modint<10>(0x2AA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::modint<10>(0x2AA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x3FF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::modint<10>(0x3FF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::modint<10>(0x3FF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::modint<10>(0x3FF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x0000)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x0000)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x0000)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x0000)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x5555)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x5555)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x5555)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x5555)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x7FFF)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x7FFF)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x7FFF)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x7FFF)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x8000)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x8000)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x8000)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x8000)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xAAAA)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xAAAA)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xAAAA)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xAAAA)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xFFFF)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xFFFF)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xFFFF)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xFFFF)), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x0000)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x0000)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x0000)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x0000)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x5555)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x5555)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x5555)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x5555)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x7FFF)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x7FFF)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x7FFF)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x7FFF)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x8000)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x8000)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x8000)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x8000)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xAAAA)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xAAAA)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xAAAA)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xAAAA)), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xFFFF)), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xFFFF)), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xFFFF)), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xFFFF)), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), int64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x0000), int64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x0000), int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x0000), int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), int64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x5555), int64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x5555), int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x5555), int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), int64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x7FFF), int64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x7FFF), int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x7FFF), int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x8000), int64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x8000), int64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x8000), int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x8000), int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), int64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xAAAA), int64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xAAAA), int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xAAAA), int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), int64_t(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xFFFF), int64_t(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xFFFF), int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xFFFF), int64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), uint8_t(0x01)),
|
||||
std::make_tuple(uint16_t(0x0000), uint8_t(0x55)),
|
||||
std::make_tuple(uint16_t(0x0000), uint8_t(0xAA)),
|
||||
std::make_tuple(uint16_t(0x0000), uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0x5555), uint8_t(0x01)),
|
||||
std::make_tuple(uint16_t(0x5555), uint8_t(0x55)),
|
||||
std::make_tuple(uint16_t(0x5555), uint8_t(0xAA)),
|
||||
std::make_tuple(uint16_t(0x5555), uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint8_t(0x01)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint8_t(0x55)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint8_t(0xAA)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0x8000), uint8_t(0x01)),
|
||||
std::make_tuple(uint16_t(0x8000), uint8_t(0x55)),
|
||||
std::make_tuple(uint16_t(0x8000), uint8_t(0xAA)),
|
||||
std::make_tuple(uint16_t(0x8000), uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint8_t(0x01)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint8_t(0x55)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint8_t(0xAA)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint8_t(0x01)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint8_t(0x55)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint8_t(0xAA)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint8_t(0xFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x0000), simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x0000), simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x0000), simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x0000), simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x0000), simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x0000), simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::bit::one)
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), 00000000000000000001_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x0000), 01010101010101010101_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x0000), 10101010101010101010_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x0000), 11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x5555), 00000000000000000001_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x5555), 01010101010101010101_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x5555), 10101010101010101010_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x5555), 11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x7FFF), 00000000000000000001_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x7FFF), 01010101010101010101_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x7FFF), 10101010101010101010_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x7FFF), 11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x8000), 00000000000000000001_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x8000), 01010101010101010101_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x8000), 10101010101010101010_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x8000), 11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xAAAA), 00000000000000000001_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xAAAA), 01010101010101010101_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xAAAA), 10101010101010101010_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xAAAA), 11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xFFFF), 00000000000000000001_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xFFFF), 01010101010101010101_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xFFFF), 10101010101010101010_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xFFFF), 11111111111111111111_bitstring_8)
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x0000), 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x0000), 101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x0000), 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), 101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), 101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), 101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), 101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), 010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), 101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), 111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring)
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(custom_input_type(0x0000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(custom_input_type(0x0000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(custom_input_type(0x0000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(custom_input_type(0x0000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0x5555), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(custom_input_type(0x5555), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(custom_input_type(0x5555), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(custom_input_type(0x5555), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0x7FFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(custom_input_type(0x7FFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(custom_input_type(0x7FFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(custom_input_type(0x7FFF), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0x8000), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(custom_input_type(0x8000), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(custom_input_type(0x8000), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(custom_input_type(0x8000), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0xAAAA), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(custom_input_type(0xAAAA), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(custom_input_type(0xAAAA), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(custom_input_type(0xAAAA), uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0xFFFF), uint64_t(0x0000000000000001)),
|
||||
std::make_tuple(custom_input_type(0xFFFF), uint64_t(0x5555555555555555)),
|
||||
std::make_tuple(custom_input_type(0xFFFF), uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
std::make_tuple(custom_input_type(0xFFFF), uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_small(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_small(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_small(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_small(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_small(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_small(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_small(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_small(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_small(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_small(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_small(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_small(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_plus_minus(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_plus_minus(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_plus_minus(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_plus_minus(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_plus_minus(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_plus_minus(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_xor(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_xor(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_xor(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_xor(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_xor(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_xor(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_xor(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_xor(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_xor(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_xor(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_xor(uint64_t(0x0000000000000001))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_xor(uint64_t(0x5555555555555555))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
}
|
||||
};
|
||||
|
||||
#endif // LIBDPF_TEST_TESTS_HELPERS_EVAL_COMMON_DATA_HPP__
|
||||
798
test/tests/helpers/eval_common_multi_data.hpp
Normal file
798
test/tests/helpers/eval_common_multi_data.hpp
Normal file
|
|
@ -0,0 +1,798 @@
|
|||
#ifndef LIBDPF_TEST_TESTS_HELPERS_EVAL_COMMON_MULTI_DATA_HPP__
|
||||
#define LIBDPF_TEST_TESTS_HELPERS_EVAL_COMMON_MULTI_DATA_HPP__
|
||||
|
||||
#include "custom_input_type.hpp"
|
||||
#include "custom_output_type_small.hpp"
|
||||
#include "custom_output_type_large_plus_minus.hpp"
|
||||
#include "custom_output_type_large_xor.hpp"
|
||||
#include "domain_walk.hpp"
|
||||
|
||||
template <typename InputT,
|
||||
typename OutputT>
|
||||
using test_type = std::tuple<InputT, OutputT, OutputT, OutputT, OutputT>;
|
||||
|
||||
template <typename InputT,
|
||||
typename OutputT>
|
||||
using param_type = std::vector<test_type<InputT, OutputT>>;
|
||||
|
||||
template <typename InputT,
|
||||
typename OutputT0,
|
||||
typename OutputT1,
|
||||
typename OutputT2,
|
||||
typename OutputT3>
|
||||
using multi_test_type = std::tuple<InputT, OutputT0, OutputT1, OutputT2, OutputT3>;
|
||||
|
||||
template <typename InputT,
|
||||
typename OutputT0,
|
||||
typename OutputT1,
|
||||
typename OutputT2,
|
||||
typename OutputT3>
|
||||
using multi_param_type = std::vector<multi_test_type<InputT, OutputT0, OutputT1, OutputT2, OutputT3>>;
|
||||
|
||||
using dpf::literals::operator""_bitstring;
|
||||
using dpf::literals::operator""_bitstring_8;
|
||||
|
||||
static std::tuple
|
||||
<
|
||||
// base test
|
||||
param_type<uint16_t, uint64_t>,
|
||||
|
||||
// test input types
|
||||
param_type<int16_t, uint64_t>,
|
||||
param_type<uint8_t, uint64_t>,
|
||||
param_type<uint64_t, uint64_t>,
|
||||
param_type<simde_int128, uint64_t>,
|
||||
param_type<simde_uint128, uint64_t>,
|
||||
param_type<dpf::bitstring<10>, uint64_t>,
|
||||
param_type<dpf::keyword<3, dpf::alphabets::hex>, uint64_t>,
|
||||
param_type<dpf::modint<10>, uint64_t>,
|
||||
param_type<dpf::xor_wrapper<int16_t>, uint64_t>,
|
||||
param_type<dpf::xor_wrapper<uint16_t>, uint64_t>,
|
||||
|
||||
// test output types
|
||||
param_type<uint16_t, int64_t>,
|
||||
param_type<uint16_t, uint8_t>,
|
||||
param_type<uint16_t, simde_int128>,
|
||||
param_type<uint16_t, simde_uint128>,
|
||||
param_type<uint16_t, dpf::bit>,
|
||||
param_type<uint16_t, dpf::bitstring<20, uint8_t>>,
|
||||
param_type<uint16_t, dpf::bitstring<150>>,
|
||||
param_type<uint16_t, dpf::xor_wrapper<int64_t>>,
|
||||
param_type<uint16_t, dpf::xor_wrapper<uint64_t>>,
|
||||
|
||||
// custom types
|
||||
param_type<custom_input_type, uint64_t>,
|
||||
param_type<uint16_t, custom_output_type_small>,
|
||||
param_type<uint16_t, custom_output_type_large_plus_minus>,
|
||||
param_type<uint16_t, custom_output_type_large_xor>,
|
||||
|
||||
// distinct output types
|
||||
multi_param_type<uint16_t, uint32_t, dpf::xor_wrapper<uint32_t>, dpf::bitstring<20, uint8_t>, dpf::bitstring<32>>
|
||||
> allParams
|
||||
{
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0X8000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(int16_t(0x0000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0x5555), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0x7FFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0X8000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0xAAAA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(int16_t(0xFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint8_t(0x00), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0x55), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0x7F), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0x80), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0xAA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint8_t(0xFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint64_t(0x0000000000000000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0x5555555555555555), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0x7FFFFFFFFFFFFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0X8000000000000000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0xAAAAAAAAAAAAAAAA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint64_t(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0x7FFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0x8000000000000000) << 64 | simde_int128(0x0000000000000000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0x7FFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0x8000000000000000) << 64 | simde_uint128(0x0000000000000000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(0000000000_bitstring, uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(0101010101_bitstring, uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(0111111111_bitstring, uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(1000000000_bitstring, uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(1010101010_bitstring, uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(1111111111_bitstring, uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("000"), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("555"), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("7ff"), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("800"), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("aaa"), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::keyword<3, dpf::alphabets::hex>("fff"), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::modint<10>(0x000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x155), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x1FF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x200), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x2AA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::modint<10>(0x3FF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x0000)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x5555)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x7FFF)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0x8000)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xAAAA)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<int16_t>(int16_t(0xFFFF)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x0000)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x5555)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x7FFF)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0x8000)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xAAAA)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(dpf::xor_wrapper<uint16_t>(uint16_t(0xFFFF)), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), int64_t(0x0000000000000001),
|
||||
int64_t(0x5555555555555555),
|
||||
int64_t(0xAAAAAAAAAAAAAAAA),
|
||||
int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), int64_t(0x0000000000000001),
|
||||
int64_t(0x5555555555555555),
|
||||
int64_t(0xAAAAAAAAAAAAAAAA),
|
||||
int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), int64_t(0x0000000000000001),
|
||||
int64_t(0x5555555555555555),
|
||||
int64_t(0xAAAAAAAAAAAAAAAA),
|
||||
int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0X8000), int64_t(0x0000000000000001),
|
||||
int64_t(0x5555555555555555),
|
||||
int64_t(0xAAAAAAAAAAAAAAAA),
|
||||
int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), int64_t(0x0000000000000001),
|
||||
int64_t(0x5555555555555555),
|
||||
int64_t(0xAAAAAAAAAAAAAAAA),
|
||||
int64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), int64_t(0x0000000000000001),
|
||||
int64_t(0x5555555555555555),
|
||||
int64_t(0xAAAAAAAAAAAAAAAA),
|
||||
int64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), uint8_t(0x01),
|
||||
uint8_t(0x55),
|
||||
uint8_t(0xAA),
|
||||
uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0x5555), uint8_t(0x01),
|
||||
uint8_t(0x55),
|
||||
uint8_t(0xAA),
|
||||
uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint8_t(0x01),
|
||||
uint8_t(0x55),
|
||||
uint8_t(0xAA),
|
||||
uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0x8000), uint8_t(0x01),
|
||||
uint8_t(0x55),
|
||||
uint8_t(0xAA),
|
||||
uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint8_t(0x01),
|
||||
uint8_t(0x55),
|
||||
uint8_t(0xAA),
|
||||
uint8_t(0xFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint8_t(0x01),
|
||||
uint8_t(0x55),
|
||||
uint8_t(0xAA),
|
||||
uint8_t(0xFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001),
|
||||
simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555),
|
||||
simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001),
|
||||
simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555),
|
||||
simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001),
|
||||
simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555),
|
||||
simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001),
|
||||
simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555),
|
||||
simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001),
|
||||
simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555),
|
||||
simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_int128(0x0000000000000000) << 64 | simde_int128(0x0000000000000001),
|
||||
simde_int128(0x5555555555555555) << 64 | simde_int128(0x5555555555555555),
|
||||
simde_int128(0xAAAAAAAAAAAAAAAA) << 64 | simde_int128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_int128(0xFFFFFFFFFFFFFFFF) << 64 | simde_int128(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001),
|
||||
simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555),
|
||||
simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x5555), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001),
|
||||
simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555),
|
||||
simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x7FFF), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001),
|
||||
simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555),
|
||||
simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0x8000), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001),
|
||||
simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555),
|
||||
simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xAAAA), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001),
|
||||
simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555),
|
||||
simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(uint16_t(0xFFFF), simde_uint128(0x0000000000000000) << 64 | simde_uint128(0x0000000000000001),
|
||||
simde_uint128(0x5555555555555555) << 64 | simde_uint128(0x5555555555555555),
|
||||
simde_uint128(0xAAAAAAAAAAAAAAAA) << 64 | simde_uint128(0xAAAAAAAAAAAAAAAA),
|
||||
simde_uint128(0xFFFFFFFFFFFFFFFF) << 64 | simde_uint128(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one,
|
||||
dpf::bit::one)
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), 00000000000000000001_bitstring_8,
|
||||
01010101010101010101_bitstring_8,
|
||||
10101010101010101010_bitstring_8,
|
||||
11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x5555), 00000000000000000001_bitstring_8,
|
||||
01010101010101010101_bitstring_8,
|
||||
10101010101010101010_bitstring_8,
|
||||
11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x7FFF), 00000000000000000001_bitstring_8,
|
||||
01010101010101010101_bitstring_8,
|
||||
10101010101010101010_bitstring_8,
|
||||
11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0x8000), 00000000000000000001_bitstring_8,
|
||||
01010101010101010101_bitstring_8,
|
||||
10101010101010101010_bitstring_8,
|
||||
11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xAAAA), 00000000000000000001_bitstring_8,
|
||||
01010101010101010101_bitstring_8,
|
||||
10101010101010101010_bitstring_8,
|
||||
11111111111111111111_bitstring_8),
|
||||
std::make_tuple(uint16_t(0xFFFF), 00000000000000000001_bitstring_8,
|
||||
01010101010101010101_bitstring_8,
|
||||
10101010101010101010_bitstring_8,
|
||||
11111111111111111111_bitstring_8)
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring,
|
||||
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring,
|
||||
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring,
|
||||
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring,
|
||||
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring,
|
||||
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring,
|
||||
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring,
|
||||
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring,
|
||||
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring,
|
||||
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring,
|
||||
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring,
|
||||
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring,
|
||||
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring,
|
||||
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring,
|
||||
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring,
|
||||
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_bitstring,
|
||||
010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101_bitstring,
|
||||
101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010_bitstring,
|
||||
111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111_bitstring)
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<int64_t>(int64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<int64_t>(int64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), dpf::xor_wrapper<uint64_t>(uint64_t(0x0000000000000001)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0x5555555555555555)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
dpf::xor_wrapper<uint64_t>(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(custom_input_type(0x0000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0x5555), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0x7FFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0x8000), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0xAAAA), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF)),
|
||||
std::make_tuple(custom_input_type(0xFFFF), uint64_t(0x0000000000000001),
|
||||
uint64_t(0x5555555555555555),
|
||||
uint64_t(0xAAAAAAAAAAAAAAAA),
|
||||
uint64_t(0xFFFFFFFFFFFFFFFF))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_small(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_small(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_small(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_small(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_small(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_small(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_small(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_small(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_small(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_small(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_small(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_small(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_small(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_small(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_plus_minus(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_plus_minus(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), custom_output_type_large_xor(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_xor(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x5555), custom_output_type_large_xor(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_xor(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x7FFF), custom_output_type_large_xor(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_xor(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0x8000), custom_output_type_large_xor(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_xor(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xAAAA), custom_output_type_large_xor(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_xor(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF))),
|
||||
std::make_tuple(uint16_t(0xFFFF), custom_output_type_large_xor(uint64_t(0x0000000000000001)),
|
||||
custom_output_type_large_xor(uint64_t(0x5555555555555555)),
|
||||
custom_output_type_large_xor(uint64_t(0xAAAAAAAAAAAAAAAA)),
|
||||
custom_output_type_large_xor(uint64_t(0xFFFFFFFFFFFFFFFF)))
|
||||
},
|
||||
{
|
||||
std::make_tuple(uint16_t(0x0000), uint32_t(0x00000001),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x00000001)),
|
||||
00000000000000000001_bitstring_8,
|
||||
00000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x0000), uint32_t(0x55555555),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x55555555)),
|
||||
01010101010101010101_bitstring_8,
|
||||
01010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x0000), uint32_t(0xAAAAAAAA),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xAAAAAAAA)),
|
||||
10101010101010101010_bitstring_8,
|
||||
10101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x0000), uint32_t(0xFFFFFFFF),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xFFFFFFFF)),
|
||||
11111111111111111111_bitstring_8,
|
||||
11111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), uint32_t(0x00000001),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x00000001)),
|
||||
00000000000000000001_bitstring_8,
|
||||
00000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), uint32_t(0x55555555),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x55555555)),
|
||||
01010101010101010101_bitstring_8,
|
||||
01010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), uint32_t(0xAAAAAAAA),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xAAAAAAAA)),
|
||||
10101010101010101010_bitstring_8,
|
||||
10101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x5555), uint32_t(0xFFFFFFFF),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xFFFFFFFF)),
|
||||
11111111111111111111_bitstring_8,
|
||||
11111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint32_t(0x00000001),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x00000001)),
|
||||
00000000000000000001_bitstring_8,
|
||||
00000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint32_t(0x55555555),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x55555555)),
|
||||
01010101010101010101_bitstring_8,
|
||||
01010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint32_t(0xAAAAAAAA),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xAAAAAAAA)),
|
||||
10101010101010101010_bitstring_8,
|
||||
10101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x7FFF), uint32_t(0xFFFFFFFF),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xFFFFFFFF)),
|
||||
11111111111111111111_bitstring_8,
|
||||
11111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), uint32_t(0x00000001),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x00000001)),
|
||||
00000000000000000001_bitstring_8,
|
||||
00000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), uint32_t(0x55555555),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x55555555)),
|
||||
01010101010101010101_bitstring_8,
|
||||
01010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), uint32_t(0xAAAAAAAA),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xAAAAAAAA)),
|
||||
10101010101010101010_bitstring_8,
|
||||
10101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0x8000), uint32_t(0xFFFFFFFF),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xFFFFFFFF)),
|
||||
11111111111111111111_bitstring_8,
|
||||
11111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint32_t(0x00000001),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x00000001)),
|
||||
00000000000000000001_bitstring_8,
|
||||
00000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint32_t(0x55555555),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x55555555)),
|
||||
01010101010101010101_bitstring_8,
|
||||
01010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint32_t(0xAAAAAAAA),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xAAAAAAAA)),
|
||||
10101010101010101010_bitstring_8,
|
||||
10101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0xAAAA), uint32_t(0xFFFFFFFF),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xFFFFFFFF)),
|
||||
11111111111111111111_bitstring_8,
|
||||
11111111111111111111111111111111_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint32_t(0x00000001),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x00000001)),
|
||||
00000000000000000001_bitstring_8,
|
||||
00000000000000000000000000000001_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint32_t(0x55555555),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0x55555555)),
|
||||
01010101010101010101_bitstring_8,
|
||||
01010101010101010101010101010101_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint32_t(0xAAAAAAAA),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xAAAAAAAA)),
|
||||
10101010101010101010_bitstring_8,
|
||||
10101010101010101010101010101010_bitstring),
|
||||
std::make_tuple(uint16_t(0xFFFF), uint32_t(0xFFFFFFFF),
|
||||
dpf::xor_wrapper<uint32_t>(uint32_t(0xFFFFFFFF)),
|
||||
11111111111111111111_bitstring_8,
|
||||
11111111111111111111111111111111_bitstring)
|
||||
},
|
||||
};
|
||||
|
||||
#endif // LIBDPF_TEST_TESTS_HELPERS_EVAL_COMMON_MULTI_DATA_HPP__
|
||||
Loading…
Add table
Add a link
Reference in a new issue