Repository URL to install this package:
|
Version:
0.13.1 ▾
|
;; Tests for class `rst-Stn'
(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" nil 0))
(ado-A (rst-Ado-new-simple ?=))
(ttl-A (rst-Ttl-new ado-A '(20 37 nil nil 20 28 29 37) 0
"Header A" nil 1))
(ttl-B (rst-Ttl-new ado-A '(39 56 nil nil 39 47 48 56) 0
"Header B" nil 1))
(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" nil 2))
(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" nil 3))
(ttl-C (rst-Ttl-new ado-A '(126 143 nil nil 126 134 135 143) 0
"Header C" nil 1))
(ttl-Ca nil)
(ttl-Ca1 (rst-Ttl-new ado-Ba1 '(145 182 nil nil 145 163 164 182) 0
"Missing node C.a.1" nil 3)))
(rst-Ttl-evaluate-hdr ttl-T)
(rst-Ttl-evaluate-hdr ttl-A)
(rst-Ttl-evaluate-hdr ttl-B)
(rst-Ttl-evaluate-hdr ttl-Ba)
(rst-Ttl-evaluate-hdr ttl-Ba1)
(rst-Ttl-evaluate-hdr ttl-C)
(rst-Ttl-evaluate-hdr ttl-Ca1)
(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-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" nil 0))
(ado-A (rst-Ado-new-simple ?=))
(ttl-A (rst-Ttl-new ado-A '(20 37 nil nil 20 28 29 37) 0
"Header A" nil 1))
(ttl-B (rst-Ttl-new ado-A '(39 56 nil nil 39 47 48 56) 0
"Header B" nil 1))
(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" nil 2))
(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" nil 3))
(ttl-C (rst-Ttl-new ado-A '(126 143 nil nil 126 134 135 143) 0
"Header C" nil 1))
(ttl-Ca nil)
(ttl-Ca1 (rst-Ttl-new ado-Ba1 '(145 182 nil nil 145 163 164 182) 0
"Missing node C.a.1" nil 3)))
(rst-Ttl-evaluate-hdr ttl-T)
(rst-Ttl-evaluate-hdr ttl-A)
(rst-Ttl-evaluate-hdr ttl-B)
(rst-Ttl-evaluate-hdr ttl-Ba)
(rst-Ttl-evaluate-hdr ttl-Ba1)
(rst-Ttl-evaluate-hdr ttl-C)
(rst-Ttl-evaluate-hdr ttl-Ca1)
(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" nil 0))
(ado-A (rst-Ado-new-simple ?=))
(ttl-A (rst-Ttl-new ado-A '(20 37 nil nil 20 28 29 37) 0
"Header A" nil 1))
(ttl-B (rst-Ttl-new ado-A '(39 56 nil nil 39 47 48 56) 0
"Header B" nil 1))
(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" nil 2))
(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" nil 3))
(ttl-C (rst-Ttl-new ado-A '(126 143 nil nil 126 134 135 143) 0
"Header C" nil 1))
(ttl-Ca nil)
(ttl-Ca1 (rst-Ttl-new ado-Ba1 '(145 182 nil nil 145 163 164 182) 0
"Missing node C.a.1" nil 3)))
(rst-Ttl-evaluate-hdr ttl-T)
(rst-Ttl-evaluate-hdr ttl-A)
(rst-Ttl-evaluate-hdr ttl-B)
(rst-Ttl-evaluate-hdr ttl-Ba)
(rst-Ttl-evaluate-hdr ttl-Ba1)
(rst-Ttl-evaluate-hdr ttl-C)
(rst-Ttl-evaluate-hdr ttl-Ca1)
(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" nil 0)))
(rst-Ttl-evaluate-hdr ttl-T)
(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))
)))