Commit Graph

113 Commits

Author SHA1 Message Date
Beman 44542694e3 Add round trip test to auto test. Remove tests made redundant by auto test. 2015-03-14 09:45:50 -04:00
Beman cea2be8023 Add auto_test cases lowest(), epsilon(), 0.0, -0.0, 1.0, -1.0 2015-03-14 09:01:55 -04:00
Beman ff4b22bdec Add more auto_test cases. 2015-03-14 08:20:41 -04:00
Beman affdcac443 Rename float_test to floating_point_test. Old name was unclear. Might have incorrectly been read as "test of type float" instead of "test of floating point types". 2015-03-11 10:36:34 -04:00
Beman 7460870381 Comment out failing signaling_NaN() tests. 2015-03-10 16:37:36 -04:00
Beman 13b0d7b9ba Add missing #include <limits>. 2015-03-10 16:34:47 -04:00
Beman 4f2a715c9f Fully implement float_value_test and double_value_test 2015-03-09 17:11:54 -04:00
Beman 09ae6c961f Rename BOOST_TEST_MEMCMP_EQ to BOOST_TEST_MEM_EQ. Add float_test to Jamfile. Add float_value_test() and double_value_test(). 2015-03-08 10:50:39 -04:00
Beman adc09abc7a Also show numeric_limits values in big and little endian hex. 2015-03-07 08:59:14 -05:00
Beman 072b495240 Add Endian specific lightweight_test.hpp with new macro BOOST_TEST_MEMCMP_EQ that uses std::memcmp(...)==0 to determine equality. Bitwise equality is the standard we want floating point round trips to be held to, since NaN's are then equal. 2015-03-05 10:52:28 -05:00
Beman 482bcb0855 report_limits() working. 2015-03-04 14:51:39 -05:00
Beman a968c67510 Initial commit of infrastructure. No test cases yet. 2015-03-04 11:48:21 -05:00
Beman 9c0cbae556 Revert the default (*_t) types to unaligned, and used *_at to identify the aligned types. See mini-review thread for rationale. 2015-02-23 07:24:17 -05:00
Beman b0ef03b9d6 Rearranges rows and columns in tables. Add big_int8_t, big_uint8_t, little_int8_t, little_uint8_t arithmetic and buffer types, in response to mini-review query. 2015-02-16 19:31:48 -05:00
Beman 512287dfa7 Clear some warnings in test programs. 2015-01-19 08:44:19 -05:00
Beman adee2fe513 Add support for deprecated names from pre-review releases. 2015-01-18 19:48:27 -05:00
Beman 35f4c47a22 Add endian_buffer stream inserter and extractor, beef up buffer_test a bit. 2015-01-17 10:25:29 -05:00
Beman 10bcb52d97 Add loop_time_test options 2015-01-15 09:17:31 -05:00
Beman 810f5453a6 Work-in-progress, including various bug fixes and doc updates. 2015-01-14 16:28:30 -05:00
Beman 321d5a087a For X86 and X64 architectures, which permit unaligned loads and stores, unaligned little endian buffer and arithmetic types use regular loads and stores when the size is exact. This makes unaligned little endian buffer and arithmetic types significantly more efficient on these architectures.(Pull request from Jeremy Maitin-Shepard) Docs updated, but timing results have not yet been updated. 2015-01-06 16:57:53 -05:00
Beman d15b2fdb1c Refined rationale for choice of exact-length types for conversion support. 2014-12-16 08:49:01 -05:00
Beman 6de2f69b77 Get MSVC 64-builds working under Visual Studio. 2014-12-15 20:20:16 -05:00
Beman 971ba888d6 Decompose Reversible into EndianReversible and EndianReversibleInplace. 2014-12-11 11:41:44 -05:00
Beman 6c173766e3 Eliminate gcc -Wconversion warnings. 2014-12-10 15:03:06 -05:00
Beman dcde9463fc Do not define _SCL_SECURE_NO_WARNINGS or _CRT_SECURE_NO_WARNINGS if already defined (such as on the command line), plus related cleanups. 2014-12-10 10:26:49 -05:00
Beman c201455c84 Change "in_place" to "inplace". Rationale: shortens names without impacting expressiveness. 2014-12-10 09:39:03 -05:00
Beman 2cbcd6f7d3 Rename "runtime_conditional_reverse" to "conditional_reverse". The differing number of arguments is sufficient to disambiguate the compile-time and run-time overloads. 2014-12-10 09:26:47 -05:00
Beman 51b990eb50 Add associated-files.vcxproj and related infrastructure so Visual Studio IDE find-in-files and replace-in-files works for associated files like headers and HTML files. 2014-12-10 09:00:43 -05:00
Beman dcca2835a9 Rename "reverse_endianness" to "endian_reverse". Shorter but still plenty explicit. See bikeshed.txt for alternatives considered. 2014-12-10 08:30:30 -05:00
Beman e4466edf4e Drop the _unless_big and _unless_little functions. KISS. They were confusing, and less confusing names were never found. 2014-12-09 20:43:47 -05:00
Beman 55a65c3806 Revert to again supply the reverse_endianness_in_place template. This has the effect of providing a default reverse_endianness_in_place for user-defined types. Add error checking for UDT's to verify this works as desired. Provide a note in the conversion docs to that effect. 2014-12-09 11:36:42 -05:00
Beman 4b6019c82e Use hex in literal for value where octal is confusing. 2014-12-09 07:10:25 -05:00
Beman 439207b388 Add conversion_use_case 2014-12-05 09:01:59 -05:00
Beman e2045b7ffa Finalize buffer and arithmetic decomposition. Finalize name changes. Finalize test cases. Remove cruft. Docs still to do. 2014-11-26 10:04:33 -05:00
Beman bb785ed8e0 UDT tests added. Passing on Windows, all local compilers. 2014-11-25 11:31:30 -05:00
Beman 7b119ba0ee Add full set of modify in place tests. 2014-11-25 09:58:59 -05:00
Beman 56103a7bc6 Finish conversion.hpp cleanup after name changes. conversion_test.cpp return-by-value tests reorganized and passing. UTD and in-place tests still to come. Add doc/bikeshed.txt to keep record of naming rationale. 2014-11-24 10:04:23 -05:00
Beman 4197f996ac More conversion.hpp fixes. Some, but not all, conversion_test tests passing. 2014-11-23 10:38:21 -05:00
Beman fc7733ade1 Major renaming. Class "endian" becomes class "endian_arithmetic" to mimic the C++ standard's description of such types as "arithmetic types". Rename header accordingly. The convenience typedefs have been changed shorten aligned names, as they are often being, but keeping the unaligned type names relatively short via a simple "_ut" suffix. 2014-11-19 10:53:11 -05:00
Beman 61d9046348 Remove "operator value_type() const noexcept" from buffers. Make the buffer ctor explicit. Buffers were requested by people who do not want automatic conversions because they want full control over conversions, and are very concerned about "efficiency".
Add "operator value_type() const noexcept" to the endian arithmetic types. These types are used by people who do want fully automatic conversions. The arithmetic types need to be drop-in replacements for the built-in arithmetic types for these users.
2014-11-18 14:33:31 -05:00
Beman 221ad3c585 Add use_cases.cpp 2014-11-18 10:05:45 -05:00
Beman e9f6d2c37c Re-implement the endian types by inheriting from endian_buffer. 2014-11-15 21:04:19 -05:00
Beman 561d8f7070 Initial commit buffers.hpp and related infrastructure. A separate buffer class without arithmetic operators was requested during the formal review. 2014-11-15 08:02:08 -05:00
Beman f8e60ae4e9 Switch to VC++ 2014, and clear a resulting shadow warning. 2014-11-14 14:23:36 -05:00
Beman fd1ab6daff Add additional ambiguity detection. 2014-11-13 13:10:57 -05:00
Beman c41521cead For the endian types, add stream inserters and extractors as requested during the formal review. 2014-11-11 21:08:08 -05:00
Beman 72a9095a03 Fix tests that were backwards on big endian machines. Thanks to Lars Viklund for testing on three different big-endian systems. 2014-08-15 18:07:12 -04:00
Beman e609015dd6 Some IDE generated files and directories violate boost guidelines, so ignore. 2014-08-15 12:01:05 -04:00
Beman ea44132749 Add native float tests. 2014-08-13 14:02:09 -04:00
Beman f2dad97c44 Upgrade to msvc 2013. Rename msvc2012 to msvc so directory doesn't have to be renamed each msvc release. 2014-08-11 10:01:24 -04:00