From 33f3d2130027668aabd282483e36065d8699f63e Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Wed, 24 Mar 2021 12:16:01 +0000 Subject: [PATCH] Intermediate commit --- include/etl/experimental/crc16.h | 14 +- include/etl/experimental/crc8_ccitt.h | 27 +- include/etl/experimental/crc8_rohc.h | 14 +- .../etl/experimental/crc_implementation_2.h | 650 +++++ include/etl/experimental/crc_parameters.h | 10 +- test/test_crc_table16.cpp | 2518 ++++++++--------- test/test_crc_table256.cpp | 1804 ++++++------ test/test_crc_table4.cpp | 2518 ++++++++--------- test/vs2019/etl.vcxproj | 9 +- test/vs2019/etl.vcxproj.filters | 3 + 10 files changed, 4115 insertions(+), 3452 deletions(-) create mode 100644 include/etl/experimental/crc_implementation_2.h diff --git a/include/etl/experimental/crc16.h b/include/etl/experimental/crc16.h index e09a1031..73c7246e 100644 --- a/include/etl/experimental/crc16.h +++ b/include/etl/experimental/crc16.h @@ -32,11 +32,8 @@ SOFTWARE. #define ETL_CRC16_EX_INCLUDED #include "../platform.h" -#include "crc_implementation.h" - -#if defined(ETL_COMPILER_KEIL) -#pragma diag_suppress 1300 -#endif +#include "crc_implementation_2.h" +#include "crc_parameters.h" ///\defgroup crc16 16 bit CRC calculation ///\ingroup crc @@ -45,8 +42,12 @@ namespace etl { namespace crc { +#if ETL_CPP11_SUPPORTED template - class crc16_t : public etl::private_crc::crc_type + using crc16_t = etl::crc_type; +#else + template + class crc16_t : public etl::private_crc::crc_type { public: @@ -72,6 +73,7 @@ namespace etl this->add(begin, end); } }; +#endif typedef etl::crc::crc16_t<256U> crc16_t256; typedef etl::crc::crc16_t<16U> crc16_t16; diff --git a/include/etl/experimental/crc8_ccitt.h b/include/etl/experimental/crc8_ccitt.h index 156944b4..4734ab52 100644 --- a/include/etl/experimental/crc8_ccitt.h +++ b/include/etl/experimental/crc8_ccitt.h @@ -32,21 +32,19 @@ SOFTWARE. #define ETL_CRC8_CCITT_EXP_INCLUDED #include "../platform.h" -#include "crc_implementation.h" - -#if defined(ETL_COMPILER_KEIL) -#pragma diag_suppress 1300 -#endif - -///\defgroup crc8_ccitt 8 bit CRC calculation -///\ingroup crc +#include "crc_implementation_2.h" +#include "crc_parameters.h" namespace etl { namespace crc { +#if ETL_CPP11_SUPPORTED template - class crc8_ccitt_t : public etl::private_crc::crc_type + using crc8_ccitt_t = etl::crc_type; +#else + template + class crc8_ccitt_t : public etl::crc_type { public: @@ -72,11 +70,12 @@ namespace etl this->add(begin, end); } }; - - typedef etl::crc::crc8_ccitt_t<256U> crc8_ccitt_t256; - typedef etl::crc::crc8_ccitt_t<16U> crc8_ccitt_t16; - typedef etl::crc::crc8_ccitt_t<4U> crc8_ccitt_t4; - typedef crc8_ccitt_t256 crc8_ccitt; +#endif + + typedef crc8_ccitt_t<256U> crc8_ccitt_t256; + typedef crc8_ccitt_t<16U> crc8_ccitt_t16; + typedef crc8_ccitt_t<4U> crc8_ccitt_t4; + typedef crc8_ccitt_t256 crc8_ccitt; } } diff --git a/include/etl/experimental/crc8_rohc.h b/include/etl/experimental/crc8_rohc.h index baa4a3a0..b0e08d3a 100644 --- a/include/etl/experimental/crc8_rohc.h +++ b/include/etl/experimental/crc8_rohc.h @@ -32,11 +32,8 @@ SOFTWARE. #define ETL_CRC8_ROHC_EXP_INCLUDED #include "../platform.h" -#include "crc_implementation.h" - -#if defined(ETL_COMPILER_KEIL) -#pragma diag_suppress 1300 -#endif +#include "crc_implementation_2.h" +#include "crc_parameters.h" ///\defgroup rohc 8 bit CRC calculation ///\ingroup crc @@ -45,8 +42,12 @@ namespace etl { namespace crc { +#if ETL_CPP11_SUPPORTED template - class crc8_rohc_t : public etl::private_crc::crc_type + using crc8_rohc_t = etl::crc_type; +#else + template + class crc8_rohc_t : public etl::private_crc::crc_type { public: @@ -72,6 +73,7 @@ namespace etl this->add(begin, end); } }; +#endif typedef etl::crc::crc8_rohc_t<256U> crc8_rohc_t256; typedef etl::crc::crc8_rohc_t<16U> crc8_rohc_t16; diff --git a/include/etl/experimental/crc_implementation_2.h b/include/etl/experimental/crc_implementation_2.h new file mode 100644 index 00000000..eaf60807 --- /dev/null +++ b/include/etl/experimental/crc_implementation_2.h @@ -0,0 +1,650 @@ + +#pragma once + +#include "../platform.h" +#include "../frame_check_sequence.h" +#include "../static_assert.h" +#include "../binary.h" + +#include "stdint.h" + +namespace etl +{ + namespace private_crc + { + //***************************************************************************** + /// CRC Traits + //***************************************************************************** + template + struct crc_traits; + + //********************************* + // Traits for table size of 4. + template <> + struct crc_traits<4U> + { + static ETL_CONSTANT uint8_t Chunk_Mask = 0x03U; + static ETL_CONSTANT size_t Chunk_Bits = 2U; + }; + + //********************************* + // Traits for table size of 16. + template <> + struct crc_traits<16U> + { + static ETL_CONSTANT uint8_t Chunk_Mask = 0x0FU; + static ETL_CONSTANT size_t Chunk_Bits = 4U; + }; + + //********************************* + // Traits for table size of 256. + template <> + struct crc_traits<256U> + { + static ETL_CONSTANT uint8_t Chunk_Mask = 0xFFU; + static ETL_CONSTANT size_t Chunk_Bits = 8U; + }; + + //***************************************************************************** + /// CRC Entry + //***************************************************************************** + template + class crc_entry + { + private: + + typename typedef TCrcParameters::accumulator_type accumulator_type; + + static ETL_CONSTANT size_t Accumulator_Bits = TCrcParameters::Accumulator_Bits; + static ETL_CONSTANT accumulator_type Polynomial = TCrcParameters::Polynomial; + static ETL_CONSTANT bool Reflect = TCrcParameters::Reflect; + + static ETL_CONSTANT bool Do_Poly = Reflect ? (Entry & accumulator_type(1U)) != 0U + : (Entry & (accumulator_type(1U) << (Accumulator_Bits - 1U))) != 0U; + + public: + + static ETL_CONSTANT accumulator_type value = Reflect ? accumulator_type(Do_Poly ? (Entry >> 1U) ^ etl::reverse_bits_const::value : (Entry >> 1U)) + : accumulator_type(Do_Poly ? (Entry << 1U) ^ Polynomial : (Entry << 1U)); + }; + + //***************************************************************************** + /// CRC Table Entry + //***************************************************************************** + template + class crc_table_entry + { + ETL_STATIC_ASSERT((Chunk_Bits == 2U) || (Chunk_Bits == 4U) || (Chunk_Bits == 8U), "Chunk bits must be 2, 4 or 8"); + }; + + //********************************* + // Chunk bit size of 8. + template + class crc_table_entry + { + public: + + typedef typename TCrcParameters::accumulator_type accumulator_type; + + static ETL_CONSTANT size_t Accumulator_Bits = TCrcParameters::Accumulator_Bits; + static ETL_CONSTANT size_t Shift_Bits = size_t(Accumulator_Bits - 8U); + static ETL_CONSTANT accumulator_type Entry = TCrcParameters::Reflect ? accumulator_type(Index) : accumulator_type(accumulator_type(Index) << Shift_Bits); + + static ETL_CONSTANT accumulator_type value = crc_entry::value>::value>::value>::value>::value>::value>::value>::value; + }; + + //********************************* + // Chunk bit size of 4. + template + class crc_table_entry + { + public: + + typedef typename TCrcParameters::accumulator_type accumulator_type; + + static ETL_CONSTANT size_t Accumulator_Bits = TCrcParameters::Accumulator_Bits; + static ETL_CONSTANT size_t Shift_Bits = size_t(Accumulator_Bits - 4U); + static ETL_CONSTANT accumulator_type Entry = TCrcParameters::Reflect ? accumulator_type(Index) : accumulator_type(accumulator_type(Index) << Shift_Bits); + + static const accumulator_type value = crc_entry::value>::value>::value>::value; + }; + + //********************************* + // Chunk bit size of 2. + template + class crc_table_entry + { + public: + + typedef typename TCrcParameters::accumulator_type accumulator_type; + + static ETL_CONSTANT size_t Accumulator_Bits = TCrcParameters::Accumulator_Bits; + static ETL_CONSTANT size_t Shift_Bits = size_t(Accumulator_Bits - 2U); + static ETL_CONSTANT accumulator_type Entry = TCrcParameters::Reflect ? accumulator_type(Index) : accumulator_type(accumulator_type(Index) << Shift_Bits); + + static const accumulator_type value = crc_entry::value>::value; + }; + + //************************************************************************* + // Accumulator_Bits > Chunk_Bits and not reflected + template + typename etl::enable_if<(Accumulator_Bits > Chunk_Bits) && !Reflect, TAccumulator>::type + crc_update_chunk(TAccumulator crc, uint8_t value, const TAccumulator table[]) + { + size_t index = (crc >> (Accumulator_Bits - Chunk_Bits)) ^ value; + + crc <<= Chunk_Bits; + crc ^= table[index]; + + return crc; + } + + //************************************************************************* + // Accumulator_Bits > Chunk_Bits and reflected + template + typename etl::enable_if<(Accumulator_Bits > Chunk_Bits) && Reflect, TAccumulator>::type + crc_update_chunk(TAccumulator crc, uint8_t value, const TAccumulator table[]) + { + size_t index = (crc & Chunk_Mask) ^ value; + + crc >>= Chunk_Bits; + crc ^= table[index]; + + return crc; + } + + //************************************************************************* + // Accumulator_Bits == Chunk_Bits and not reflected + template + typename etl::enable_if<(Accumulator_Bits == Chunk_Bits) && !Reflect, TAccumulator>::type + crc_update_chunk(TAccumulator crc, uint8_t value, const TAccumulator table[]) + { + size_t index = (crc >> (Accumulator_Bits - Chunk_Bits)) ^ value; + + crc = table[index]; + + return crc; + } + + //************************************************************************* + // Accumulator_Bits == Chunk_Bits and reflected + template + typename etl::enable_if<(Accumulator_Bits == Chunk_Bits) && Reflect, TAccumulator>::type + crc_update_chunk(TAccumulator crc, uint8_t value, const TAccumulator table[]) + { + size_t index = (crc & Chunk_Mask) ^ value; + + crc = table[index]; + + return crc; + } + + //***************************************************************************** + // + //***************************************************************************** + template + struct crc_policy; + + //********************************* + // Policy for 256 sized table. + template + struct crc_policy + { + typedef typename TCrcParameters::accumulator_type accumulator_type; + typedef accumulator_type value_type; + + static ETL_CONSTANT size_t Table_Size = 256U; + static ETL_CONSTANT uint8_t Chunk_Mask = crc_traits::Chunk_Mask; + static ETL_CONSTANT uint8_t Chunk_Bits = crc_traits::Chunk_Bits; + static ETL_CONSTANT size_t Accumulator_Bits = TCrcParameters::Accumulator_Bits; + + //************************************************************************* + ETL_CONSTEXPR accumulator_type initial() const + { + return TCrcParameters::Initial; + } + + //************************************************************************* + accumulator_type add(accumulator_type crc, uint8_t value) const + { + static ETL_CONSTANT accumulator_type table[Table_Size] = + { + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value + }; + + crc = crc_update_chunk(crc, value, table); + + return crc; + } + + //************************************************************************* + accumulator_type final(accumulator_type crc) const + { + return crc ^ TCrcParameters::Xor_Out; + } + }; + + //********************************* + // Policy for 16 sized table. + template + struct crc_policy + { + typedef typename TCrcParameters::accumulator_type accumulator_type; + typedef accumulator_type value_type; + + static ETL_CONSTANT size_t Table_Size = 16U; + static ETL_CONSTANT uint8_t Chunk_Mask = crc_traits::Chunk_Mask; + static ETL_CONSTANT uint8_t Chunk_Bits = crc_traits::Chunk_Bits; + static ETL_CONSTANT size_t Accumulator_Bits = TCrcParameters::Accumulator_Bits; + + typedef accumulator_type value_type; + + //************************************************************************* + ETL_CONSTEXPR accumulator_type initial() const + { + return TCrcParameters::Initial; + } + + //************************************************************************* + static accumulator_type update_chunk(accumulator_type crc, uint8_t value, const accumulator_type table[]) + { + // Extract the most significant nibble of the crc and xor with the value nibble. + size_t index = (crc >> (etl::integral_limits::bits - Chunk_Bits)) ^ value; + + crc <<= Chunk_Bits; + crc ^= table[index]; + + return crc; + } + + //************************************************************************* + accumulator_type add(accumulator_type crc, uint8_t value) const + { + static ETL_CONSTANT accumulator_type table[Table_Size] = + { + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value + }; + + crc = update_chunk(crc, (value >> Chunk_Bits) & Chunk_Mask, table); + crc = update_chunk(crc, value & Chunk_Mask, table); + + return crc; + } + + //************************************************************************* + accumulator_type final(accumulator_type crc) const + { + return crc ^ TCrcParameters::Xor_Out; + } + }; + + //********************************* + // Policy for 4 sized table. + template + struct crc_policy + { + typedef typename TCrcParameters::accumulator_type accumulator_type; + typedef accumulator_type value_type; + + static ETL_CONSTANT size_t Table_Size = 4U; + static ETL_CONSTANT uint8_t Chunk_Mask = crc_traits::Chunk_Mask; + static ETL_CONSTANT uint8_t Chunk_Bits = crc_traits::Chunk_Bits; + static ETL_CONSTANT size_t Accumulator_Bits = TCrcParameters::Accumulator_Bits; + + //************************************************************************* + ETL_CONSTEXPR accumulator_type initial() const + { + return TCrcParameters::Initial; + } + + //************************************************************************* + static accumulator_type update_chunk(accumulator_type crc, uint8_t value, const accumulator_type table[]) + { + // Extract the most significant nibble of the crc and xor with the value nibble. + size_t index = (crc >> (etl::integral_limits::bits - Chunk_Bits)) ^ value; + + crc <<= Chunk_Bits; + crc ^= table[index]; + + return crc; + } + + //************************************************************************* + accumulator_type add(accumulator_type crc, uint8_t value) const + { + static ETL_CONSTANT accumulator_type table[Table_Size] = + { + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value, + crc_table_entry::value + }; + + crc = update_chunk(crc, (value >> (Chunk_Bits * 3U)) & Chunk_Mask, table); + crc = update_chunk(crc, (value >> (Chunk_Bits * 2U)) & Chunk_Mask, table); + crc = update_chunk(crc, (value >> (Chunk_Bits * 1U)) & Chunk_Mask, table); + crc = update_chunk(crc, value & Chunk_Mask, table); + + return crc; + } + + //************************************************************************* + accumulator_type final(accumulator_type crc) const + { + return crc ^ TCrcParameters::Xor_Out; + } + }; + } + + //***************************************************************************** + /// Basic parameterised CRC type. + //***************************************************************************** + template + class crc_type : public etl::frame_check_sequence > + { + public: + + ETL_STATIC_ASSERT((Table_Size == 4U) || (Table_Size == 16U) || (Table_Size == 256U), "Table size must be 4, 16 or 256"); + + //************************************************************************* + /// Default constructor. + //************************************************************************* + crc_type() + { + this->reset(); + } + + //************************************************************************* + /// Constructor from range. + /// \param begin Start of the range. + /// \param end End of the range. + //************************************************************************* + template + crc_type(TIterator begin, const TIterator end) + { + this->reset(); + this->add(begin, end); + } + }; +} diff --git a/include/etl/experimental/crc_parameters.h b/include/etl/experimental/crc_parameters.h index 309dbdf4..a4551ee2 100644 --- a/include/etl/experimental/crc_parameters.h +++ b/include/etl/experimental/crc_parameters.h @@ -1,6 +1,7 @@ #pragma once #include "../platform.h" +#include "../integral_limits.h" namespace etl { @@ -10,10 +11,11 @@ namespace etl struct crc_parameters { typedef TAccumulator accumulator_type; - static ETL_CONSTANT TAccumulator Polynomial = Polynomial_; - static ETL_CONSTANT TAccumulator Initial = Initial_; - static ETL_CONSTANT TAccumulator Xor_Out = Xor_Out_; - static ETL_CONSTANT bool Reflect = Reflect_; + static ETL_CONSTANT TAccumulator Polynomial = Polynomial_; + static ETL_CONSTANT TAccumulator Initial = Initial_; + static ETL_CONSTANT TAccumulator Xor_Out = Xor_Out_; + static ETL_CONSTANT bool Reflect = Reflect_; + static ETL_CONSTANT size_t Accumulator_Bits = etl::integral_limits::bits; }; // 8 bit. diff --git a/test/test_crc_table16.cpp b/test/test_crc_table16.cpp index da46a9e5..09fd98f2 100644 --- a/test/test_crc_table16.cpp +++ b/test/test_crc_table16.cpp @@ -1,1259 +1,1259 @@ -/****************************************************************************** -The MIT License(MIT) - -Embedded Template Library. -https://github.com/ETLCPP/etl -https://www.etlcpp.com - -Copyright(c) 2014 jwellbelove - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files(the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions : - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -******************************************************************************/ - -#include "unit_test_framework.h" - -#include -#include -#include -#include - -#include "etl/experimental/crc8_ccitt.h" -#include "etl/experimental/crc8_rohc.h" -//#include "etl/experimental/crc16.h" -//#include "etl/crc16.h" -//#include "etl/crc16_ccitt.h" -//#include "etl/crc16_aug_ccitt.h" -//#include "etl/crc16_kermit.h" -//#include "etl/crc16_modbus.h" -//#include "etl/crc16_usb.h" -//#include "etl/crc16_xmodem.h" -//#include "etl/crc16_genibus.h" -//#include "etl/crc16_x25.h" -//#include "etl/crc32.h" -//#include "etl/crc32_c.h" -//#include "etl/crc32_bzip2.h" -//#include "etl/crc32_mpeg2.h" -//#include "etl/crc32_posix.h" -//#include "etl/crc64_ecma.h" - -//***************************************************************************** -// The results for these tests were created from https://crccalc.com/ -//***************************************************************************** - -namespace -{ - SUITE(test_crc_experimental) - { - ////************************************************************************* - //TEST(test_crc8_ccitt_constructor) - //{ - // std::string data("123456789"); - - // uint8_t crc = etl::crc::crc8_ccitt_t16(data.begin(), data.end()); - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_values) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_ccitt_t16 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint8_t crc = crc_calculator; - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_range) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_ccitt_t16 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_ccitt_t16 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); - // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(int(crc1), int(crc2)); - - // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(int(crc1), int(crc3)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_constructor) - //{ - // std::string data("123456789"); - - // uint8_t crc = etl::crc::crc8_rohc(data.begin(), data.end()); - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_values) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_rohc crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint8_t crc = crc_calculator; - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_range) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_rohc crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_rohc crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); - // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(int(crc1), int(crc2)); - - // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(int(crc1), int(crc3)); - //} - - ////************************************************************************* - //TEST(test_crc16) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc::crc16(data.begin(), data.end()); - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_values) - //{ - // std::string data("123456789"); - - // etl::crc::crc16 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_range) - //{ - // std::string data("123456789"); - - // etl::crc::crc16 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc::crc16 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_ccitt(data.begin(), data.end()); - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_ccitt crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_ccitt crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_ccitt crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_ccitt(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_ccitt(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_kermit(data.begin(), data.end()); - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_kermit crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_kermit crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_kermit crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_kermit(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_kermit((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_kermit(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_modbus(data.begin(), data.end()); - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_modbus crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_modbus crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_modbus crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_modbus(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_modbus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_modbus(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_usb) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_usb(data.begin(), data.end()); - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_usb crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_usb crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_usb crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_usb(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_usb((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_usb(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_xmodem(data.begin(), data.end()); - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_xmodem crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_xmodem crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_xmodem crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_xmodem(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_xmodem((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_xmodem(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_aug_ccitt(data.begin(), data.end()); - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_aug_ccitt crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_aug_ccitt crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_aug_ccitt crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_aug_ccitt(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_aug_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_aug_ccitt(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_genibus(data.begin(), data.end()); - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_genibus crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_genibus crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_genibus crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_genibus(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_genibus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_genibus(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_x25) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_x25(data.begin(), data.end()); - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_x25 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_x25 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_x25 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_x25(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_x25((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_x25(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32(data.begin(), data.end()); - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_c) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_c(data.begin(), data.end()); - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_c crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_c crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_c crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_c(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_c((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_c(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_bzip2(data.begin(), data.end()); - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_bzip2 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_bzip2 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_bzip2 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_bzip2(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_bzip2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_bzip2(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_posix) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_posix(data.begin(), data.end()); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_posix(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_posix((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_posix(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_mpeg2(data.begin(), data.end()); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_mpeg2(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_mpeg2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_mpeg2(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma) - //{ - // std::string data("123456789"); - - // uint64_t crc = etl::crc64_ecma(data.begin(), data.end()); - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_values) - //{ - // std::string data("123456789"); - - // etl::crc64_ecma crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint64_t crc = crc_calculator; - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_range) - //{ - // std::string data("123456789"); - - // etl::crc64_ecma crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint64_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc64_ecma crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint64_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint64_t crc1 = etl::crc64_ecma(data1.begin(), data1.end()); - // uint64_t crc2 = etl::crc64_ecma((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint64_t crc3 = etl::crc64_ecma(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - }; -} - +///****************************************************************************** +//The MIT License(MIT) +// +//Embedded Template Library. +//https://github.com/ETLCPP/etl +//https://www.etlcpp.com +// +//Copyright(c) 2014 jwellbelove +// +//Permission is hereby granted, free of charge, to any person obtaining a copy +//of this software and associated documentation files(the "Software"), to deal +//in the Software without restriction, including without limitation the rights +//to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +//copies of the Software, and to permit persons to whom the Software is +//furnished to do so, subject to the following conditions : +// +//The above copyright notice and this permission notice shall be included in all +//copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +//SOFTWARE. +//******************************************************************************/ +// +//#include "unit_test_framework.h" +// +//#include +//#include +//#include +//#include +// +//#include "etl/experimental/crc8_ccitt.h" +//#include "etl/experimental/crc8_rohc.h" +////#include "etl/experimental/crc16.h" +////#include "etl/crc16.h" +////#include "etl/crc16_ccitt.h" +////#include "etl/crc16_aug_ccitt.h" +////#include "etl/crc16_kermit.h" +////#include "etl/crc16_modbus.h" +////#include "etl/crc16_usb.h" +////#include "etl/crc16_xmodem.h" +////#include "etl/crc16_genibus.h" +////#include "etl/crc16_x25.h" +////#include "etl/crc32.h" +////#include "etl/crc32_c.h" +////#include "etl/crc32_bzip2.h" +////#include "etl/crc32_mpeg2.h" +////#include "etl/crc32_posix.h" +////#include "etl/crc64_ecma.h" +// +////***************************************************************************** +//// The results for these tests were created from https://crccalc.com/ +////***************************************************************************** +// +//namespace +//{ +// SUITE(test_crc_experimental) +// { +// ////************************************************************************* +// //TEST(test_crc8_ccitt_constructor) +// //{ +// // std::string data("123456789"); +// +// // uint8_t crc = etl::crc::crc8_ccitt_t16(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_ccitt_t16 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint8_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_ccitt_t16 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_ccitt_t16 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); +// // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(int(crc1), int(crc2)); +// +// // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(int(crc1), int(crc3)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_constructor) +// //{ +// // std::string data("123456789"); +// +// // uint8_t crc = etl::crc::crc8_rohc(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_rohc crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint8_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_rohc crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_rohc crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); +// // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(int(crc1), int(crc2)); +// +// // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(int(crc1), int(crc3)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc::crc16(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc16 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc16 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc16 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_ccitt(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_ccitt crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_ccitt crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_ccitt crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_ccitt(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_ccitt(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_kermit(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_kermit crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_kermit crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_kermit crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_kermit(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_kermit((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_kermit(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_modbus(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_modbus crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_modbus crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_modbus crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_modbus(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_modbus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_modbus(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_usb(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_usb crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_usb crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_usb crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_usb(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_usb((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_usb(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_xmodem(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_xmodem crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_xmodem crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_xmodem crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_xmodem(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_xmodem((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_xmodem(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_aug_ccitt(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_aug_ccitt crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_aug_ccitt crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_aug_ccitt crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_aug_ccitt(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_aug_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_aug_ccitt(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_genibus(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_genibus crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_genibus crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_genibus crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_genibus(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_genibus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_genibus(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_x25(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_x25 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_x25 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_x25 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_x25(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_x25((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_x25(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_c(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_c crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_c crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_c crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_c(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_c((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_c(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_bzip2(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_bzip2 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_bzip2 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_bzip2 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_bzip2(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_bzip2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_bzip2(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_posix(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_posix crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_posix crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_posix crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_posix(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_posix((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_posix(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_mpeg2(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_mpeg2 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_mpeg2 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_mpeg2 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_mpeg2(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_mpeg2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_mpeg2(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma) +// //{ +// // std::string data("123456789"); +// +// // uint64_t crc = etl::crc64_ecma(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc64_ecma crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint64_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc64_ecma crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint64_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc64_ecma crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint64_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint64_t crc1 = etl::crc64_ecma(data1.begin(), data1.end()); +// // uint64_t crc2 = etl::crc64_ecma((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint64_t crc3 = etl::crc64_ecma(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// }; +//} +// diff --git a/test/test_crc_table256.cpp b/test/test_crc_table256.cpp index 31c0b68f..86af8870 100644 --- a/test/test_crc_table256.cpp +++ b/test/test_crc_table256.cpp @@ -36,16 +36,16 @@ SOFTWARE. #include "etl/experimental/crc8_ccitt.h" #include "etl/experimental/crc8_rohc.h" #include "etl/experimental/crc16.h" -#include "etl/experimental/crc16_aug_ccitt.h" -#include "etl/experimental/crc16_ccitt.h" -#include "etl/experimental/crc16_kermit.h" -#include "etl/experimental/crc16_modbus.h" -#include "etl/experimental/crc16_usb.h" -#include "etl/experimental/crc16_genibus.h" -#include "etl/experimental/crc16_x25.h" -#include "etl/experimental/crc16_xmodem.h" -#include "etl/experimental/crc32.h" -#include "etl/experimental/crc64_ecma.h" +//#include "etl/experimental/crc16_aug_ccitt.h" +//#include "etl/experimental/crc16_ccitt.h" +//#include "etl/experimental/crc16_kermit.h" +//#include "etl/experimental/crc16_modbus.h" +//#include "etl/experimental/crc16_usb.h" +//#include "etl/experimental/crc16_genibus.h" +//#include "etl/experimental/crc16_x25.h" +//#include "etl/experimental/crc16_xmodem.h" +//#include "etl/experimental/crc32.h" +//#include "etl/experimental/crc64_ecma.h" //#include "etl/crc32_c.h" //#include "etl/crc32_bzip2.h" @@ -210,12 +210,82 @@ namespace CHECK_EQUAL(0xBB3D, crc); } + //************************************************************************* + TEST(test_crc16_add_values) + { + std::string data("123456789"); + + etl::crc::crc16 crc_calculator; + + for (size_t i = 0; i < data.size(); ++i) + { + crc_calculator.add(data[i]); + } + + uint16_t crc = crc_calculator; + + CHECK_EQUAL(0xBB3D, crc); + } + + //************************************************************************* + TEST(test_crc16_add_range) + { + std::string data("123456789"); + + etl::crc::crc16 crc_calculator; + + crc_calculator.add(data.begin(), data.end()); + + uint16_t crc = crc_calculator.value(); + + CHECK_EQUAL(0xBB3D, crc); + } + + //************************************************************************* + TEST(test_crc16_add_range_via_iterator) + { + std::string data("123456789"); + + etl::crc::crc16 crc_calculator; + + std::copy(data.begin(), data.end(), crc_calculator.input()); + + uint16_t crc = crc_calculator.value(); + + CHECK_EQUAL(0xBB3D, crc); + } + + //************************************************************************* + TEST(test_crc16_add_range_endian) + { + std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + std::vector data2 = { 0x04030201, 0x08070605 }; + std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + uint16_t crc1 = etl::crc::crc16(data1.begin(), data1.end()); + uint16_t crc2 = etl::crc::crc16((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + CHECK_EQUAL(crc1, crc2); + + uint16_t crc3 = etl::crc::crc16(data3.rbegin(), data3.rend()); + CHECK_EQUAL(crc1, crc3); + } + ////************************************************************************* - //TEST(test_crc16_add_values) + //TEST(test_crc16_ccitt) //{ // std::string data("123456789"); - // etl::crc::crc16 crc_calculator; + // uint16_t crc = etl::crc::crc16_ccitt(data.begin(), data.end()); + + // CHECK_EQUAL(0x29B1, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_ccitt_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_ccitt crc_calculator; // for (size_t i = 0; i < data.size(); ++i) // { @@ -224,699 +294,558 @@ namespace // uint16_t crc = crc_calculator; - // CHECK_EQUAL(0xBB3D, crc); + // CHECK_EQUAL(0x29B1, crc); //} ////************************************************************************* - //TEST(test_crc16_add_range) + //TEST(test_crc16_ccitt_add_range) //{ // std::string data("123456789"); - // etl::crc::crc16 crc_calculator; + // etl::crc::crc16_ccitt crc_calculator; // crc_calculator.add(data.begin(), data.end()); // uint16_t crc = crc_calculator.value(); - // CHECK_EQUAL(0xBB3D, crc); + // CHECK_EQUAL(0x29B1, crc); //} ////************************************************************************* - //TEST(test_crc16_add_range_via_iterator) + //TEST(test_crc16_ccitt_add_range_via_iterator) //{ // std::string data("123456789"); - // etl::crc::crc16 crc_calculator; + // etl::crc::crc16_ccitt crc_calculator; // std::copy(data.begin(), data.end(), crc_calculator.input()); // uint16_t crc = crc_calculator.value(); - // CHECK_EQUAL(0xBB3D, crc); + // CHECK_EQUAL(0x29B1, crc); //} ////************************************************************************* - //TEST(test_crc16_add_range_endian) + //TEST(test_crc16_ccitt_add_range_endian) //{ // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; // std::vector data2 = { 0x04030201, 0x08070605 }; // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - // uint16_t crc1 = etl::crc16(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // uint16_t crc1 = etl::crc::crc16_ccitt(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); // CHECK_EQUAL(crc1, crc2); - // uint16_t crc3 = etl::crc16(data3.rbegin(), data3.rend()); + // uint16_t crc3 = etl::crc::crc16_ccitt(data3.rbegin(), data3.rend()); // CHECK_EQUAL(crc1, crc3); //} - //************************************************************************* - TEST(test_crc16_ccitt) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_ccitt(data.begin(), data.end()); - - CHECK_EQUAL(0x29B1, crc); - } - - //************************************************************************* - TEST(test_crc16_ccitt_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_ccitt crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0x29B1, crc); - } - - //************************************************************************* - TEST(test_crc16_ccitt_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_ccitt crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x29B1, crc); - } - - //************************************************************************* - TEST(test_crc16_ccitt_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_ccitt crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x29B1, crc); - } - - //************************************************************************* - TEST(test_crc16_ccitt_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_ccitt(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_ccitt(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc16_kermit) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_kermit(data.begin(), data.end()); - - CHECK_EQUAL(0x2189, crc); - } - - //************************************************************************* - TEST(test_crc16_kermit_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_kermit crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0x2189, crc); - } - - //************************************************************************* - TEST(test_crc16_kermit_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_kermit crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x2189, crc); - } - - //************************************************************************* - TEST(test_crc16_kermit_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_kermit crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x2189, crc); - } - - //************************************************************************* - TEST(test_crc16_kermit_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_kermit(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_kermit((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_kermit(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc16_modbus) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_modbus(data.begin(), data.end()); - - CHECK_EQUAL(0x4B37, crc); - } - - //************************************************************************* - TEST(test_crc16_modbus_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_modbus crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0x4B37, crc); - } - - //************************************************************************* - TEST(test_crc16_modbus_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_modbus crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x4B37, crc); - } - - //************************************************************************* - TEST(test_crc16_modbus_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_modbus crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x4B37, crc); - } - - //************************************************************************* - TEST(test_crc16_modbus_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_modbus(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_modbus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_modbus(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc16_usb) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_usb(data.begin(), data.end()); - - CHECK_EQUAL(0xB4C8, crc); - } - - //************************************************************************* - TEST(test_crc16_usb_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_usb crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0xB4C8, crc); - } - - //************************************************************************* - TEST(test_crc16_usb_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_usb crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xB4C8, crc); - } - - //************************************************************************* - TEST(test_crc16_usb_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_usb crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xB4C8, crc); - } - - //************************************************************************* - TEST(test_crc16_usb_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_usb(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_usb((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_usb(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc16_xmodem) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_xmodem(data.begin(), data.end()); - - CHECK_EQUAL(0x31C3, crc); - } - - //************************************************************************* - TEST(test_crc16_xmodem_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_xmodem crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0x31C3, crc); - } - - //************************************************************************* - TEST(test_crc16_xmodem_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_xmodem crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x31C3, crc); - } - - //************************************************************************* - TEST(test_crc16_xmodem_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_xmodem crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x31C3, crc); - } - - //************************************************************************* - TEST(test_crc16_xmodem_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_xmodem(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_xmodem((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_xmodem(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc16_aug_ccitt) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_aug_ccitt(data.begin(), data.end()); - - CHECK_EQUAL(0xE5CC, crc); - } - - //************************************************************************* - TEST(test_crc16_aug_ccitt_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_aug_ccitt crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0xE5CC, crc); - } - - //************************************************************************* - TEST(test_crc16_aug_ccitt_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_aug_ccitt crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xE5CC, crc); - } - - //************************************************************************* - TEST(test_crc16_aug_ccitt_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_aug_ccitt crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xE5CC, crc); - } - - //************************************************************************* - TEST(test_crc16_aug_ccitt_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_aug_ccitt(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_aug_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_aug_ccitt(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc16_genibus) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_genibus(data.begin(), data.end()); - - CHECK_EQUAL(0xD64E, crc); - } - - //************************************************************************* - TEST(test_crc16_genibus_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_genibus crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0xD64E, crc); - } - - //************************************************************************* - TEST(test_crc16_genibus_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_genibus crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xD64E, crc); - } - - //************************************************************************* - TEST(test_crc16_genibus_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_genibus crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xD64E, crc); - } - - //************************************************************************* - TEST(test_crc16_genibus_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_genibus(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_genibus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_genibus(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc16_x25) - { - std::string data("123456789"); - - uint16_t crc = etl::crc::crc16_x25(data.begin(), data.end()); - - CHECK_EQUAL(0x906E, crc); - } - - //************************************************************************* - TEST(test_crc16_x25_add_values) - { - std::string data("123456789"); - - etl::crc::crc16_x25 crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint16_t crc = crc_calculator; - - CHECK_EQUAL(0x906E, crc); - } - - //************************************************************************* - TEST(test_crc16_x25_add_range) - { - std::string data("123456789"); - - etl::crc::crc16_x25 crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x906E, crc); - } - - //************************************************************************* - TEST(test_crc16_x25_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc16_x25 crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint16_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x906E, crc); - } - - //************************************************************************* - TEST(test_crc16_x25_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint16_t crc1 = etl::crc::crc16_x25(data1.begin(), data1.end()); - uint16_t crc2 = etl::crc::crc16_x25((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint16_t crc3 = etl::crc::crc16_x25(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - - //************************************************************************* - TEST(test_crc32) - { - std::string data("123456789"); - - uint32_t crc = etl::crc::crc32(data.begin(), data.end()); - - CHECK_EQUAL(0xCBF43926, crc); - } - - //************************************************************************* - TEST(test_crc32_add_values) - { - std::string data("123456789"); - - etl::crc::crc32 crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint32_t crc = crc_calculator; - - - CHECK_EQUAL(0xCBF43926, crc); - } - - //************************************************************************* - TEST(test_crc32_add_range) - { - std::string data("123456789"); - - etl::crc::crc32 crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint32_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xCBF43926, crc); - } - - //************************************************************************* - TEST(test_crc32_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc32 crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint32_t crc = crc_calculator.value(); - - CHECK_EQUAL(0xCBF43926, crc); - } - - //************************************************************************* - TEST(test_crc32_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint32_t crc1 = etl::crc::crc32(data1.begin(), data1.end()); - uint32_t crc2 = etl::crc::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint32_t crc3 = etl::crc::crc32(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } - ////************************************************************************* - //TEST(test_crc32_c) + //TEST(test_crc16_kermit) //{ // std::string data("123456789"); - // uint32_t crc = etl::crc32_c(data.begin(), data.end()); + // uint16_t crc = etl::crc::crc16_kermit(data.begin(), data.end()); - // CHECK_EQUAL(0xE3069283, crc); + // CHECK_EQUAL(0x2189, crc); //} ////************************************************************************* - //TEST(test_crc32_c_add_values) + //TEST(test_crc16_kermit_add_values) //{ // std::string data("123456789"); - // etl::crc32_c crc_calculator; + // etl::crc::crc16_kermit crc_calculator; + + // for (size_t i = 0; i < data.size(); ++i) + // { + // crc_calculator.add(data[i]); + // } + + // uint16_t crc = crc_calculator; + + // CHECK_EQUAL(0x2189, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_kermit_add_range) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_kermit crc_calculator; + + // crc_calculator.add(data.begin(), data.end()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x2189, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_kermit_add_range_via_iterator) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_kermit crc_calculator; + + // std::copy(data.begin(), data.end(), crc_calculator.input()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x2189, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_kermit_add_range_endian) + //{ + // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + // std::vector data2 = { 0x04030201, 0x08070605 }; + // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + // uint16_t crc1 = etl::crc::crc16_kermit(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_kermit((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // CHECK_EQUAL(crc1, crc2); + + // uint16_t crc3 = etl::crc::crc16_kermit(data3.rbegin(), data3.rend()); + // CHECK_EQUAL(crc1, crc3); + //} + + ////************************************************************************* + //TEST(test_crc16_modbus) + //{ + // std::string data("123456789"); + + // uint16_t crc = etl::crc::crc16_modbus(data.begin(), data.end()); + + // CHECK_EQUAL(0x4B37, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_modbus_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_modbus crc_calculator; + + // for (size_t i = 0; i < data.size(); ++i) + // { + // crc_calculator.add(data[i]); + // } + + // uint16_t crc = crc_calculator; + + // CHECK_EQUAL(0x4B37, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_modbus_add_range) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_modbus crc_calculator; + + // crc_calculator.add(data.begin(), data.end()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x4B37, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_modbus_add_range_via_iterator) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_modbus crc_calculator; + + // std::copy(data.begin(), data.end(), crc_calculator.input()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x4B37, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_modbus_add_range_endian) + //{ + // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + // std::vector data2 = { 0x04030201, 0x08070605 }; + // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + // uint16_t crc1 = etl::crc::crc16_modbus(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_modbus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // CHECK_EQUAL(crc1, crc2); + + // uint16_t crc3 = etl::crc::crc16_modbus(data3.rbegin(), data3.rend()); + // CHECK_EQUAL(crc1, crc3); + //} + + ////************************************************************************* + //TEST(test_crc16_usb) + //{ + // std::string data("123456789"); + + // uint16_t crc = etl::crc::crc16_usb(data.begin(), data.end()); + + // CHECK_EQUAL(0xB4C8, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_usb_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_usb crc_calculator; + + // for (size_t i = 0; i < data.size(); ++i) + // { + // crc_calculator.add(data[i]); + // } + + // uint16_t crc = crc_calculator; + + // CHECK_EQUAL(0xB4C8, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_usb_add_range) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_usb crc_calculator; + + // crc_calculator.add(data.begin(), data.end()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0xB4C8, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_usb_add_range_via_iterator) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_usb crc_calculator; + + // std::copy(data.begin(), data.end(), crc_calculator.input()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0xB4C8, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_usb_add_range_endian) + //{ + // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + // std::vector data2 = { 0x04030201, 0x08070605 }; + // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + // uint16_t crc1 = etl::crc::crc16_usb(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_usb((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // CHECK_EQUAL(crc1, crc2); + + // uint16_t crc3 = etl::crc::crc16_usb(data3.rbegin(), data3.rend()); + // CHECK_EQUAL(crc1, crc3); + //} + + ////************************************************************************* + //TEST(test_crc16_xmodem) + //{ + // std::string data("123456789"); + + // uint16_t crc = etl::crc::crc16_xmodem(data.begin(), data.end()); + + // CHECK_EQUAL(0x31C3, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_xmodem_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_xmodem crc_calculator; + + // for (size_t i = 0; i < data.size(); ++i) + // { + // crc_calculator.add(data[i]); + // } + + // uint16_t crc = crc_calculator; + + // CHECK_EQUAL(0x31C3, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_xmodem_add_range) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_xmodem crc_calculator; + + // crc_calculator.add(data.begin(), data.end()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x31C3, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_xmodem_add_range_via_iterator) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_xmodem crc_calculator; + + // std::copy(data.begin(), data.end(), crc_calculator.input()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x31C3, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_xmodem_add_range_endian) + //{ + // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + // std::vector data2 = { 0x04030201, 0x08070605 }; + // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + // uint16_t crc1 = etl::crc::crc16_xmodem(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_xmodem((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // CHECK_EQUAL(crc1, crc2); + + // uint16_t crc3 = etl::crc::crc16_xmodem(data3.rbegin(), data3.rend()); + // CHECK_EQUAL(crc1, crc3); + //} + + ////************************************************************************* + //TEST(test_crc16_aug_ccitt) + //{ + // std::string data("123456789"); + + // uint16_t crc = etl::crc::crc16_aug_ccitt(data.begin(), data.end()); + + // CHECK_EQUAL(0xE5CC, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_aug_ccitt_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_aug_ccitt crc_calculator; + + // for (size_t i = 0; i < data.size(); ++i) + // { + // crc_calculator.add(data[i]); + // } + + // uint16_t crc = crc_calculator; + + // CHECK_EQUAL(0xE5CC, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_aug_ccitt_add_range) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_aug_ccitt crc_calculator; + + // crc_calculator.add(data.begin(), data.end()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0xE5CC, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_aug_ccitt_add_range_via_iterator) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_aug_ccitt crc_calculator; + + // std::copy(data.begin(), data.end(), crc_calculator.input()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0xE5CC, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_aug_ccitt_add_range_endian) + //{ + // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + // std::vector data2 = { 0x04030201, 0x08070605 }; + // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + // uint16_t crc1 = etl::crc::crc16_aug_ccitt(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_aug_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // CHECK_EQUAL(crc1, crc2); + + // uint16_t crc3 = etl::crc::crc16_aug_ccitt(data3.rbegin(), data3.rend()); + // CHECK_EQUAL(crc1, crc3); + //} + + ////************************************************************************* + //TEST(test_crc16_genibus) + //{ + // std::string data("123456789"); + + // uint16_t crc = etl::crc::crc16_genibus(data.begin(), data.end()); + + // CHECK_EQUAL(0xD64E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_genibus_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_genibus crc_calculator; + + // for (size_t i = 0; i < data.size(); ++i) + // { + // crc_calculator.add(data[i]); + // } + + // uint16_t crc = crc_calculator; + + // CHECK_EQUAL(0xD64E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_genibus_add_range) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_genibus crc_calculator; + + // crc_calculator.add(data.begin(), data.end()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0xD64E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_genibus_add_range_via_iterator) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_genibus crc_calculator; + + // std::copy(data.begin(), data.end(), crc_calculator.input()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0xD64E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_genibus_add_range_endian) + //{ + // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + // std::vector data2 = { 0x04030201, 0x08070605 }; + // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + // uint16_t crc1 = etl::crc::crc16_genibus(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_genibus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // CHECK_EQUAL(crc1, crc2); + + // uint16_t crc3 = etl::crc::crc16_genibus(data3.rbegin(), data3.rend()); + // CHECK_EQUAL(crc1, crc3); + //} + + ////************************************************************************* + //TEST(test_crc16_x25) + //{ + // std::string data("123456789"); + + // uint16_t crc = etl::crc::crc16_x25(data.begin(), data.end()); + + // CHECK_EQUAL(0x906E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_x25_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_x25 crc_calculator; + + // for (size_t i = 0; i < data.size(); ++i) + // { + // crc_calculator.add(data[i]); + // } + + // uint16_t crc = crc_calculator; + + // CHECK_EQUAL(0x906E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_x25_add_range) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_x25 crc_calculator; + + // crc_calculator.add(data.begin(), data.end()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x906E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_x25_add_range_via_iterator) + //{ + // std::string data("123456789"); + + // etl::crc::crc16_x25 crc_calculator; + + // std::copy(data.begin(), data.end(), crc_calculator.input()); + + // uint16_t crc = crc_calculator.value(); + + // CHECK_EQUAL(0x906E, crc); + //} + + ////************************************************************************* + //TEST(test_crc16_x25_add_range_endian) + //{ + // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + // std::vector data2 = { 0x04030201, 0x08070605 }; + // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + // uint16_t crc1 = etl::crc::crc16_x25(data1.begin(), data1.end()); + // uint16_t crc2 = etl::crc::crc16_x25((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // CHECK_EQUAL(crc1, crc2); + + // uint16_t crc3 = etl::crc::crc16_x25(data3.rbegin(), data3.rend()); + // CHECK_EQUAL(crc1, crc3); + //} + + ////************************************************************************* + //TEST(test_crc32) + //{ + // std::string data("123456789"); + + // uint32_t crc = etl::crc::crc32(data.begin(), data.end()); + + // CHECK_EQUAL(0xCBF43926, crc); + //} + + ////************************************************************************* + //TEST(test_crc32_add_values) + //{ + // std::string data("123456789"); + + // etl::crc::crc32 crc_calculator; // for (size_t i = 0; i < data.size(); ++i) // { @@ -926,334 +855,405 @@ namespace // uint32_t crc = crc_calculator; - // CHECK_EQUAL(0xE3069283, crc); + // CHECK_EQUAL(0xCBF43926, crc); //} ////************************************************************************* - //TEST(test_crc32_c_add_range) + //TEST(test_crc32_add_range) //{ // std::string data("123456789"); - // etl::crc32_c crc_calculator; + // etl::crc::crc32 crc_calculator; // crc_calculator.add(data.begin(), data.end()); // uint32_t crc = crc_calculator.value(); - // CHECK_EQUAL(0xE3069283, crc); + // CHECK_EQUAL(0xCBF43926, crc); //} ////************************************************************************* - //TEST(test_crc32_c_add_range_via_iterator) + //TEST(test_crc32_add_range_via_iterator) //{ // std::string data("123456789"); - // etl::crc32_c crc_calculator; + // etl::crc::crc32 crc_calculator; // std::copy(data.begin(), data.end(), crc_calculator.input()); // uint32_t crc = crc_calculator.value(); - // CHECK_EQUAL(0xE3069283, crc); + // CHECK_EQUAL(0xCBF43926, crc); //} ////************************************************************************* - //TEST(test_crc32_c_add_range_endian) + //TEST(test_crc32_add_range_endian) //{ // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; // std::vector data2 = { 0x04030201, 0x08070605 }; // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - // uint32_t crc1 = etl::crc32_c(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_c((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // uint32_t crc1 = etl::crc::crc32(data1.begin(), data1.end()); + // uint32_t crc2 = etl::crc::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); // CHECK_EQUAL(crc1, crc2); - // uint32_t crc3 = etl::crc32_c(data3.rbegin(), data3.rend()); + // uint32_t crc3 = etl::crc::crc32(data3.rbegin(), data3.rend()); // CHECK_EQUAL(crc1, crc3); //} + //////************************************************************************* + ////TEST(test_crc32_c) + ////{ + //// std::string data("123456789"); + + //// uint32_t crc = etl::crc32_c(data.begin(), data.end()); + + //// CHECK_EQUAL(0xE3069283, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_c_add_values) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_c crc_calculator; + + //// for (size_t i = 0; i < data.size(); ++i) + //// { + //// crc_calculator.add(data[i]); + //// } + + //// uint32_t crc = crc_calculator; + + + //// CHECK_EQUAL(0xE3069283, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_c_add_range) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_c crc_calculator; + + //// crc_calculator.add(data.begin(), data.end()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0xE3069283, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_c_add_range_via_iterator) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_c crc_calculator; + + //// std::copy(data.begin(), data.end(), crc_calculator.input()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0xE3069283, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_c_add_range_endian) + ////{ + //// std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + //// std::vector data2 = { 0x04030201, 0x08070605 }; + //// std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + //// uint32_t crc1 = etl::crc32_c(data1.begin(), data1.end()); + //// uint32_t crc2 = etl::crc32_c((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + //// CHECK_EQUAL(crc1, crc2); + + //// uint32_t crc3 = etl::crc32_c(data3.rbegin(), data3.rend()); + //// CHECK_EQUAL(crc1, crc3); + ////} + + //////************************************************************************* + ////TEST(test_crc32_bzip2) + ////{ + //// std::string data("123456789"); + + //// uint32_t crc = etl::crc32_bzip2(data.begin(), data.end()); + + //// CHECK_EQUAL(0xFC891918, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_bzip2_add_values) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_bzip2 crc_calculator; + + //// for (size_t i = 0; i < data.size(); ++i) + //// { + //// crc_calculator.add(data[i]); + //// } + + //// uint32_t crc = crc_calculator; + + + //// CHECK_EQUAL(0xFC891918, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_bzip2_add_range) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_bzip2 crc_calculator; + + //// crc_calculator.add(data.begin(), data.end()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0xFC891918, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_bzip2_add_range_via_iterator) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_bzip2 crc_calculator; + + //// std::copy(data.begin(), data.end(), crc_calculator.input()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0xFC891918, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_bzip2_add_range_endian) + ////{ + //// std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + //// std::vector data2 = { 0x04030201, 0x08070605 }; + //// std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + //// uint32_t crc1 = etl::crc32_bzip2(data1.begin(), data1.end()); + //// uint32_t crc2 = etl::crc32_bzip2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + //// CHECK_EQUAL(crc1, crc2); + + //// uint32_t crc3 = etl::crc32_bzip2(data3.rbegin(), data3.rend()); + //// CHECK_EQUAL(crc1, crc3); + ////} + + //////************************************************************************* + ////TEST(test_crc32_posix) + ////{ + //// std::string data("123456789"); + + //// uint32_t crc = etl::crc32_posix(data.begin(), data.end()); + + //// CHECK_EQUAL(0x765E7680, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_posix_add_values) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_posix crc_calculator; + + //// for (size_t i = 0; i < data.size(); ++i) + //// { + //// crc_calculator.add(data[i]); + //// } + + //// uint32_t crc = crc_calculator; + + + //// CHECK_EQUAL(0x765E7680, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_posix_add_range) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_posix crc_calculator; + + //// crc_calculator.add(data.begin(), data.end()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0x765E7680, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_posix_add_range_via_iterator) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_posix crc_calculator; + + //// std::copy(data.begin(), data.end(), crc_calculator.input()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0x765E7680, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_posix_add_range_endian) + ////{ + //// std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + //// std::vector data2 = { 0x04030201, 0x08070605 }; + //// std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + //// uint32_t crc1 = etl::crc32_posix(data1.begin(), data1.end()); + //// uint32_t crc2 = etl::crc32_posix((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + //// CHECK_EQUAL(crc1, crc2); + + //// uint32_t crc3 = etl::crc32_posix(data3.rbegin(), data3.rend()); + //// CHECK_EQUAL(crc1, crc3); + ////} + + //////************************************************************************* + ////TEST(test_crc32_mpeg2) + ////{ + //// std::string data("123456789"); + + //// uint32_t crc = etl::crc32_mpeg2(data.begin(), data.end()); + + //// CHECK_EQUAL(0x0376E6E7, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_mpeg2_add_values) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_mpeg2 crc_calculator; + + //// for (size_t i = 0; i < data.size(); ++i) + //// { + //// crc_calculator.add(data[i]); + //// } + + //// uint32_t crc = crc_calculator; + + + //// CHECK_EQUAL(0x0376E6E7, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_mpeg2_add_range) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_mpeg2 crc_calculator; + + //// crc_calculator.add(data.begin(), data.end()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0x0376E6E7, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_mpeg2_add_range_via_iterator) + ////{ + //// std::string data("123456789"); + + //// etl::crc32_mpeg2 crc_calculator; + + //// std::copy(data.begin(), data.end(), crc_calculator.input()); + + //// uint32_t crc = crc_calculator.value(); + + //// CHECK_EQUAL(0x0376E6E7, crc); + ////} + + //////************************************************************************* + ////TEST(test_crc32_mpeg2_add_range_endian) + ////{ + //// std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; + //// std::vector data2 = { 0x04030201, 0x08070605 }; + //// std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; + + //// uint32_t crc1 = etl::crc32_mpeg2(data1.begin(), data1.end()); + //// uint32_t crc2 = etl::crc32_mpeg2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + //// CHECK_EQUAL(crc1, crc2); + + //// uint32_t crc3 = etl::crc32_mpeg2(data3.rbegin(), data3.rend()); + //// CHECK_EQUAL(crc1, crc3); + ////} + ////************************************************************************* - //TEST(test_crc32_bzip2) + //TEST(test_crc64_ecma) //{ // std::string data("123456789"); - // uint32_t crc = etl::crc32_bzip2(data.begin(), data.end()); + // uint64_t crc = etl::crc::crc64_ecma(data.begin(), data.end()); - // CHECK_EQUAL(0xFC891918, crc); + // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); //} ////************************************************************************* - //TEST(test_crc32_bzip2_add_values) + //TEST(test_crc64_ecma_add_values) //{ // std::string data("123456789"); - // etl::crc32_bzip2 crc_calculator; + // etl::crc::crc64_ecma crc_calculator; // for (size_t i = 0; i < data.size(); ++i) // { // crc_calculator.add(data[i]); // } - // uint32_t crc = crc_calculator; + // uint64_t crc = crc_calculator; - - // CHECK_EQUAL(0xFC891918, crc); + // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); //} ////************************************************************************* - //TEST(test_crc32_bzip2_add_range) + //TEST(test_crc64_ecma_add_range) //{ // std::string data("123456789"); - // etl::crc32_bzip2 crc_calculator; + // etl::crc::crc64_ecma crc_calculator; // crc_calculator.add(data.begin(), data.end()); - // uint32_t crc = crc_calculator.value(); + // uint64_t crc = crc_calculator.value(); - // CHECK_EQUAL(0xFC891918, crc); + // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); //} ////************************************************************************* - //TEST(test_crc32_bzip2_add_range_via_iterator) + //TEST(test_crc64_ecma_add_range_via_iterator) //{ // std::string data("123456789"); - // etl::crc32_bzip2 crc_calculator; + // etl::crc::crc64_ecma crc_calculator; // std::copy(data.begin(), data.end(), crc_calculator.input()); - // uint32_t crc = crc_calculator.value(); + // uint64_t crc = crc_calculator.value(); - // CHECK_EQUAL(0xFC891918, crc); + // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); //} ////************************************************************************* - //TEST(test_crc32_bzip2_add_range_endian) + //TEST(test_crc64_ecma_add_range_endian) //{ // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; // std::vector data2 = { 0x04030201, 0x08070605 }; // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - // uint32_t crc1 = etl::crc32_bzip2(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_bzip2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); + // uint64_t crc1 = etl::crc::crc64_ecma(data1.begin(), data1.end()); + // uint64_t crc2 = etl::crc::crc64_ecma((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); // CHECK_EQUAL(crc1, crc2); - // uint32_t crc3 = etl::crc32_bzip2(data3.rbegin(), data3.rend()); + // uint64_t crc3 = etl::crc::crc64_ecma(data3.rbegin(), data3.rend()); // CHECK_EQUAL(crc1, crc3); //} - - ////************************************************************************* - //TEST(test_crc32_posix) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_posix(data.begin(), data.end()); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_posix(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_posix((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_posix(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_mpeg2(data.begin(), data.end()); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_mpeg2(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_mpeg2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_mpeg2(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - //************************************************************************* - TEST(test_crc64_ecma) - { - std::string data("123456789"); - - uint64_t crc = etl::crc::crc64_ecma(data.begin(), data.end()); - - CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - } - - //************************************************************************* - TEST(test_crc64_ecma_add_values) - { - std::string data("123456789"); - - etl::crc::crc64_ecma crc_calculator; - - for (size_t i = 0; i < data.size(); ++i) - { - crc_calculator.add(data[i]); - } - - uint64_t crc = crc_calculator; - - CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - } - - //************************************************************************* - TEST(test_crc64_ecma_add_range) - { - std::string data("123456789"); - - etl::crc::crc64_ecma crc_calculator; - - crc_calculator.add(data.begin(), data.end()); - - uint64_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - } - - //************************************************************************* - TEST(test_crc64_ecma_add_range_via_iterator) - { - std::string data("123456789"); - - etl::crc::crc64_ecma crc_calculator; - - std::copy(data.begin(), data.end(), crc_calculator.input()); - - uint64_t crc = crc_calculator.value(); - - CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - } - - //************************************************************************* - TEST(test_crc64_ecma_add_range_endian) - { - std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - std::vector data2 = { 0x04030201, 0x08070605 }; - std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - uint64_t crc1 = etl::crc::crc64_ecma(data1.begin(), data1.end()); - uint64_t crc2 = etl::crc::crc64_ecma((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - CHECK_EQUAL(crc1, crc2); - - uint64_t crc3 = etl::crc::crc64_ecma(data3.rbegin(), data3.rend()); - CHECK_EQUAL(crc1, crc3); - } }; } diff --git a/test/test_crc_table4.cpp b/test/test_crc_table4.cpp index de65d3a2..6b22fdf6 100644 --- a/test/test_crc_table4.cpp +++ b/test/test_crc_table4.cpp @@ -1,1259 +1,1259 @@ -/****************************************************************************** -The MIT License(MIT) - -Embedded Template Library. -https://github.com/ETLCPP/etl -https://www.etlcpp.com - -Copyright(c) 2014 jwellbelove - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files(the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and / or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions : - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -******************************************************************************/ - -#include "unit_test_framework.h" - -#include -#include -#include -#include - -#include "etl/experimental/crc8_ccitt.h" -#include "etl/experimental/crc8_rohc.h" -//#include "etl/experimental/crc16.h" -//#include "etl/crc16.h" -//#include "etl/crc16_ccitt.h" -//#include "etl/crc16_aug_ccitt.h" -//#include "etl/crc16_kermit.h" -//#include "etl/crc16_modbus.h" -//#include "etl/crc16_usb.h" -//#include "etl/crc16_xmodem.h" -//#include "etl/crc16_genibus.h" -//#include "etl/crc16_x25.h" -//#include "etl/crc32.h" -//#include "etl/crc32_c.h" -//#include "etl/crc32_bzip2.h" -//#include "etl/crc32_mpeg2.h" -//#include "etl/crc32_posix.h" -//#include "etl/crc64_ecma.h" - -//***************************************************************************** -// The results for these tests were created from https://crccalc.com/ -//***************************************************************************** - -namespace -{ - SUITE(test_crc_experimental) - { - ////************************************************************************* - //TEST(test_crc8_ccitt_constructor) - //{ - // std::string data("123456789"); - - // uint8_t crc = etl::crc::crc8_ccitt_t4(data.begin(), data.end()); - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_values) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_ccitt_t4 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint8_t crc = crc_calculator; - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_range) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_ccitt_t4 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_ccitt_t4 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xF4, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_ccitt_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); - // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(int(crc1), int(crc2)); - - // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(int(crc1), int(crc3)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_constructor) - //{ - // std::string data("123456789"); - - // uint8_t crc = etl::crc::crc8_rohc(data.begin(), data.end()); - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_values) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_rohc crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint8_t crc = crc_calculator; - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_range) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_rohc crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc::crc8_rohc crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint8_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD0, int(crc)); - //} - - ////************************************************************************* - //TEST(test_crc8_rohc_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); - // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(int(crc1), int(crc2)); - - // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(int(crc1), int(crc3)); - //} - - ////************************************************************************* - //TEST(test_crc16) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc::crc16(data.begin(), data.end()); - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_values) - //{ - // std::string data("123456789"); - - // etl::crc::crc16 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_range) - //{ - // std::string data("123456789"); - - // etl::crc::crc16 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc::crc16 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xBB3D, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_ccitt(data.begin(), data.end()); - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_ccitt crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_ccitt crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_ccitt crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x29B1, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_ccitt_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_ccitt(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_ccitt(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_kermit(data.begin(), data.end()); - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_kermit crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_kermit crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_kermit crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x2189, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_kermit_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_kermit(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_kermit((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_kermit(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_modbus(data.begin(), data.end()); - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_modbus crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_modbus crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_modbus crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x4B37, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_modbus_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_modbus(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_modbus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_modbus(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_usb) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_usb(data.begin(), data.end()); - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_usb crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_usb crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_usb crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xB4C8, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_usb_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_usb(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_usb((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_usb(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_xmodem(data.begin(), data.end()); - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_xmodem crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_xmodem crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_xmodem crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x31C3, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_xmodem_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_xmodem(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_xmodem((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_xmodem(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_aug_ccitt(data.begin(), data.end()); - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_aug_ccitt crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_aug_ccitt crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_aug_ccitt crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE5CC, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_aug_ccitt_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_aug_ccitt(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_aug_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_aug_ccitt(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_genibus(data.begin(), data.end()); - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_genibus crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_genibus crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_genibus crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xD64E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_genibus_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_genibus(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_genibus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_genibus(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc16_x25) - //{ - // std::string data("123456789"); - - // uint16_t crc = etl::crc16_x25(data.begin(), data.end()); - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_values) - //{ - // std::string data("123456789"); - - // etl::crc16_x25 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint16_t crc = crc_calculator; - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_range) - //{ - // std::string data("123456789"); - - // etl::crc16_x25 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc16_x25 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint16_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x906E, crc); - //} - - ////************************************************************************* - //TEST(test_crc16_x25_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint16_t crc1 = etl::crc16_x25(data1.begin(), data1.end()); - // uint16_t crc2 = etl::crc16_x25((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint16_t crc3 = etl::crc16_x25(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32(data.begin(), data.end()); - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xCBF43926, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_c) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_c(data.begin(), data.end()); - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_c crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_c crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_c crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xE3069283, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_c_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_c(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_c((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_c(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_bzip2(data.begin(), data.end()); - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_bzip2 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_bzip2 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_bzip2 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0xFC891918, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_bzip2_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_bzip2(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_bzip2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_bzip2(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_posix) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_posix(data.begin(), data.end()); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_posix crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x765E7680, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_posix_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_posix(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_posix((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_posix(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2) - //{ - // std::string data("123456789"); - - // uint32_t crc = etl::crc32_mpeg2(data.begin(), data.end()); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_values) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint32_t crc = crc_calculator; - - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc32_mpeg2 crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint32_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x0376E6E7, crc); - //} - - ////************************************************************************* - //TEST(test_crc32_mpeg2_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint32_t crc1 = etl::crc32_mpeg2(data1.begin(), data1.end()); - // uint32_t crc2 = etl::crc32_mpeg2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint32_t crc3 = etl::crc32_mpeg2(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma) - //{ - // std::string data("123456789"); - - // uint64_t crc = etl::crc64_ecma(data.begin(), data.end()); - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_values) - //{ - // std::string data("123456789"); - - // etl::crc64_ecma crc_calculator; - - // for (size_t i = 0; i < data.size(); ++i) - // { - // crc_calculator.add(data[i]); - // } - - // uint64_t crc = crc_calculator; - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_range) - //{ - // std::string data("123456789"); - - // etl::crc64_ecma crc_calculator; - - // crc_calculator.add(data.begin(), data.end()); - - // uint64_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_range_via_iterator) - //{ - // std::string data("123456789"); - - // etl::crc64_ecma crc_calculator; - - // std::copy(data.begin(), data.end(), crc_calculator.input()); - - // uint64_t crc = crc_calculator.value(); - - // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); - //} - - ////************************************************************************* - //TEST(test_crc64_ecma_add_range_endian) - //{ - // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; - // std::vector data2 = { 0x04030201, 0x08070605 }; - // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; - - // uint64_t crc1 = etl::crc64_ecma(data1.begin(), data1.end()); - // uint64_t crc2 = etl::crc64_ecma((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); - // CHECK_EQUAL(crc1, crc2); - - // uint64_t crc3 = etl::crc64_ecma(data3.rbegin(), data3.rend()); - // CHECK_EQUAL(crc1, crc3); - //} - }; -} - +///****************************************************************************** +//The MIT License(MIT) +// +//Embedded Template Library. +//https://github.com/ETLCPP/etl +//https://www.etlcpp.com +// +//Copyright(c) 2014 jwellbelove +// +//Permission is hereby granted, free of charge, to any person obtaining a copy +//of this software and associated documentation files(the "Software"), to deal +//in the Software without restriction, including without limitation the rights +//to use, copy, modify, merge, publish, distribute, sublicense, and / or sell +//copies of the Software, and to permit persons to whom the Software is +//furnished to do so, subject to the following conditions : +// +//The above copyright notice and this permission notice shall be included in all +//copies or substantial portions of the Software. +// +//THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +//IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +//FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE +//AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +//LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +//OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +//SOFTWARE. +//******************************************************************************/ +// +//#include "unit_test_framework.h" +// +//#include +//#include +//#include +//#include +// +//#include "etl/experimental/crc8_ccitt.h" +//#include "etl/experimental/crc8_rohc.h" +////#include "etl/experimental/crc16.h" +////#include "etl/crc16.h" +////#include "etl/crc16_ccitt.h" +////#include "etl/crc16_aug_ccitt.h" +////#include "etl/crc16_kermit.h" +////#include "etl/crc16_modbus.h" +////#include "etl/crc16_usb.h" +////#include "etl/crc16_xmodem.h" +////#include "etl/crc16_genibus.h" +////#include "etl/crc16_x25.h" +////#include "etl/crc32.h" +////#include "etl/crc32_c.h" +////#include "etl/crc32_bzip2.h" +////#include "etl/crc32_mpeg2.h" +////#include "etl/crc32_posix.h" +////#include "etl/crc64_ecma.h" +// +////***************************************************************************** +//// The results for these tests were created from https://crccalc.com/ +////***************************************************************************** +// +//namespace +//{ +// SUITE(test_crc_experimental) +// { +// ////************************************************************************* +// //TEST(test_crc8_ccitt_constructor) +// //{ +// // std::string data("123456789"); +// +// // uint8_t crc = etl::crc::crc8_ccitt_t4(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_ccitt_t4 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint8_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_ccitt_t4 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_ccitt_t4 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xF4, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_ccitt_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); +// // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(int(crc1), int(crc2)); +// +// // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(int(crc1), int(crc3)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_constructor) +// //{ +// // std::string data("123456789"); +// +// // uint8_t crc = etl::crc::crc8_rohc(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_rohc crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint8_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_rohc crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc8_rohc crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint8_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD0, int(crc)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc8_rohc_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint8_t crc1 = etl::crc32(data1.begin(), data1.end()); +// // uint8_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(int(crc1), int(crc2)); +// +// // uint8_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(int(crc1), int(crc3)); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc::crc16(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc16 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc16 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc::crc16 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xBB3D, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_ccitt(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_ccitt crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_ccitt crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_ccitt crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x29B1, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_ccitt_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_ccitt(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_ccitt(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_kermit(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_kermit crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_kermit crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_kermit crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x2189, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_kermit_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_kermit(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_kermit((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_kermit(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_modbus(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_modbus crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_modbus crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_modbus crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x4B37, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_modbus_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_modbus(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_modbus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_modbus(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_usb(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_usb crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_usb crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_usb crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xB4C8, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_usb_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_usb(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_usb((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_usb(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_xmodem(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_xmodem crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_xmodem crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_xmodem crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x31C3, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_xmodem_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_xmodem(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_xmodem((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_xmodem(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_aug_ccitt(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_aug_ccitt crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_aug_ccitt crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_aug_ccitt crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE5CC, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_aug_ccitt_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_aug_ccitt(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_aug_ccitt((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_aug_ccitt(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_genibus(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_genibus crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_genibus crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_genibus crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xD64E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_genibus_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_genibus(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_genibus((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_genibus(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25) +// //{ +// // std::string data("123456789"); +// +// // uint16_t crc = etl::crc16_x25(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_x25 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint16_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_x25 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc16_x25 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint16_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x906E, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc16_x25_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint16_t crc1 = etl::crc16_x25(data1.begin(), data1.end()); +// // uint16_t crc2 = etl::crc16_x25((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint16_t crc3 = etl::crc16_x25(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xCBF43926, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_c(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_c crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_c crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_c crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xE3069283, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_c_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_c(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_c((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_c(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_bzip2(data.begin(), data.end()); +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_bzip2 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_bzip2 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_bzip2 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0xFC891918, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_bzip2_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_bzip2(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_bzip2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_bzip2(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_posix(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_posix crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_posix crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_posix crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x765E7680, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_posix_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_posix(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_posix((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_posix(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2) +// //{ +// // std::string data("123456789"); +// +// // uint32_t crc = etl::crc32_mpeg2(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_mpeg2 crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint32_t crc = crc_calculator; +// +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_mpeg2 crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc32_mpeg2 crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint32_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x0376E6E7, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc32_mpeg2_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint32_t crc1 = etl::crc32_mpeg2(data1.begin(), data1.end()); +// // uint32_t crc2 = etl::crc32_mpeg2((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint32_t crc3 = etl::crc32_mpeg2(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma) +// //{ +// // std::string data("123456789"); +// +// // uint64_t crc = etl::crc64_ecma(data.begin(), data.end()); +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_values) +// //{ +// // std::string data("123456789"); +// +// // etl::crc64_ecma crc_calculator; +// +// // for (size_t i = 0; i < data.size(); ++i) +// // { +// // crc_calculator.add(data[i]); +// // } +// +// // uint64_t crc = crc_calculator; +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_range) +// //{ +// // std::string data("123456789"); +// +// // etl::crc64_ecma crc_calculator; +// +// // crc_calculator.add(data.begin(), data.end()); +// +// // uint64_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_range_via_iterator) +// //{ +// // std::string data("123456789"); +// +// // etl::crc64_ecma crc_calculator; +// +// // std::copy(data.begin(), data.end(), crc_calculator.input()); +// +// // uint64_t crc = crc_calculator.value(); +// +// // CHECK_EQUAL(0x6C40DF5F0B497347U, crc); +// //} +// +// ////************************************************************************* +// //TEST(test_crc64_ecma_add_range_endian) +// //{ +// // std::vector data1 = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08 }; +// // std::vector data2 = { 0x04030201, 0x08070605 }; +// // std::vector data3 = { 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01 }; +// +// // uint64_t crc1 = etl::crc64_ecma(data1.begin(), data1.end()); +// // uint64_t crc2 = etl::crc64_ecma((uint8_t*)&data2[0], (uint8_t*)(&data2[0] + data2.size())); +// // CHECK_EQUAL(crc1, crc2); +// +// // uint64_t crc3 = etl::crc64_ecma(data3.rbegin(), data3.rend()); +// // CHECK_EQUAL(crc1, crc3); +// //} +// }; +//} +// diff --git a/test/vs2019/etl.vcxproj b/test/vs2019/etl.vcxproj index 05687816..96f76a52 100644 --- a/test/vs2019/etl.vcxproj +++ b/test/vs2019/etl.vcxproj @@ -1286,6 +1286,7 @@ + @@ -3793,9 +3794,13 @@ - + + false + - + + false + diff --git a/test/vs2019/etl.vcxproj.filters b/test/vs2019/etl.vcxproj.filters index feb6f6c8..f27544ae 100644 --- a/test/vs2019/etl.vcxproj.filters +++ b/test/vs2019/etl.vcxproj.filters @@ -1032,6 +1032,9 @@ ETL\Maths\Experimental + + ETL\Maths\Experimental +