aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMattias EngdegÄrd2020-05-15 14:52:50 +0200
committerMattias EngdegÄrd2020-05-15 20:15:36 +0200
commit60cd6cce55744e8d3ae844e0602c9dd268dc4bc3 (patch)
tree168fe989cb322c487b017f4f4ed293be6a40cb5c /test
parentb76cdd0c1a7978decc0c1044ad23ecc9432c526a (diff)
downloademacs-60cd6cce55744e8d3ae844e0602c9dd268dc4bc3.tar.gz
emacs-60cd6cce55744e8d3ae844e0602c9dd268dc4bc3.zip
Calc: GCD(0,x)=GCD(x,0)=|x|, not x (bug#41279)
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.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/calc/calc-tests.el28
1 files changed, 28 insertions, 0 deletions
diff --git a/test/lisp/calc/calc-tests.el b/test/lisp/calc/calc-tests.el
index 9e36d91ac3e..c8cb97a8bca 100644
--- a/test/lisp/calc/calc-tests.el
+++ b/test/lisp/calc/calc-tests.el
@@ -368,6 +368,34 @@ An existing calc stack is reused, otherwise a new one is created."
368 (vec 0 0 (var a var-a) 0))) 368 (vec 0 0 (var a var-a) 0)))
369 '(neg (var a var-a))))) 369 '(neg (var a var-a)))))
370 370
371(ert-deftest calc-gcd ()
372 (should (equal (calcFunc-gcd 3 4) 1))
373 (should (equal (calcFunc-gcd 12 15) 3))
374 (should (equal (calcFunc-gcd -12 15) 3))
375 (should (equal (calcFunc-gcd 12 -15) 3))
376 (should (equal (calcFunc-gcd -12 -15) 3))
377 (should (equal (calcFunc-gcd 0 5) 5))
378 (should (equal (calcFunc-gcd 5 0) 5))
379 (should (equal (calcFunc-gcd 0 -5) 5))
380 (should (equal (calcFunc-gcd -5 0) 5))
381 (should (equal (calcFunc-gcd 0 0) 0))
382 (should (equal (calcFunc-gcd 0 '(var x var-x))
383 '(calcFunc-abs (var x var-x))))
384 (should (equal (calcFunc-gcd '(var x var-x) 0)
385 '(calcFunc-abs (var x var-x)))))
386
387(ert-deftest calc-sum-gcd ()
388 ;; sum(gcd(0,n),n,-1,-1)
389 (should (equal (math-simplify '(calcFunc-sum (calcFunc-gcd 0 (var n var-n))
390 (var n var-n) -1 -1))
391 1))
392 ;; sum(sum(gcd(n,k),k,-1,1),n,-1,1)
393 (should (equal (math-simplify
394 '(calcFunc-sum
395 (calcFunc-sum (calcFunc-gcd (var n var-n) (var k var-k))
396 (var k var-k) -1 1)
397 (var n var-n) -1 1))
398 8)))
371 399
372(provide 'calc-tests) 400(provide 'calc-tests)
373;;; calc-tests.el ends here 401;;; calc-tests.el ends here