-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to deal with Infinity in serialization? #1834
Comments
Thanks for reporting Suresh, this is a very good point. So basically, the serialization should somehow serialize these special numeric values, so they can be revived correctly: const aOriginal = Infinity
const stringified = JSON.stringify(aOriginal) // is '"null"'
const aRevived = JSON.parse(stringified, math.json.reviver)// is null, should be Infinity
assert.strictEqual(aOriginal, aRevived) // is false, should be true The difficulty is that this is behavior of the JavaScript A possible solution would be to implement a JSON replace function, which turns numbers with a special value like const aOriginal = Infinity
const stringified = JSON.stringify(aOriginal, math.json.replacer)
// '{"mathjs":"number","value":"Infinity"}'
const aRevived = JSON.parse(stringified, math.json.reviver)
assert.strictEqual(aOriginal, aRevived) // true |
I created a fix in 28b7a02 (not yet published) |
Thank you for resolving it real quick. |
Fixed now in |
Thank you. 👍 |
* Update devDependencies * Fixed `eigs` not using `config.epsilon` (see #1789) * Should be able to take NAMED_DELIMITER as object keys (#1798) Co-authored-by: Jos de Jong <[email protected]> * Update history * Clarify the documentation on `scope` when using `rawArgs`, see #1055 * Bump @babel/preset-env from 7.9.0 to 7.9.5 (#1810) Bumps [@babel/preset-env](https://github.com/babel/babel) from 7.9.0 to 7.9.5. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/master/CHANGELOG.md) - [Commits](babel/babel@v7.9.0...v7.9.5) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * Prefix the cli test with 'node' so it works on windows (#1807) * Prefix the cli test with 'node' so it works on windows Shouldnt provide any issues for other systems I hope * Revert "Prefix the cli test with 'node' so it works on windows" This reverts commit 4cd2704. * Revert "Revert "Prefix the cli test with 'node' so it works on windows"" This reverts commit 268b594. Co-authored-by: Jos de Jong <[email protected]> * Fix #1808: `toNumber()` not working on a unitless unit (#1811) * Update history * Fix #1813: bug in engineering notation for numbers of function `format`, sometimes resulting in needless trailing zeros * Improve explanation of engineering notation in function format * Publish v6.6.3 * Bump uglify-js from 3.8.1 to 3.9.0 (#1816) Bumps [uglify-js](https://github.com/mishoo/UglifyJS2) from 3.8.1 to 3.9.0. - [Release notes](https://github.com/mishoo/UglifyJS2/releases) - [Commits](mishoo/UglifyJS@v3.8.1...v3.9.0) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * Publish v6.6.4 * Bump uglify-js from 3.9.0 to 3.9.1 (#1818) Bumps [uglify-js](https://github.com/mishoo/UglifyJS2) from 3.9.0 to 3.9.1. - [Release notes](https://github.com/mishoo/UglifyJS2/releases) - [Commits](mishoo/UglifyJS@v3.9.0...v3.9.1) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * Bump karma from 4.4.1 to 5.0.3 (#1830) Bumps [karma](https://github.com/karma-runner/karma) from 4.4.1 to 5.0.3. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](karma-runner/karma@v4.4.1...v5.0.3) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * Bump karma-mocha from 1.3.0 to 2.0.1 (#1832) * Bump karma from 5.0.3 to 5.0.4 (#1839) Bumps [karma](https://github.com/karma-runner/karma) from 5.0.3 to 5.0.4. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](karma-runner/karma@v5.0.3...v5.0.4) Signed-off-by: dependabot-preview[bot] <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> * Bump mocha from 7.1.1 to 7.1.2 (#1827) * Update devDependencies * Fix #1834: value `Infinity` cannot be serialized and deserialized * Fix broken bundle tests and linting issues * Fix unit test on node 8 (yeah, I know) * Fix #1842: value `Infinity` not turned into the latex symbol `\\infty` * Publish v6.6.5 * Fix fixer.io example, the free plan doesn't support SSL * Change node versions Co-authored-by: jos <[email protected]> Co-authored-by: Veeloxfire <[email protected]> Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
Hi,
The reviver option in JSON.parse is very helpful. But, I am not sure how to deal with Infinity. At present, I am loosing its information. Here is an example:
By the time I reach last step, the variable
d
is losing its Infinity value.How can I fix this problem?
Thank you for your time.
Originally posted by @skgadi in #27 (comment)
The text was updated successfully, but these errors were encountered: