diff options
author | William Carroll <wpcarro@gmail.com> | 2022-07-30T03·56-0700 |
---|---|---|
committer | wpcarro <wpcarro@gmail.com> | 2022-07-30T04·23+0000 |
commit | 65fb82097bc35a8b06da6b8a1c4b36c0c459932d (patch) | |
tree | 2bf32e5924dc1e3e4a54c4551117f8fb0986c531 /users/wpcarro/emacs/pkgs/list/list.el | |
parent | 8989dad5ed88d55e24d5f3047597053232068c11 (diff) |
fix(wpcarro/emacs): Fix list.el tests r/4348
I was getting false-positive ERT test results because I forgot to use the `should` macro in my assertions. I discovered this when debugging a subtle bug in cycle.el that depends on `list-contains?` return `t` or `nil` instead of truthy or falsy values. Change-Id: Ibbf89fd1c4f50f86d5efcaa4cd87280b97e111ce Reviewed-on: https://cl.tvl.fyi/c/depot/+/6003 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
Diffstat (limited to 'users/wpcarro/emacs/pkgs/list/list.el')
-rw-r--r-- | users/wpcarro/emacs/pkgs/list/list.el | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/users/wpcarro/emacs/pkgs/list/list.el b/users/wpcarro/emacs/pkgs/list/list.el index 836eee89ebf3..03382991e035 100644 --- a/users/wpcarro/emacs/pkgs/list/list.el +++ b/users/wpcarro/emacs/pkgs/list/list.el @@ -53,6 +53,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (require 'dash) +(require 'maybe) (require 'set) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -73,7 +74,7 @@ "" (list-reduce (list-first xs) (lambda (x acc) - (string-concat acc joint x)) + (format "%s%s%s" acc joint x)) (list-tail xs)))) (defun list-length (xs) @@ -151,12 +152,13 @@ ;; TODO: Add tests. (defun list-dedupe-adjacent (xs) "Return XS without adjacent duplicates." - (list-reduce (list (list-first xs)) - (lambda (x acc) - (if (equal x (list-first acc)) - acc - (list-cons x acc))) - xs)) + (list-reverse + (list-reduce (list (list-first xs)) + (lambda (x acc) + (if (equal x (list-first acc)) + acc + (list-cons x acc))) + xs))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Predicates @@ -182,7 +184,7 @@ Be leery of using this with things like alists. Many data structures in Elisp (defun list-contains? (x xs) "Return t if X is in XS using `equal'." - (-contains? xs x)) + (maybe-some? (-contains? xs x))) (defun list-xs-distinct-by? (f xs) "Return t if all elements in XS are distinct after applying F to each." |