feat(wpcarro/emacs): Package cycle.el
This will likely break a few things since I've changed the names of a few functions to reflect their mutative APIs. Change-Id: If6279999fba50813b68e66d7713c12afd209eb90 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6004 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
This commit is contained in:
parent
65fb82097b
commit
d1ab0c7cbc
10 changed files with 188 additions and 95 deletions
80
users/wpcarro/emacs/pkgs/cycle/tests.el
Normal file
80
users/wpcarro/emacs/pkgs/cycle/tests.el
Normal file
|
@ -0,0 +1,80 @@
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Dependencies
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(require 'ert)
|
||||
(require 'cycle)
|
||||
(require 'dash)
|
||||
(require 'maybe)
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Tests
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(setq xs (cycle-new 1 2 3))
|
||||
|
||||
(ert-deftest cycle-initializes-properly ()
|
||||
(should (= 3 (cycle-count xs)))
|
||||
(should (maybe-nil? (cycle-previous-focus xs)))
|
||||
(should (cycle-contains? 1 xs))
|
||||
(should (cycle-contains? 2 xs))
|
||||
(should (cycle-contains? 3 xs)))
|
||||
|
||||
(ert-deftest cycle-contains? ()
|
||||
;; Returns t or nil
|
||||
(should (eq t (cycle-contains? 1 xs)))
|
||||
(should (eq t (cycle-contains? 2 xs)))
|
||||
(should (eq t (cycle-contains? 3 xs)))
|
||||
(should (eq nil (cycle-contains? 4 xs))))
|
||||
|
||||
(ert-deftest cycle-empty? ()
|
||||
(should (eq t (cycle-empty? (cycle-new))))
|
||||
(should (eq nil (cycle-empty? xs))))
|
||||
|
||||
(ert-deftest cycle-current ()
|
||||
(should (= 1 (cycle-current xs))))
|
||||
|
||||
(ert-deftest cycle-next! ()
|
||||
(let ((xs (cycle-from-list '(1 2 3))))
|
||||
(should (= 2 (cycle-next! xs)))))
|
||||
|
||||
(ert-deftest cycle-prev! ()
|
||||
(let ((xs (cycle-from-list '(1 2 3))))
|
||||
(cycle-next! xs)
|
||||
(should (= 1 (cycle-prev! xs)))))
|
||||
|
||||
(ert-deftest cycle-previous-focus ()
|
||||
(let ((xs (cycle-from-list '(1 2 3))))
|
||||
(cycle-focus-item! 2 xs)
|
||||
(cycle-next! xs)
|
||||
(should (= 2 (cycle-previous-focus xs)))))
|
||||
|
||||
(ert-deftest cycle-jump! ()
|
||||
(let ((xs (cycle-from-list '(1 2 3))))
|
||||
(should (= 1 (->> xs (cycle-jump! 0) cycle-current)))
|
||||
(should (= 2 (->> xs (cycle-jump! 1) cycle-current)))
|
||||
(should (= 3 (->> xs (cycle-jump! 2) cycle-current)))))
|
||||
|
||||
(ert-deftest cycle-focus-previous! ()
|
||||
(let ((xs (cycle-from-list '(1 2 3))))
|
||||
(cycle-focus-item! 2 xs)
|
||||
(cycle-next! xs)
|
||||
(should (= 2 (cycle-previous-focus xs)))
|
||||
(should (= 2 (cycle-focus-previous! xs)))))
|
||||
|
||||
(ert-deftest cycle-append! ()
|
||||
(let ((xs (cycle-from-list '(1 2 3))))
|
||||
(cycle-focus-item! 2 xs)
|
||||
(cycle-append! 4 xs)
|
||||
(should (equal '(1 4 2 3) (cycle-xs xs)))))
|
||||
|
||||
(ert-deftest cycle-remove! ()
|
||||
(let ((xs (cycle-from-list '(1 2 3))))
|
||||
(should (equal '(1 2) (cycle-xs (cycle-remove! 3 xs))))))
|
||||
|
||||
(ert-deftest cycle-misc ()
|
||||
(cycle-focus-item! 3 xs)
|
||||
(cycle-focus-item! 2 xs)
|
||||
(cycle-remove! 1 xs)
|
||||
(should (= 2 (cycle-current xs)))
|
||||
(should (= 3 (cycle-previous-focus xs))))
|
Loading…
Add table
Add a link
Reference in a new issue