You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
254 lines
6.5 KiB
254 lines
6.5 KiB
7 years ago
|
;; Tests for class `rst-Stn' -*- lexical-binding: t -*-
|
||
|
|
||
|
(add-to-list 'load-path ".")
|
||
|
(load "init" nil t)
|
||
|
(init-rst-ert nil)
|
||
|
|
||
|
(ert-deftest rst-Stn-new ()
|
||
|
"Test `rst-Stn-new'."
|
||
|
(let* (;; "
|
||
|
;; =====
|
||
|
;; Title
|
||
|
;; =====
|
||
|
;;
|
||
|
;; Header A
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Header B
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Subheader B.a
|
||
|
;; -------------
|
||
|
;;
|
||
|
;; SubSubheader B.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;;
|
||
|
;; Header C
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Missing node C.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;; "
|
||
|
(ado-T (rst-Ado-new-over-and-under ?=))
|
||
|
(ttl-T (rst-Ttl--new ado-T '(1 18 1 6 7 12 13 18) 0
|
||
|
"Title"))
|
||
|
(ado-A (rst-Ado-new-simple ?=))
|
||
|
(ttl-A (rst-Ttl--new ado-A '(20 37 nil nil 20 28 29 37) 0
|
||
|
"Header A"))
|
||
|
(ttl-B (rst-Ttl--new ado-A '(39 56 nil nil 39 47 48 56) 0
|
||
|
"Header B"))
|
||
|
(ado-Ba (rst-Ado-new-simple ?-))
|
||
|
(ttl-Ba (rst-Ttl--new ado-Ba '(58 85 nil nil 58 71 72 85) 0
|
||
|
"Subheader B.a"))
|
||
|
(ado-Ba1 (rst-Ado-new-simple ?~))
|
||
|
(ttl-Ba1 (rst-Ttl--new ado-Ba1 '(87 124 nil nil 87 105 106 124) 0
|
||
|
"SubSubheader B.a.1"))
|
||
|
(ttl-C (rst-Ttl--new ado-A '(126 143 nil nil 126 134 135 143) 0
|
||
|
"Header C"))
|
||
|
(ttl-Ca nil)
|
||
|
(ttl-Ca1 (rst-Ttl--new ado-Ba1 '(145 182 nil nil 145 163 164 182) 0
|
||
|
"Missing node C.a.1")))
|
||
|
|
||
|
(should-error (rst-Stn-new "" 0 nil)
|
||
|
:type 'wrong-type-argument)
|
||
|
(should-error (rst-Stn-new nil "0" nil)
|
||
|
:type 'wrong-type-argument)
|
||
|
(should-error (rst-Stn-new nil 0 "")
|
||
|
:type 'wrong-type-argument)
|
||
|
(should-error (rst-Stn-new nil 0 '(1))
|
||
|
:type 'wrong-type-argument)
|
||
|
|
||
|
(should-error (rst-Stn-new nil 0 nil)
|
||
|
:type 'args-out-of-range)
|
||
|
|
||
|
(should-error (rst-Stn-new ttl-T -1 nil)
|
||
|
:type 'args-out-of-range)
|
||
|
|
||
|
(should (rst-Stn-p
|
||
|
(rst-Stn-new ttl-T 0 nil)))
|
||
|
(should (rst-Stn-p
|
||
|
(rst-Stn-new
|
||
|
ttl-T 0
|
||
|
(list (rst-Stn-new ttl-A 1 nil)))))
|
||
|
(should (rst-Stn-p
|
||
|
(rst-Stn-new
|
||
|
ttl-T 0
|
||
|
(list (rst-Stn-new ttl-A 1 nil)
|
||
|
(rst-Stn-new ttl-B 1 nil)
|
||
|
(rst-Stn-new ttl-C 1 nil)))))
|
||
|
(should (rst-Stn-p
|
||
|
(rst-Stn-new
|
||
|
ttl-T 0
|
||
|
(list (rst-Stn-new ttl-A 1 nil)
|
||
|
(rst-Stn-new
|
||
|
ttl-B 1
|
||
|
(list (rst-Stn-new
|
||
|
ttl-Ba 2
|
||
|
(list (rst-Stn-new ttl-Ba1 3 nil)))))
|
||
|
(rst-Stn-new
|
||
|
ttl-C 1
|
||
|
(list (rst-Stn-new
|
||
|
ttl-Ca 2
|
||
|
(list (rst-Stn-new ttl-Ca1 3 nil)))))))))
|
||
|
))
|
||
|
|
||
|
(ert-deftest rst-Stn-get-title-beginning ()
|
||
|
"Test `rst-Stn-get-title-beginning'."
|
||
|
(let* (;; "
|
||
|
;; =====
|
||
|
;; Title
|
||
|
;; =====
|
||
|
;;
|
||
|
;; Header A
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Header B
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Subheader B.a
|
||
|
;; -------------
|
||
|
;;
|
||
|
;; SubSubheader B.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;;
|
||
|
;; Header C
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Missing node C.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;; "
|
||
|
(ado-T (rst-Ado-new-over-and-under ?=))
|
||
|
(ttl-T (rst-Ttl--new ado-T '(1 18 1 6 7 12 13 18) 0
|
||
|
"Title"))
|
||
|
(ado-A (rst-Ado-new-simple ?=))
|
||
|
(ttl-A (rst-Ttl--new ado-A '(20 37 nil nil 20 28 29 37) 0
|
||
|
"Header A"))
|
||
|
(ttl-B (rst-Ttl--new ado-A '(39 56 nil nil 39 47 48 56) 0
|
||
|
"Header B"))
|
||
|
(ado-Ba (rst-Ado-new-simple ?-))
|
||
|
(ttl-Ba (rst-Ttl--new ado-Ba '(58 85 nil nil 58 71 72 85) 0
|
||
|
"Subheader B.a"))
|
||
|
(ado-Ba1 (rst-Ado-new-simple ?~))
|
||
|
(ttl-Ba1 (rst-Ttl--new ado-Ba1 '(87 124 nil nil 87 105 106 124) 0
|
||
|
"SubSubheader B.a.1"))
|
||
|
(ttl-C (rst-Ttl--new ado-A '(126 143 nil nil 126 134 135 143) 0
|
||
|
"Header C"))
|
||
|
(ttl-Ca nil)
|
||
|
(ttl-Ca1 (rst-Ttl--new ado-Ba1 '(145 182 nil nil 145 163 164 182) 0
|
||
|
"Missing node C.a.1")))
|
||
|
(let* ((stn-Ca (rst-Stn-new
|
||
|
ttl-Ca 2
|
||
|
(list (rst-Stn-new ttl-Ca1 3 nil))))
|
||
|
(stn-C (rst-Stn-new
|
||
|
ttl-C 1
|
||
|
(list stn-Ca)))
|
||
|
(stn-A (rst-Stn-new ttl-A 1 nil))
|
||
|
(stn-B (rst-Stn-new
|
||
|
ttl-B 1
|
||
|
(list (rst-Stn-new
|
||
|
ttl-Ba 2
|
||
|
(list (rst-Stn-new ttl-Ba1 3 nil))))))
|
||
|
(stn-T (rst-Stn-new
|
||
|
ttl-T 0
|
||
|
(list stn-A
|
||
|
stn-B
|
||
|
stn-C))))
|
||
|
(should-error (rst-Stn-get-title-beginning "")
|
||
|
:type 'wrong-type-argument)
|
||
|
|
||
|
(should (equal (rst-Stn-get-title-beginning stn-T) 7))
|
||
|
(should (equal (rst-Stn-get-title-beginning stn-B) 39))
|
||
|
(should (equal (rst-Stn-get-title-beginning stn-A) 20))
|
||
|
(should (equal (rst-Stn-get-title-beginning stn-C) 126))
|
||
|
(should (equal (rst-Stn-get-title-beginning stn-Ca) 145))
|
||
|
)))
|
||
|
|
||
|
(ert-deftest rst-Stn-get-text ()
|
||
|
"Test `rst-Stn-get-text'."
|
||
|
(let* (;; "
|
||
|
;; =====
|
||
|
;; Title
|
||
|
;; =====
|
||
|
;;
|
||
|
;; Header A
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Header B
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Subheader B.a
|
||
|
;; -------------
|
||
|
;;
|
||
|
;; SubSubheader B.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;;
|
||
|
;; Header C
|
||
|
;; ========
|
||
|
;;
|
||
|
;; Missing node C.a.1
|
||
|
;; ~~~~~~~~~~~~~~~~~~
|
||
|
;; "
|
||
|
(ado-T (rst-Ado-new-over-and-under ?=))
|
||
|
(ttl-T (rst-Ttl--new ado-T '(1 18 1 6 7 12 13 18) 0
|
||
|
"Title"))
|
||
|
(ado-A (rst-Ado-new-simple ?=))
|
||
|
(ttl-A (rst-Ttl--new ado-A '(20 37 nil nil 20 28 29 37) 0
|
||
|
"Header A"))
|
||
|
(ttl-B (rst-Ttl--new ado-A '(39 56 nil nil 39 47 48 56) 0
|
||
|
"Header B"))
|
||
|
(ado-Ba (rst-Ado-new-simple ?-))
|
||
|
(ttl-Ba (rst-Ttl--new ado-Ba '(58 85 nil nil 58 71 72 85) 0
|
||
|
"Subheader B.a"))
|
||
|
(ado-Ba1 (rst-Ado-new-simple ?~))
|
||
|
(ttl-Ba1 (rst-Ttl--new ado-Ba1 '(87 124 nil nil 87 105 106 124) 0
|
||
|
"SubSubheader B.a.1"))
|
||
|
(ttl-C (rst-Ttl--new ado-A '(126 143 nil nil 126 134 135 143) 0
|
||
|
"Header C"))
|
||
|
(ttl-Ca nil)
|
||
|
(ttl-Ca1 (rst-Ttl--new ado-Ba1 '(145 182 nil nil 145 163 164 182) 0
|
||
|
"Missing node C.a.1")))
|
||
|
(let* ((stn-Ca (rst-Stn-new
|
||
|
ttl-Ca 2
|
||
|
(list (rst-Stn-new ttl-Ca1 3 nil))))
|
||
|
(stn-C (rst-Stn-new
|
||
|
ttl-C 1
|
||
|
(list stn-Ca)))
|
||
|
(stn-A (rst-Stn-new ttl-A 1 nil))
|
||
|
(stn-B (rst-Stn-new
|
||
|
ttl-B 1
|
||
|
(list (rst-Stn-new
|
||
|
ttl-Ba 2
|
||
|
(list (rst-Stn-new ttl-Ba1 3 nil))))))
|
||
|
(stn-T (rst-Stn-new
|
||
|
ttl-T 0
|
||
|
(list stn-A
|
||
|
stn-B
|
||
|
stn-C))))
|
||
|
(should-error (rst-Stn-get-text "")
|
||
|
:type 'wrong-type-argument)
|
||
|
|
||
|
(should (equal (rst-Stn-get-text stn-T) "Title"))
|
||
|
(should (equal (rst-Stn-get-text stn-B "Default") "Header B"))
|
||
|
(should (equal (rst-Stn-get-text stn-Ca "Default") "Default"))
|
||
|
(should (rst-Stn-get-text stn-Ca))
|
||
|
)))
|
||
|
|
||
|
(ert-deftest rst-Stn-is-top ()
|
||
|
"Test `rst-Stn-is-top'."
|
||
|
(let* (;; "
|
||
|
;; =====
|
||
|
;; Title
|
||
|
;; =====
|
||
|
;; "
|
||
|
(ado-T (rst-Ado-new-over-and-under ?=))
|
||
|
(ttl-T (rst-Ttl--new ado-T '(1 18 1 6 7 12 13 18) 0
|
||
|
"Title")))
|
||
|
(let ((stn-T (rst-Stn-new ttl-T 0 nil)))
|
||
|
(should-error (rst-Stn-is-top nil)
|
||
|
:type 'wrong-type-argument)
|
||
|
(should (rst-Stn-is-top (rst-Stn-new
|
||
|
nil -1
|
||
|
(list stn-T))))
|
||
|
(should-not (rst-Stn-is-top stn-T))
|
||
|
)))
|