aboutsummaryrefslogtreecommitdiffstats
path: root/test/lisp/calc (follow)
Commit message (Collapse)AuthorAgeFilesLines
* calc: Improve handling of invalid 'calc-string-maximum-character'Jacob S. Gordon2026-01-171-56/+16
| | | | | | | | | | | | | | | Previously, if 'calc-string-maximum-character' wasn't a valid character 'math-vector-is-string' would throw an error in the comparison, leading to an incomplete display of the stack and a cryptic error message. Instead, have 'math-vector-is-string' return nil, which effectively disables the display of strings. Refines feature introduced in bug#78528. * doc/misc/calc.texi (Customizing Calc): Update description of behavior for invalid 'calc-string-maximum-character'. * lisp/calc/calccomp.el (math-vector-is-string): Return nil when 'calc-string-maximum-character' doesn't represent a character. * test/lisp/calc/calc-tests.el (calc-math-vector-is-string): Correct and simplify tests.
* ; Add 2026 to copyright years.Sean Whitton2026-01-011-1/+1
|
* Add user option to inhibit Calc startup message (bug#79143)Sean Devlin2025-08-301-0/+15
| | | | | | | | | | | * doc/misc/calc.texi (Customizing Calc): Document the new option. * etc/NEWS: Document the new option. * lisp/calc/calc.el (calc-inhibit-startup-message): New option to inhibit Calc’s startup message. (calc): Respect the option in Calc’s startup code. * test/lisp/calc/calc-tests.el (ert): Require ert-x for 'ert-with-message-capture'. (calc-inhibit-startup-message): Test the new user option.
* calc: Allow strings with character codes above Latin-1Jacob S. Gordon2025-06-141-0/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current behavior of the functions 'calc-display-strings', 'strings', and 'bstrings' is to skip any vector containing integers outside the Latin-1 range (0x00-0xFF). We introduce a custom variable 'calc-string-maximum-character' to replace this hard-coded maximum, and to allow vectors containing higher character codes to be displayed as strings. The default value of 0xFF preserves the existing behavior. * lisp/calc/calc.el (calc-string-maximum-character): Add custom variable 'calc-string-maximum-character'. * lisp/calc/calccomp.el (math-vector-is-string): Replace hard-coded maximum with 'calc-string-maximum-character', and the 'natnump' assertion with 'characterp'. The latter guards against the maximum being larger than '(max-char)', but not on invalid types of the maximum such as strings. * test/lisp/calc/calc-tests.el (calc-math-vector-is-string): Add tests for 'math-vector-is-string' using different values of 'calc-string-maximum-character'. * doc/misc/calc.texi (Quick Calculator, Strings, Customizing Calc): Add variable definition for 'calc-string-maximum-character' and reference thereof when discussing 'calc-display-strings'. Generalize a comment about string display and availability of 8-bit fonts. (Bug#78528)
* Update copyright year to 2025Paul Eggert2025-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* Fix 'calc-math-read-preprocess-string' test (bug#66944).Daniel Brooks2024-01-291-1/+1
| | | | Copyright-paperwork-exempt: yes
* Calc parses fractions written using U+2044 FRACTION SLASHDaniel Brooks2024-01-271-0/+25
| | | | | | | | | | | | | | | | | | Fractions of the form 123⁄456 are handled as if written 123:456. Note in particular the difference in behavior from U+2215 DIVISION SLASH and U+002F SOLIDUS, which result in division rather than a rational fraction. * lisp/calc/calc-aent.el (math-read-replacement-list): Substitute a colon for any fraction slash. (Bug#66944) * test/lisp/calc/calc-tests.el (calc-frac-input): Test various fraction types. * etc/NEWS: * doc/misc/calc.texi (Fractions): Mention fraction slash, precomposed fractions. Copyright-paperwork-exempt: yes
* Merge from savannah/emacs-29Po Lu2024-01-021-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dc4e6b13296 ; Update copyright years in more files 64b37776318 ; Run set-copyright from admin.el 8e1c56ae467 ; Add 2024 to copyright years # Conflicts: # doc/misc/modus-themes.org # doc/misc/texinfo.tex # etc/NEWS # etc/refcards/ru-refcard.tex # etc/themes/modus-operandi-theme.el # etc/themes/modus-themes.el # etc/themes/modus-vivendi-theme.el # lib/alloca.in.h # lib/binary-io.h # lib/c-ctype.h # lib/c-strcasecmp.c # lib/c-strncasecmp.c # lib/careadlinkat.c # lib/cloexec.c # lib/close-stream.c # lib/diffseq.h # lib/dup2.c # lib/filemode.h # lib/fpending.c # lib/fpending.h # lib/fsusage.c # lib/getgroups.c # lib/getloadavg.c # lib/gettext.h # lib/gettime.c # lib/gettimeofday.c # lib/group-member.c # lib/malloc.c # lib/md5-stream.c # lib/md5.c # lib/md5.h # lib/memmem.c # lib/memrchr.c # lib/nanosleep.c # lib/save-cwd.h # lib/sha1.c # lib/sig2str.c # lib/stdlib.in.h # lib/strtoimax.c # lib/strtol.c # lib/strtoll.c # lib/time_r.c # lib/xalloc-oversized.h # lisp/auth-source-pass.el # lisp/emacs-lisp/lisp-mnt.el # lisp/emacs-lisp/timer.el # lisp/info-look.el # lisp/jit-lock.el # lisp/loadhist.el # lisp/mail/rmail.el # lisp/net/ntlm.el # lisp/net/webjump.el # lisp/progmodes/asm-mode.el # lisp/progmodes/project.el # lisp/progmodes/sh-script.el # lisp/textmodes/flyspell.el # lisp/textmodes/reftex-toc.el # lisp/textmodes/reftex.el # lisp/textmodes/tex-mode.el # lisp/url/url-gw.el # m4/alloca.m4 # m4/clock_time.m4 # m4/d-type.m4 # m4/dirent_h.m4 # m4/dup2.m4 # m4/euidaccess.m4 # m4/fchmodat.m4 # m4/filemode.m4 # m4/fsusage.m4 # m4/getgroups.m4 # m4/getloadavg.m4 # m4/getrandom.m4 # m4/gettime.m4 # m4/gettimeofday.m4 # m4/gnulib-common.m4 # m4/group-member.m4 # m4/inttypes.m4 # m4/malloc.m4 # m4/manywarnings.m4 # m4/mempcpy.m4 # m4/memrchr.m4 # m4/mkostemp.m4 # m4/mktime.m4 # m4/nproc.m4 # m4/nstrftime.m4 # m4/pathmax.m4 # m4/pipe2.m4 # m4/pselect.m4 # m4/pthread_sigmask.m4 # m4/readlink.m4 # m4/realloc.m4 # m4/sig2str.m4 # m4/ssize_t.m4 # m4/stat-time.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/stdio_h.m4 # m4/stdlib_h.m4 # m4/stpcpy.m4 # m4/strnlen.m4 # m4/strtoimax.m4 # m4/strtoll.m4 # m4/time_h.m4 # m4/timegm.m4 # m4/timer_time.m4 # m4/timespec.m4 # m4/unistd_h.m4 # m4/warnings.m4 # nt/configure.bat # nt/preprep.c # test/lisp/register-tests.el
| * ; Add 2024 to copyright yearsPo Lu2024-01-021-1/+1
| |
* | Calc: speed up math-read-preprocess-string (bug#67536)Mattias Engdegård2023-12-191-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `math-read-preprocess-string` is one of the bottlenecks of `calc-eval` and was unnecessarily slow even with no substitutions made. This affected org-mode in particular, where `calc-eval` is called repeatedly to recalculate tables. Reported by Raffael Stocker who also wrote the unit tests here. * lisp/calc/calc-aent.el (math--read-preprocess-re-cache): New. (math-read-preprocess-string): Use math--read-preprocess-re-cache, first computing it if necessary. * test/lisp/calc/calc-tests.el (calc-math-read-preprocess-string): New test.
* | Actually check the result of `equal` comparisons in testsMattias Engdegård2023-08-141-2/+2
|/ | | | | | | | | * test/lisp/calc/calc-tests.el (calc-bit-ops): * test/lisp/files-tests.el (files-tests-file-name-non-special-substitute-in-file-name) (files-tests-file-name-non-special-temporary-file-directory) (files-tests-file-name-non-special-unhandled-file-name-directory): Add missing `should` assertions.
* ; Add 2023 to copyright years.Eli Zaretskii2023-01-011-1/+1
|
* Remove redundant local variables in testsStefan Kangas2022-08-081-4/+0
| | | | | | | | * test/lisp/calc/calc-tests.el: * test/lisp/progmodes/python-tests.el: Remove redundant local variables. * test/src/coding-tests.el: Pacify byte-compiler without using local variable.
* Merge from origin/emacs-28Stefan Kangas2022-07-141-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | 5e47ec9511 ; * lisp/url/url-http.el (url-http-parse-headers): Fix typo. ba0871bef1 ; Fix typos: prefer American spelling e3e7f31faa Adapt Tramp doc # Conflicts: # etc/NEWS # etc/themes/modus-themes.el # lisp/emacs-lisp/byte-opt.el # test/lisp/so-long-tests/spelling-tests.el
| * ; Fix typos: prefer American spellingStefan Kangas2022-07-131-1/+1
| |
* | Audit quoting the quote character in doc stringsLars Ingebrigtsen2022-04-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/src/regex-emacs-tests.el (regex-tests-compare): (regex-tests-compare): (regex-tests-match): * test/lisp/xml-tests.el (xml-parse-tests--qnames): * test/lisp/mh-e/mh-thread-tests.el (mh-thread-tests-before-from): * test/lisp/cedet/srecode-utest-template.el (srecode-utest-map-reset): * test/lisp/calc/calc-tests.el (calc-tests-equal): * lisp/window.el (get-lru-window): (get-mru-window): (get-largest-window): (quit-restore-window): (display-buffer): * lisp/vc/vc-rcs.el (vc-rcs-consult-headers): * lisp/url/url-auth.el (url-digest-auth-build-response): * lisp/tutorial.el (tutorial--find-changed-keys): * lisp/transient.el (transient-suffix-object): * lisp/textmodes/rst.el (rst-insert-list-new-item): * lisp/textmodes/bibtex.el (bibtex-clean-entry): * lisp/tab-bar.el (tab-bar--key-to-number): (toggle-frame-tab-bar): * lisp/ses.el (ses-recalculate-cell): (ses-define-local-printer): (ses-prin1): * lisp/progmodes/xref.el (xref--find-ignores-arguments): * lisp/progmodes/verilog-mode.el (verilog-single-declaration-end): * lisp/progmodes/tcl.el (tcl-mode-hook): * lisp/progmodes/gdb-mi.el (gdb-get-buffer-create): * lisp/progmodes/elisp-mode.el (elisp--xref-make-xref): * lisp/play/dunnet.el (dun-room-objects): * lisp/outline.el (outline--cycle-state): * lisp/org/ox-publish.el (org-publish-find-property): * lisp/org/ox-html.el (org-html--unlabel-latex-environment): * lisp/org/org-table.el (org-table-collapse-header): * lisp/org/org-plot.el (org--plot/prime-factors): * lisp/org/org-agenda.el (org-agenda--mark-blocked-entry): (org-agenda-set-restriction-lock): * lisp/org/ob-lua.el (org-babel-lua-read-string): * lisp/org/ob-julia.el (org-babel-julia-evaluate-external-process): (org-babel-julia-evaluate-session): * lisp/org/ob-core.el (org-babel-default-header-args): * lisp/obsolete/mouse-sel.el (mouse-select): (mouse-select-secondary): * lisp/net/tramp.el (tramp-methods): * lisp/net/eww.el (eww-accept-content-types): * lisp/net/dictionary-connection.el (dictionary-connection-status): * lisp/minibuffer.el (completion-flex--make-flex-pattern): * lisp/mh-e/mh-mime.el (mh-have-file-command): * lisp/mh-e/mh-limit.el (mh-subject-to-sequence): (mh-subject-to-sequence-threaded): (mh-subject-to-sequence-unthreaded): * lisp/mail/feedmail.el (feedmail-queue-buffer-file-name): (feedmail-vm-mail-mode): * lisp/ls-lisp.el (ls-lisp--sanitize-switches): * lisp/keymap.el (key-valid-p): * lisp/international/ccl.el (ccl-compile-branch-blocks): * lisp/image/image-converter.el (image-convert): * lisp/gnus/spam.el (spam-backend-check): * lisp/gnus/nnselect.el (nnselect-generate-artlist): * lisp/gnus/nnmairix.el (nnmairix-widget-other): * lisp/gnus/message.el (message-mailto): * lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article): * lisp/gnus/gnus-search.el (gnus-search-prepare-query): * lisp/frame.el (frame-size-history): * lisp/eshell/esh-var.el (eshell-parse-variable-ref): * lisp/eshell/em-dirs.el (eshell-expand-multiple-dots): * lisp/erc/erc-backend.el (erc-bounds-of-word-at-point): * lisp/emulation/cua-rect.el (cua--rectangle-operation): * lisp/emacs-lisp/text-property-search.el (text-property-search-forward): * lisp/emacs-lisp/package.el (package-desc-suffix): * lisp/emacs-lisp/faceup.el (faceup-test-explain): * lisp/emacs-lisp/comp.el (comp-curr-allocation-class): (comp-alloc-class-to-container): (comp-add-cstrs): (comp-remove-type-hints-func): (batch-byte+native-compile): * lisp/emacs-lisp/cl-macs.el (cl--optimize): * lisp/elec-pair.el (electric-pair--syntax-ppss): * lisp/doc-view.el (doc-view-doc-type): * lisp/cedet/semantic/symref.el (semantic-symref-tool-alist): (semantic-symref-hit-to-tag-via-db): (semantic-symref-hit-to-tag-via-buffer): * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-get-overlay): * lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map): * lisp/cedet/semantic/find.el (semantic-brute-find-tag-by-function): * lisp/cedet/semantic/db.el (semanticdb-project-predicate-functions): * lisp/cedet/semantic.el (semantic-working-type): * lisp/cedet/ede/files.el (ede-flush-directory-hash): * lisp/calc/calc.el (calc--header-line): * lisp/auth-source.el (auth-source-pick-first-password): (auth-source--decode-octal-string): * etc/themes/modus-themes.el (modus-themes--paren): (modus-themes--agenda-habit): * admin/cus-test.el (cus-test-vars-with-changed-state): Fix quoting in doc strings. In code examples, the ' character is quoted with \\=, and regularize 'foo to `foo', and quote strings like "foo" instead of 'foo'.
* | Merge from origin/emacs-28Eli Zaretskii2022-01-011-1/+1
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 836be7a112 ; * etc/refcards/ru-refcard.tex: Update Copyright year. 86cbc6ee4a * lisp/net/tramp-sh.el: Adapt copyright year ebe8772f65 ; Minor fixes related to copyright years 23c1ee6989 ; * test/manual/etags/ETAGS.good_N: Adjust to copyright ye... 8d3fc7ec89 * src/xfaces.c (face_for_font): Make 'hash' be uintptr_t. 19dcb237b5 ; Add 2022 to copyright years. # Conflicts: # etc/NEWS # etc/refcards/ru-refcard.tex # lib/cdefs.h # lisp/erc/erc-dcc.el # lisp/erc/erc-imenu.el # lisp/erc/erc-replace.el # lisp/image-dired.el # lisp/progmodes/xref.el # m4/alloca.m4 # m4/byteswap.m4 # m4/errno_h.m4 # m4/getopt.m4 # m4/gnulib-common.m4 # m4/inttypes.m4 # m4/stddef_h.m4 # m4/stdint.m4 # m4/sys_socket_h.m4
| * ; Add 2022 to copyright years.Eli Zaretskii2022-01-011-1/+1
| |
* | Calc: mend math-nth-root-float (bug#51209)Mattias Engdegård2021-10-151-0/+6
|/ | | | | | | | Reported by Iñaki Cornejo. * lisp/calc/calc-math.el (math-nth-root-float): Fix old refactoring mistake. * test/lisp/calc/calc-tests.el (calc-nth-root): New test.
* ; Minor stylistic checkdoc fixes in test/**/*.elStefan Kangas2021-09-261-2/+2
|
* Calc: control digits after decimal point (bug#47302)Mattias Engdegård2021-04-271-0/+27
| | | | | | | | | | | Calc normally displays a trailing decimal point for floats with no fractional part, like '12.'. Some uses require at least one digit after the point; add the governing variable calc-digit-after-point. * lisp/calc/calc.el (calc-digit-after-point): New variable. (math-format-number): Use it. * test/lisp/calc/calc-tests.el (calc-display-digit-after-point): New test.
* Fix multiple Calc defmath errors (bug#46750)Mattias Engdegård2021-03-011-0/+76
| | | | | | | | | | | | Fix incorrect variable scoping in `let*`, `for` and `foreach`. Fix loop variable value in `foreach` (should be element, not tail). Fix function quoting, as in ('cons x y) -- didn't work at all. Reported by Stephan Neuhaus. * lisp/calc/calc-prog.el (math-define-exp, math-handle-foreach): * test/lisp/calc/calc-tests.el: (var-g, test1, test2, test3, test4) (test5, test6, test7, calc-defmath): Test various defmath forms.
* Update copyright year to 2021Paul Eggert2021-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright".
* Calc: allow infinite binary word size (bug#43764)Mattias Engdegård2020-10-131-9/+61
| | | | | | | | | | | | | | | | | | | | | | Setting the word size ("b w") to 0 removes the word size clipping for all bit operations (effectively as if a word size of -∞ had been set). Rotation is disallowed; logical and arithmetic shifts behave identically. After a suggestion by Vincent Belaïche. * lisp/calc/calc-bin.el (calc-word-size, math-binary-arg) (math-binary-modulo-args, calcFunc-lsh, calcFunc-ash, calcFunc-rot) (math-clip, math-format-twos-complement): Allow a word size of 0, meaning -∞. * test/lisp/calc/calc-tests.el (calc-tests--not, calc-tests--and, calc-tests--or, calc-tests--xor) (calc-tests--diff): New functions. (calc-tests--clip, calc-tests--rot, calc-shift-binary): Extend to cover word size 0. (calc-bit-ops): New test. * doc/misc/calc.texi (Binary Functions): Update manual. * etc/NEWS: Announce the change.
* Calc: revert to old precedence of '/' in (La)TeX input modeMattias Engdegård2020-10-131-0/+19
| | | | | | | | Make the '/' precedence higher than that of '+' and '-' again, partially reverting fda9b316f84 (bug#43902). * lisp/calc/calc-lang.el (tex): Change precedence of '/'. * test/lisp/calc/calc-tests.el (calc-latex-input): New test.
* Calc: make tests less chattyMattias Engdegård2020-10-131-60/+55
| | | | | | * test/lisp/calc/calc-tests.el (calc-extract-units, calc-convert-units) (calc-matrix-determinant, calc-choose): Remove "Working..." messages. (calc-tests--check-choose, calc-tests--explain-choose): Eliminate.
* Improve coverage of Calc bit shift testMattias Engdegård2020-10-101-5/+10
| | | | | * test/lisp/calc/calc-tests.el (calc-tests--rsh, calc-tests--rash) (calc-shift-binary): Test with negative word sizes.
* Calc: fix arithmetic right shift sign bit detectionMattias Engdegård2020-10-091-0/+62
| | | | | | | | | | | | Arithmetic right shift didn't compute the bit to shift in correctly. For example, #x600000000 right-shifted 8 steps (with 32 bit word size) resulted in #xff000000 rather than 0. (Bug#43764) * lisp/calc/calc-bin.el (calcFunc-ash): Fix condition. * test/lisp/calc/calc-tests.el (calc-tests--clip, calc-tests--lsh) (calc-tests--rsh, calc-tests--ash, calc-tests--rash, calc-tests--rot): New. (calc-shift-binary): New test.
* Calc: fix formatting and parsing Unix time (bug#43759)Mattias Engdegård2020-10-021-0/+40
| | | | | | | | | | | | | The number of days from epoch to Jan 1, 1970 that was used in parsing and formatting Unix time was incorrect. The previous fix (in e368697ce36) was incomplete. Reported by Vincent Belaïche. * lisp/calc/calc-forms.el (math-unix-epoch): New constant. (math-format-date-part, math-parse-standard-date, calcFunc-unixtime): Use math-unix-epoch instead of a constant that is sometimes wrong. * test/lisp/calc/calc-tests.el (calc-unix-date): New test.
* Calc: fix business days calculation (bug43677)Mattias Engdegård2020-10-021-0/+76
| | | | | | | | | | | | | | | | The calculation of business days was broken in 2012 (probably 310e60d9454fe2 or thereabouts) when the date representation changed epoch so that Jan 1, 1 AD became day number 1 instead of 0. Repair this, along with an unrelated bug that prevented arbitrary holiday weekdays from working. Reported by Aaron Zeng. * lisp/calc/calc-forms.el (math-to-business-day) (math-from-business-day): Correct calculation of weekdays using Calc's current (Rata Die) chronology. Modify loop condition to cope with odd sets of holiday weekdays. * test/lisp/calc/calc-tests.el (calc-business-days): New test.
* Calc: fix binomial coefficients for negative arguments (bug#16999)Mattias Engdegård2020-09-141-0/+67
| | | | | | | | | | | | | | | | | | For some values outside integers 0≤k≤n, (n choose k) gave wrong results, entered infinite recursion or used unreasonably amounts of stack space. This change fixes that and extends the function to all integer arguments using the definitions from M. J. Kronenburg (https://arxiv.org/abs/1105.3689). * lisp/calc/calc-comb.el (calcFunc-choose): Fix sign error to prevent infinite recursion and extend function to handle all integer arguments. (math-choose-iter, math-choose-float-iter): Rewrite in iterative form; no TCO in elisp yet. * test/lisp/calc/calc-tests.el (calc-tests--fac, calc-tests--choose) (calc-tests--check-choose, calc-tests--explain-choose) (calc-tests--calc-to-number): New helper functions. (calc-choose): New test.
* Calc: regularise test namesMattias Engdegård2020-09-111-14/+8
| | | | | | | * test/lisp/calc/calc-tests.el (calc-remove-units, calc-extract-units) (calc-convert-units, calc-bug-23889, calc-trig, calc-format-radix) (calc-calendar, calc-solve-linear-system): Use a uniform naming convention (calc- prefix) to simplify test running.
* Calc: GCD(0,x)=GCD(x,0)=|x|, not x (bug#41279)Mattias Engdegård2020-05-151-0/+28
| | | | | | | Reported by David Ongaro. * lisp/calc/calc-comb.el (calcFunc-gcd): Fix GCD simplification. * test/lisp/calc/calc-tests.el (calc-gcd, calc-sum-gcd): New tests.
* Calc: fix LU decomposition for non-numeric matrices (bug#41223)Mattias Engdegård2020-05-141-0/+24
| | | | | | | | | Computing determinant and inverse for on some matrices containing non-numeric elements failed or gave the wrong result. Reported by Mauro Aranda. * lisp/calc/calc-mtx.el (math-do-matrix-lud): Don't use zero as pivot. * test/lisp/calc/calc-tests.el (calc-matrix-determinant): New test.
* ; * test/lisp/calc/calc-tests.el: Fix mistake in last commitMattias Engdegård2020-03-291-1/+1
|
* Calc: don't treat nil as an integer (bug#40155)Mattias Engdegård2020-03-271-0/+11
| | | | | | | | | | | Make Math-num-integerp return false for nil, following Math-integerp which was changed in the bignum reform. This fixes a crash in calc-graph-fast. Reported by Narendra Joshi. * lisp/calc/calc-macs.el (Math-num-integerp): Not true for nil. * test/lisp/calc/calc-tests.el (calc-Math-integerp): New tests.
* Update copyright year to 2020Paul Eggert2020-01-011-1/+1
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
* ; * test/lisp/calc/calc-tests.el: Fix warningsMattias Engdegård2019-12-301-0/+1
|
* Calc: add missing dynamic variable declarationsMattias Engdegård2019-12-261-0/+15
| | | | | | | | | | * lisp/calc/calc-alg.el (math-simplify-only, calc-simplify-mode) (math-expand-formulas, calc-poly-div-remainder) (math-living-dangerously, math-simplifying, calc-angle-mode) (calc-prefer-frac, math-poly-base-variable): Declare dynamic variables. * test/lisp/calc/calc-tests.el (calc-poly-div): Add test for at least one bug caused by missing declarations.
* Spelling fixesPaul Eggert2019-12-091-1/+1
|
* Fix linear equation system solving in Calc (bug#35374)Mattias Engdegård2019-09-291-0/+103
| | | | | | | | * lisp/calc/calcalg2.el (math-try-solve-for): To solve Ax^n=0 where A is a nonzero constant and x the variable to solve for, solve x^n=0 instead of solving A=0 (which obviously fails) or something equally stupid. * test/lisp/calc/calc-tests.el (calc-test-solve-linear-system): New.
* Fix various Calc date conversions (bug#36822)Mattias Engdegård2019-08-061-0/+21
| | | | | | | | | | | | | * lisp/calc/calc-forms.el (math-absolute-from-gregorian-dt): Rewrite in a way that I understand, and that actually seems to work. (math-absolute-from-julian-dt): Use Julian, not Gregorian, leap year rules for counting days within a year. (math-julian-date-beginning, math-julian-date-beginning-int): Change constants to be consistent with their doc strings and the code: use Rata Die epoch at Dec 31, 1 BC Gregorian proleptic, not Julian. * doc/misc/calc.texi (Date Forms): Correct difference between Julian Day and Rata Die. * test/lisp/calc/calc-tests.el (calc-test-calendar): New test.
* Fix calc number formatting with digit grouping (bug#36689)Mattias Engdegård2019-07-161-0/+26
| | | | | | | | | | | | The functions math-format-hex and math-format-octal were not implemented, yet called, leading to a crash when using hex or octal radix with digit grouping. * test/lisp/calc/calc-tests.el (calc-test-format-radix): New test. * lisp/calc/calc-ext.el: Don't declare non-existing functions. (math--format-integer-fancy): Don't call non-existing functions. * lisp/calc/calc-bin.el (math-format-binary, math-binary-digits): Simplify, fixing 0-padding bug.
* Fix trig simplification crash (bug#33052)Mattias Engdegård2019-07-101-0/+30
| | | | | | | * lisp/calc/calc-alg.el (calcFunc-sec, calcFunc-csc, calcFunc-cot): Check that `math-known-sin' and `math-known-tan' succeeded before using their value in arithmetic. * test/lisp/calc/calc-tests.el (calc-test-trig): Add regression tests.
* * test/lisp/calc/calc-tests.el (test-math-bignum, test-calc-23889): DisableStefan Monnier2019-06-261-6/+6
| | | | Not applicable any more with native bignums.
* Update copyright year to 2019Paul Eggert2019-01-011-1/+1
| | | | Run 'TZ=UTC0 admin/update-copyright $(git ls-files)'.
* * test/lisp/calc/calc-tests.el (calc-imaginary-i): New test.Noam Postavsky2018-08-291-0/+7
|
* Update copyright year to 2018Paul Eggert2018-01-011-1/+1
| | | | Run admin/update-copyright.
* Prefer HTTPS to FTP and HTTP in documentationPaul Eggert2017-09-131-3/+3
| | | | | | | | | | | | | Most of this change is to boilerplate commentary such as license URLs. This change was prompted by ftp://ftp.gnu.org's going-away party, planned for November. Change these FTP URLs to https://ftp.gnu.org instead. Make similar changes for URLs to other organizations moving away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and fsf.org when this works, as this will further help defend against man-in-the-middle attacks (for this part I omitted the MS-DOS and MS-Windows sources and the test tarballs to keep the workload down). HTTPS is not fully working to lists.gnu.org so I left those URLs alone for now.
* test-calc-23889: Skip test on 32-bit platformsTino Calancha2017-05-261-0/+1
| | | | | | | This test fails on some 32-bit platforms as mentioned in https://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00737.html * test/lisp/calc/calc-tests.el (test-calc-23889): Skip when the Lisp integer is not big enough.