Ĉi tiu deponejo arĥiviĝis je 2024-01-28. Vi povas vidi kaj elŝuti dosierojn, sed ne povas puŝi nek raporti problemojn nek tirpeti.
nih/t/string/string.lisp

189 lines
4.3 KiB
Common Lisp
Raw Normal View History

2018-10-30 20:20:57 -05:00
;; ----------------------------------------
;; STRING.LISP
;; ----------------------------------------
;; DATA DECLARATIONS
;; ----------------------------------------
(defvar *a-string*
"Hiya! <3<3<3")
(defvar *multiple-lines*
"Oh, hi, how're you doing?
I hope you responded 'fine'.
Honestly, I can't hear you from here,
Hopefully your day is OK, though. <3")
(defvar *multiple-lines-list*
'("Oh, hi, how're you doing?"
"I hope you responded 'fine'."
"Honestly, I can't hear you from here,"
"Hopefully your day is OK, though. <3"))
(defvar *single-multiple-lines-list*
'("Hiya! <3<3<3"))
(defvar *number-string*
"9")
(defvar *getf-strings-list*
'(("one" 1)("two" 2)("three" 3)("four" iv)("four" 4)))
(defvar *colon-valued-string*
":Date 1999-01-23
This is a QOTD-format colon-value thing!
:Programme QOTDD
From QOTDD, of course =w=
:Spice tasty")
(defvar *misc-strings-list*
'("hi" "hiya" "fhi" "die" "love"))
;; ----------------------------------------
(rt:deftest string-combine-i
(nih:string-combine "hi")
"hi")
(rt:deftest string-combine-ii
(nih:string-combine "hi" "dad" :seperator " ")
"hi dad")
(rt:deftest string-combine-iii
(nih:string-combine "the" "lad" "which" "never" :seperator "-")
"the-lad-which-never")
(rt:deftest string-combine-iv
(nih:string-combine "she" "who" "never" :seperator "^" "lied")
"she^who^never^lied")
(rt:deftest string-combine-v
(nih:string-combine "hi" "dad")
"hidad")
(rt:deftest intern-combine-i
(nih:intern-combine "hi")
hi :internal)
(rt:deftest intern-combine-ii
(nih:intern-combine "hi" "dad" :seperator " ")
|HI DAD| :internal)
(rt:deftest intern-combine-iii
(nih:intern-combine :package "nih" "the" "lad" "which"
"never" :seperator "-")
NIH::the-lad-which-never :internal)
;; notice that keys are interspersed with strings
(rt:deftest intern-combine-iv
(nih:intern-combine "she" "who" "never" :seperator "^" "lied")
she^who^never^lied :internal)
(rt:deftest intern-combine-v
(nih:intern-combine "hi" "dad")
hidad :internal)
;; ----------------------------------------
(rt:deftest pad-string-i
(nih:pad-string *a-string* :prefix "a")
"aHiya! <3<3<3")
(rt:deftest pad-string-ii
(nih:pad-string *a-string* :prefix "a" :suffix "b")
"aHiya! <3<3<3") ;; notice how the :suffix is ignored!
(rt:deftest pad-string-iii
(nih:pad-string *a-string* :suffix "b")
"Hiya! <3<3<3b")
(rt:deftest min-string-length-i
(nih:min-string-length *number-string* 3 :prefix "0")
"009")
(rt:deftest min-string-length-ii
(nih:min-string-length *number-string* 9 :prefix "9")
"999999999")
(rt:deftest min-string-length-iii
(nih:min-string-length "bonege" 10 :suffix "e")
"bonegeeeee")
;; ----------------------------------------
(rt:deftest regex-get
(nih:regex-get ".*hi.*" *misc-strings-list*)
"hi")
(rt:deftest regex-get-all
(nih:regex-get-all ".*hi.*" *misc-strings-list*)
("hi" "hiya" "fhi"))
(rt:deftest regex-remove
(nih:regex-remove ".*hi.*" *misc-strings-list*)
("hiya" "fhi" "die" "love"))
(rt:deftest regex-remove-all
(nih:regex-remove-all ".*hi.*" *misc-strings-list*)
("die" "love"))
;; ----------------------------------------
(rt:deftest nil-string
(nih:nil-string '(1 2 3 nil "hi" nil 3))
(1 2 3 "" "hi" "" 3))
;; ----------------------------------------
(rt:deftest getf-strings-i
(nih:getf-strings *getf-strings-list* "one")
(("one" 1)))
(rt:deftest getf-strings-ii
(nih:getf-strings *getf-strings-list* "two")
(("two" 2)))
(rt:deftest getf-strings-iii
(nih:getf-strings *getf-strings-list* "four")
(("four" iv)("four" 4)))
(rt:deftest getf-string
(nih:getf-string *getf-strings-list* "four")
("four" iv))
;; ----------------------------------------
(rt:deftest get-colon-values-i
(nih:get-colon-values *colon-valued-string*)
(:DATE "1999-01-23" :PROGRAMME "QOTDD" :SPICE "tasty"))
(rt:deftest get-colon-values-ii
(nih:get-colon-values *a-string*)
nil)
(rt:deftest remove-colon-values-i
(nih:remove-colon-values *colon-valued-string*)
"This is a QOTD-format colon-value thing!
From QOTDD, of course =w=")
(rt:deftest remove-colon-values-ii
(nih:remove-colon-values *a-string*)
"Hiya! <3<3<3")