Units v0.4.0 Release Notes

Release Date: 2020-03-30 // about 4 years ago
  • Add a converter command line application and fix a few slow conversion issues and some other fuzz issues that came up recently, add isnormal operation for measurements, better test coverage for fixed_precise_measurement, some additional tests and static analysis checks.

    🔄 Changed

    • ➕ Added several tests run under Azure to remove deprecated image and add some new tests #40
    • ⚠ clears up several warnings from clang-tidy #41
    • the fuzzer now uses fuzz_measurement #42
    • ⚡️ update clang format to limit line length to 80 and allow reflowing comments #43
    • ➕ add clang-tidy checks for the tests and fix a few issues. #47

    🛠 Fixed

    • A few timeouts on the fuzzer- the fix was to generalize the multiplier insertion after ^ to accept multiple digits after the ^ instead of just ignoring it after more than one. #34
    • An asymmetry was observed in the unit equality from on the fuzzers, this resulted in some modifications of the cround_equal and cround_precice_equals functions. Also noted that the functions weren't aborting on exact floating point equality so were doing quite a bit of extra calculations. #34
    • ⏱ A timeout issue from fuzzing having to do with not injecting multiplies after [] in some circumstances. The fix was to be a little more refined as to which point to not inject the * and to do it in multiple stages so as to not rely on the partitioner so much. #35
    • 🛠 fixed_measurement and fixed_precise_measurement had incorrect subtraction operation in a few overloads. #39
    • 🛠 fixed a few initial issues from fuzz_measurement #42
    • Some more fuzzing generated issues with cascading powers #45
    • ⚠ A number of additional clang-tidy checks were added and the resulting warnings fixed #46
    • An issue from the fuzzer dealing with equation type units #51

    ➕ Added

    • ➕ added a converter command line application that can convert units on the command line #35
    • ➕ Added a file operation that can load user defined units from a file #36
    • ➕ Added is_valid methods for all measurement types #36
    • ➕ Added addUserDefinedInputUnit to add user defined units only on the input #36
    • The webserver gained a to_string option to use the internal to_string operations to simplify the measurement and units #37
    • The webserver and the converter gained an ability to handle * and <base> as the input unit to convert the measurement to base units. #37
    • Added to_string operation for uncertain_measurements #38
    • ➕ Added isnormal operation for measurement types #39
    • Added UNITS_CLANG_TIDY option to run tests with Clang tidy #41
    • ✅ Added fuzz_measurement fuzzer to test measurement_from_string #42
    • ➕ Added cpplint test to azure #43
    • ➕ Added a number of additional units from UDunits #44
    • ➕ Added several CI checks including CPPlint, and a series of CMAKE checks, and formatting checks #48,#49
    • ➕ Added a series of additional tests for coverage #50