132 Commits

Author SHA1 Message Date
Jos de Jong
3166b7f57b
Gwhitney doctesting (#2471)
* test: Add unit tests for all of the examples in (jsdoc) comments

  Uses the existing extraction of examples from tools/docgenerator.js
  Hence, for now this is limited to documentation of functions, but
  hopefully it can be extended to classes, units (and physical constants),
  and constants as well in the future.

  Exposes numerous errors in the examples, some of which are bugs; these
  are for now put on a known error list to be worked on, so that this
  PR does not change a huge number of source files.

  Also adds a test to check that all symbols are documented (which
  similarly doesn't really pass at the moment, and is patched to a
  hopefully temporary warning).

* refactor: Make doc.test.js into a node test

  The source code is not available in its layout as in the repository in
  the browser tests, so the new doc testing can only occur in the node tests

* Add simplifyCore, symbolicEqual, map, and resolve to the list with functions with known issues in the jsdoc examples

Co-authored-by: Glen Whitney <glen@studioinfinity.org>
2022-03-07 11:50:42 +01:00
Glen Whitney
151926c75b
fix: simplify.resolve detects reference loop and throws error (#2405)
* docs: Enhance generation to pick up functions with a prefix

  For example, prior to this commit, docgenerator.js would miss
  simplify.resolve because it is not a direct key of the math
  object.

  Also incorporates any "throws" attributes in the comments into
  the generated documentation, and uses this to document the
  new error-case behavior of simplify.resolve to be added in the next
  commit.

* fix(resolve): Detect and throw errors for reference loops

  Also extends resolve to work inside all node types. Adds tests
  for both changes.

* docs: Add embedded docs for simplify.resolve et al.

  To support finding the embedded doc from the `math.simplify.resolve`
  function itself, required extending the search for objects with
  documentation one level deeper in the `help()` function. Added test for
  this search.

  Also added support for documenting throws in embedded docs.

* refactor(simplify): Move resolve and simplifyCore to top-level

  Also reverts changes searching for docs and embedded docs one level
  down in the naming hierarchy.
  Also splits tests for resolve and simplifyCore into their own files,
  reflecting their new top-level status.

* fix(resolve): Remaining changes as requested

  Also removed a stray blank line inadvertently introduced in
  docgenerator.js

* refactor: Declare resolve and simplifyCore as dependencies of simplify

  ... rather than explicitly loading them, which is unnecessary now that they
  are at top level.

* fix: Add dependencies to factoriesNumber

  Also register simplifyCore as a dependency to rationalize

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2022-02-28 09:58:10 +01:00
Jos de Jong
6f00715754
Specify import require paths (continuation of #1941) (#1962)
* Add `.js` extension to source file imports

* Specify package `exports` in `package.json`

Specify package type as `commonjs` (It's good to be specific)

* Move all compiled scripts into `lib` directory

Remove ./number.js (You can use the compiled ones in `./lib/*`)

Tell node that the `esm` directory is type `module` and enable tree shaking.

Remove unused files from packages `files` property

* Allow importing of package.json

* Make library ESM first

* - Fix merge conflicts
- Refactor `bundleAny` into `defaultInstance.js` and `browserBundle.cjs`
- Refactor unit tests to be able to run with plain nodejs (no transpiling)
- Fix browser examples

* Fix browser and browserstack tests

* Fix running unit tests on Node 10 (which has no support for modules)

* Fix node.js examples (those are still commonjs)

* Remove the need for `browserBundle.cjs`

* Generate minified bundle only

* [Security] Bump node-fetch from 2.6.0 to 2.6.1 (#1963)

Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1. **This update includes a security fix.**
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

* Cleanup console.log

* Add integration tests to test the entry points (commonjs/esm, full/number only)

* Create backward compatibility error messages in the files moved/removed since v8

* Describe breaking changes in HISTORY.md

* Bump karma from 5.2.1 to 5.2.2 (#1965)

Bumps [karma](https://github.com/karma-runner/karma) from 5.2.1 to 5.2.2.
- [Release notes](https://github.com/karma-runner/karma/releases)
- [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md)
- [Commits](https://github.com/karma-runner/karma/compare/v5.2.1...v5.2.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>

Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>

Co-authored-by: Lee Langley-Rees <lee@greenimp.co.uk>
Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com>
2020-09-20 18:01:29 +02:00
Jos de Jong
76a0ec755b Publish v7.1.0 2020-07-13 21:26:05 +02:00
Jos de Jong
6ef0f9b887 Allow to pick embedded docs from an other comment block than just the first 2020-07-13 21:17:28 +02:00
Harry Sarson
08feb7fc79
remove contributors from package.json in favour of AUTHORS (#1774)
* remove contributors from package.json in favour of AUTHORS

The contributors section of our package.json is _very_ long and
manually updating can (?) be a pain.

I took a leaf out of nodejs's book and copied their update-authors
script [1].

[1]: https://github.com/nodejs/node/blob/master/tools/update-authors.js

* remove some of my many emails

* add a couple more mail mappings

* get lint passing

* add instruction to update-authors

Co-authored-by: Jos de Jong <wjosdejong@gmail.com>
2020-03-23 19:57:20 +01:00
Harry Sarson
462f46947f fix qr and sign edge cases (#1670)
* fix qr and sign edge cases

qr() was throwing an error if the pivots of a matrix were zero.
This commit fixes that and ensures that the results are consistant
with wolfram alpha.

Whilst doing this I found a bug in complex.js, I have added a work
around but we should flag this upstream.

I also addressed the long standing concerns about assert statements
within the body of the qr function.

Fixes #1669
Fixes #942

* further improvements to qr and sign

mainly fixing things I got wrong in previous commit

* add array test

* fix: remove only from tests and disallow

Uses mochas `--forbid-only` flag as advised by
https://github.com/standard/standard/issues/988
2019-11-18 20:03:09 +01:00
Harry Sarson
4cfef3ac34 fix no-case-declarations lint 2019-08-21 10:09:10 +01:00
Harry Sarson
b6a42c032d run standard --fix 2019-08-21 10:09:10 +01:00
jos
d8a4f3a00a Update to standard@13.0.2 2019-07-20 13:46:31 +02:00
jos
b390a23f4b Fix function reference not published in npm library 2019-06-09 20:44:16 +02:00
jos
41efed79d3 Fix #1473: remove 'use strict' in every file 2019-05-26 20:21:18 +02:00
jos
64529c3d2e replace tools/validateEmbeddedDocs with a unit test 2019-05-22 14:41:34 +02:00
jos
ec44199dc0 Ignore generated docs in repo, cleanup generated docs before generation 2019-05-22 14:25:42 +02:00
jos
9af5206a88 Make matrix dependency requried again for subset. Make IndexNodes dependencies explicit. Disable subset in number implementation for now 2019-05-22 11:08:12 +02:00
jos
ab1b83a2f6 Remove generated files from repo, make tests independent from generated files 2019-05-12 15:14:13 +02:00
jos
dd830a8892 Fix executing entry files on load of file 2019-05-08 12:44:36 +02:00
jos
c0a11b3d88 Auto generate impureFunctionsAny files 2019-05-08 11:33:51 +02:00
jos
8162f0c2bb Automatically generate functionsAny and functionsNumber 2019-05-08 10:19:08 +02:00
jos
52cc01e752 Use templates and handlebars to generate entry files 2019-05-05 16:43:34 +02:00
jos
cc740b39be Move snapshot code into /src to have it transpiled 2019-05-04 15:17:15 +02:00
jos
47e1adcd0e Dynamically generate the expected snapshot structure based on the factories 2019-05-04 14:39:30 +02:00
jos
158e39b673 Replace deprecated gulp-util with fancy-log 2019-05-04 10:05:15 +02:00
jos
ad51c22066 Fix embedded docs warnings. Fix CLI auto completion on non-supported classes 2019-05-04 09:54:12 +02:00
jos
a770b7c4d3 Fix an issue in the entry generator 2019-04-29 21:28:22 +02:00
jos
20aa9a005a Fix circular dependency in math namespace for evaluate 2019-04-29 21:19:50 +02:00
jos
427c39c33b Created ES5 and ES6 entry points 2019-04-28 20:56:08 +02:00
jos
bb9a1e2164 Rename *Full files to *Any 2019-04-27 20:27:26 +02:00
jos
e4bb1c6198 Generate individual files for dependencies (tree shaking working now :) ) 2019-04-24 21:13:49 +02:00
jos
2450ed1fc1 Update entry files and snapshots with latest merged functions 2019-04-24 11:05:39 +02:00
jos
f4d4180cea Move all entry files under ./src/entry 2019-04-24 10:48:01 +02:00
jos
33cead1327 Improved deprecation errors and warnings. Introduce lazy again for factories. 2019-04-22 09:45:57 +02:00
jos
6081360d6a Merged develop into modular_architecture 2019-04-13 16:51:51 +02:00
jos
d8957d23ae Get all examples running :) 2019-04-10 16:52:02 +02:00
jos
3a34a57924 Auto generate dependenciesFull.js and dependenciesNumber.js (WIP) 2019-04-10 08:48:15 +02:00
jos
22bec13d10 Implement number factories, dependencies. Make matrix and bignumber optional where possible 2019-04-03 09:46:44 +02:00
jos
29b80aa941 Rename "recipes" into "dependencies" 2019-03-13 09:32:13 +01:00
jos
70cbc3ec30 Replace http urls with https where supported 2019-02-27 13:08:42 +01:00
jos
241d45cbbe Improve use cases, POC of recipes 2019-02-24 15:29:44 +01:00
jos
83df09800b Merge branch 'develop' into modular_architecture_merge
# Conflicts:
#	HISTORY.md
#	gulpfile.js
#	package-lock.json
#	package.json
#	src/core/function/typed.js
#	src/expression/transform/index.js
#	src/function/statistics/sum.js
#	src/function/utils/index.js
#	src/type/unit/Unit.js
#	src/version.js
#	test/expression/node/FunctionNode.test.js
#	test/type/unit/function/createUnit.test.js
#	test/utils/bignumber/formatter.test.js
#	test/utils/number.test.js
2019-02-09 21:26:25 +01:00
jos
99da53da0e Flatten everything in a mathjs instance to make it consistent with the ES6 exports. Create deprecation warnings for the old classes and functions 2019-02-07 21:24:51 +01:00
jos
19bc1e0fce Implemented snapshot testing for all exported bundles and instances 2019-01-23 14:50:29 +01:00
jos
078f1dd69f Renamed methods .eval to .evaluate, updated all docs and examples accordingly 2019-01-16 10:11:32 +01:00
jos
05e6cfec7f Doc generation working again. Renamed variance and evaluate occurrences in the docs. 2019-01-09 11:21:43 +01:00
jos
5dd0a9ba9c Get bundle working (with lazy loading) 2019-01-02 10:03:05 +01:00
jos
2630129c72 Fix linting issues 2018-11-20 21:24:59 +01:00
jos
d09a7ff584 Create script to check for non-ascii characters (see #1326) 2018-11-20 21:13:36 +01:00
Harry Sarson
74ff86fd4b Store uncompressed matricies and drop dev dep on tar and on q. (#1316)
git handles compression for us so compressing the matricies we use to test
is unnessessary. Additionally, handling the compression made the
code significantly more complex and required pulling in extra packages
from npm.

This commit updates the matrix market code to use uncompressed files.
I have also replaced use of the promise libary 'q' with built in
promises.
2018-11-10 11:40:28 +01:00
jos
4a529dc94a Fixed tests in test-node 2018-11-07 14:07:30 +01:00
jos
2fd6cbd568 Converted matrix classes. Fixes in dependency resolving/ordering. 2018-11-07 12:38:00 +01:00