djutils v2.2.0
The djutils 2.2.0 project has three major changes:
- The module djutils-base (aka djutils) has been split off into a separate project to avoid circular dependencies (issue #24).
- A module called djutils-eval has been added. This module can evaluate textual expressions including stored variables. It is fully integrated with djunits, and it can make calculations on quantities, where units are converted and checked. Example expressions are
3[kg.ms-2],PI()*AVOGADRO(),12 [ms-1] / 123[/s],12>4?TRUE():(9+5), and5*2[s]/5[s]. - The unit tests have been upgraded from JUnit 4 to JUnit 5.
The following issues have been addressed:
- Issue #11. Constructing a Bezier of two points and epsilon fails. The method
PolyLine2d Bezier.bezier(double epsilon, final Point2d... points)crashes when it tries to compute the first t value to put the points in theNavigableMap. When only two points are given, the value of t is effectively computed as 0/0; resulting in NaN. It is likely that this also goes wrong in the PolyLine3d version. This was fixed. The test coverage of 3D bezier construction with epsilon was also improved / added. - Issue #17. Update unit tests from JUnit 4 to JUnit 5. Update unit tests from JUnit 4 to JUnit 5. All unit tests have been adapted and upgraded to the JUnit 5 framework. Code with the
ExitHelperclass and tests to check theSystem.outandSystem.erroutput have been upgraded to use thesystem-lambdapackage from https://github.com/stefanbirkner/system-lambda/ - Issue #24. Separate djutils-base (aka djutils) into a separate project. Break the circular dependency between djunits and djutils. the djutils module has been placed in a separate project djutils-base. As a result, djunits can be made dependent on djutils-base, breaking the circular dependency. This allows full usage of the classes and data structures of djutils-base in djunits (such as
Throw,Try,UrlResource,CategoryLogger, and immutable collections), and it allows the latest version of djunits to be used in turn in several of the djutils modules in this project.