[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 41450a8: Less bad permutation generator in regexp-opt test
From: |
Mattias Engdegård |
Subject: |
master 41450a8: Less bad permutation generator in regexp-opt test |
Date: |
Thu, 20 Feb 2020 16:01:38 -0500 (EST) |
branch: master
commit 41450a8ea5a156a34f6641a0768cadb174fa261c
Author: Mattias Engdegård <address@hidden>
Commit: Mattias Engdegård <address@hidden>
Less bad permutation generator in regexp-opt test
* test/lisp/emacs-lisp/regexp-opt-tests.el
(regexp-opt-test--permutation, regexp-opt-test--factorial): Remove.
(regexp-opt-test--permutations): Rewrite.
---
test/lisp/emacs-lisp/regexp-opt-tests.el | 29 ++++++++---------------------
1 file changed, 8 insertions(+), 21 deletions(-)
diff --git a/test/lisp/emacs-lisp/regexp-opt-tests.el
b/test/lisp/emacs-lisp/regexp-opt-tests.el
index 0179ac4..2d316b5 100644
--- a/test/lisp/emacs-lisp/regexp-opt-tests.el
+++ b/test/lisp/emacs-lisp/regexp-opt-tests.el
@@ -25,27 +25,14 @@
(require 'regexp-opt)
-(defun regexp-opt-test--permutation (n list)
- "The Nth permutation of LIST, 0 ≤ N < (length LIST)!."
- (let ((len (length list))
- (perm-list nil))
- (dotimes (i len)
- (let* ((d (- len i))
- (k (mod n d)))
- (push (nth k list) perm-list)
- (setq list (append (butlast list (- (length list) k))
- (nthcdr (1+ k) list)))
- (setq n (/ n d))))
- (nreverse perm-list)))
-
-(defun regexp-opt-test--factorial (n)
- "N!"
- (apply #'* (number-sequence 1 n)))
-
-(defun regexp-opt-test--permutations (list)
- "All permutations of LIST."
- (mapcar (lambda (i) (regexp-opt-test--permutation i list))
- (number-sequence 0 (1- (regexp-opt-test--factorial (length list))))))
+(defun regexp-opt-test--permutations (l)
+ "All permutations of L, assuming no duplicates."
+ (if (cdr l)
+ (mapcan (lambda (x)
+ (mapcar (lambda (p) (cons x p))
+ (perm (remove x l))))
+ l)
+ (list l)))
(ert-deftest regexp-opt-longest-match ()
"Check that the regexp always matches as much as possible."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 41450a8: Less bad permutation generator in regexp-opt test,
Mattias Engdegård <=