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.
		
		
		
		
		
			
		
			
				
					
					
						
							253 lines
						
					
					
						
							6.5 KiB
						
					
					
				
			
		
		
	
	
							253 lines
						
					
					
						
							6.5 KiB
						
					
					
				| ;; 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)) | |
|       )))
 | |
| 
 |