Releases: isaacphysics/equality-checker
Releases · isaacphysics/equality-checker
v0.13.2
v0.13.1
Changelog:
- Dependency updates.
- Re-add some basic factorial support, but this functionality should not be used in production.
v0.13.0
Changelog:
- Fix a precedence issue with boolean equations where "A == B or C" was incorrectly parsed as "(A == B) or C" and not "A == (B or C)".
- Upgrade to Python 3.10, fixing issues caused by the changes to True and False in Python 3.8's internal representation of these constants.
- Update dependencies to latest versions.
- Add further unit tests to the logic checker behaviour to test new functionality and fixed issues.
- Add 8000+ test-cases generated from real-world use of the checker, as a more robust check of consistent behaviour than the existing unit tests.
v0.12.0
Changelog:
- Ensure "True" and "False" can be parsed correctly as SymPy values not built-ins.
- Allow "1" and "0" to represent True and False in logic input.
v0.11.1
Changelog:
- Prevent unwanted simplification of derivatives after SymPy upgrade.
v0.11.0
Changelog:
- Reject input containing unprintable characters entirely, rather than processing it and rejecting at the filtering stage.
- Update SymPy dependency to latest version.
- Add configuration for GitHub Actions to replace Travis CI for testing.
- Neaten the contents of the built Docker image by using a
.dockerignore
file.
v0.10.0
Changelog:
- Change behaviour of unary negation and the processing of unary minus signs to try and get consistent behaviour. This should allow
1-2*x
and-2*x+1
to have the same parse tree, but may cause unintended issues elsewhere and should be treated with caution! - Add support for XOR, both as a keyword (
A xor B
), and as a bitwise operation (A ^ B
). Also add Unicode character replacements for common XOR symbols. - Allow replacement of Unicode Greek letters with their Python names.
- Prevent simplification occuring inside square roots, which may change some historic EXACT matches into SYMBOLIC matches now.
- Update dependencies and add workaround for undesired behaviour when replacing Deriviatives. Rename Gunicorn config file to avoid runtime warning.
- Add configuration for Travis CI testing.
v0.9.0
Changelog:
- Following the lead of SymPy and NumPy, move to using Python 3.7.
- If the input string contains a syntactic error, add a new key
syntax_error
to the output. This should help avoid repeated comparisons of an invalid value. - Add a new endpoint for checking the equivalence of two boolean algebra expressions. Supported syntaxes are (
&
,|
,~
) or (and
,or
,not
). Add new unit tests to check the new functionality. - Add support for parse hints to the parser. These can be used to distinguish cases where
e
should be treated as2.71...
rather than a symbol, for example. Currently supported values areconstant_pi
,constant_e
,imaginary_i
,imaginary_j
andnatural_logarithm
(where the latter makeslog(...)
meanln(...)
rather thanlog(..., 10)
). - Move structure to that of a Python package.
- Use the
-slim
Python Docker image, reducing the size of the image by 75%.
v0.8.0
Changelog:
- Change
log(x)
to be base 10 by default. Other bases can be specified usinglog(x, b)
or the natural logarithm withln(x)
. - Support for abbreviated inverse trig function names:
asin(...)
etc. - Add a
"syntax_error"
key to the result dictionary, if the input test string contains invalid syntax. - Better replacement of Unicode characters based on their names.
- Fix an issue where
2l
or2L
was interpreted as a numeric long, not as multiplication of a symbol. - Rename result keys to be consistently in
snake_case
.
v0.7.0
Changelog:
- Use Gunicorn to serve requests in production, rather than relying on the builtin Flask server explicitly not intended for production use.
- Fix an issue whereby derivatives were simplified despite an attempt at disabling this. There is now a global constant to enable/disable this, which needs refactoring as an argument to
check(...)
. - Fix a bug when checking differential equations that contained multiple derivatives of different orders, where the inner lower-order derivatives were replaced too early.
- Correctly parse relations (
=
,<
,<=
etc) rather than replace them using a regular expression. - Refactoring of unit tests to separate out functionality.
- Update to use SymPy version 1.2 and newer versions of other dependencies.