reset() cleared the hash array but left the `first` flag false, so a
calculator reused after reset() took the XOR update path on its next
add() instead of the initialisation path. This produced an incorrect
hash for any pearson object that was reset and reused.
Reset `first` to true in reset() so a reset calculator behaves like a
freshly constructed one.
Add test_pearson_reset regression test.
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
* Fix compilation with -Wsign-conversion
For tests with GCC and Clang
Fixes https://github.com/ETLCPP/etl/issues/632
* Fix support of negative Id in type_lookup.h: type_from_id
* Fix element access arithmetic in atomic_gcc_sync.h fetch_add/fetch_sub
* Fix rounded_integral_division.h: divide_round_half_odd(): direction is always 1
* Fix bitset_new test: bitset is implemented as little endian container
* Fix test_bsd_checksum.cpp: endian test was only implemented for little endian
* Fix endianness test
* Fix endian in crc tests
* Fix test_fnv_1
* Fix test_hash
* Fix test_jenkins
* Fix test_memory
* Fix pearson test
* Fix test_xor_rotate_checksum
* Fix murmur test
* Try to build on Ubuntu-18.04 with Clang-9
* Build with pushes on clang-9 branch too
* Using CC and CXX to set clang-9
* Adding atomic lib for test build on Linux with Clang
* Partial conversion CHECK_EQUAL to CHECK for clang-9
* Replaced CHECK_EQUAL with CHECK
* Replaced CHECK_EQUAL with CHECK
* Replaced CHECK_EQUAL with CHECK
* Replaced CHECK_EQUAL with CHECK
* Replaced CHECK_EQUAL with CHECK
* Replaced CHECK_EQUAL with CHECK
* Replaced CHECK_EQUAL with CHECK
Co-authored-by: finger42 <finger42>