Carp/test/pattern.carp

80 lines
2.8 KiB
Plaintext
Raw Normal View History

2018-03-01 21:19:20 +03:00
(load "Test.carp")
(use-all Pattern Test)
2018-03-01 21:19:20 +03:00
(defn main []
(with-test test
2018-03-03 16:59:12 +03:00
(assert-equal test
#"1234"
&(init "1234")
2018-05-23 11:40:54 +03:00
"init works as expected")
2018-03-03 16:59:12 +03:00
(assert-equal test
"1234"
&(str #"1234")
2018-05-23 11:40:54 +03:00
"str works as expected")
2018-03-03 16:59:12 +03:00
(assert-equal test
"#\"1234\""
&(prn #"1234")
2018-05-23 11:40:54 +03:00
"prn works as expected")
2018-03-03 16:59:12 +03:00
(assert-equal test
true
(= #"1234" #"1234")
2018-05-23 11:40:54 +03:00
"= works as expected on equality")
2018-03-03 16:59:12 +03:00
(assert-equal test
false
(= #"1234" #"235")
2018-05-23 11:40:54 +03:00
"= works as expected on non-equality")
2018-03-01 21:19:20 +03:00
(assert-equal test
3
2018-03-01 21:41:20 +03:00
(find #"\d" " 12")
2018-05-23 11:40:54 +03:00
"find works as expected")
2018-03-01 21:19:20 +03:00
(assert-equal test
-1
2018-03-01 21:41:20 +03:00
(find #"\d" " ")
2018-05-23 11:40:54 +03:00
"find works as expected if not found")
2018-03-01 21:19:20 +03:00
(assert-equal test
&[@"12"]
2018-03-01 21:41:20 +03:00
&(match #"(\d+)" " 12")
2018-05-23 11:40:54 +03:00
"match works as expected")
2018-03-01 21:19:20 +03:00
(assert-equal test
&[]
2018-03-01 21:41:20 +03:00
&(match #"(\d+)" " ")
2018-05-23 11:40:54 +03:00
"match works as expected if not found")
2018-03-01 21:19:20 +03:00
(assert-equal test
true
(matches? #"ana" "banana")
2018-05-23 11:40:54 +03:00
"matches? works as exptected")
2018-03-01 21:19:20 +03:00
(assert-equal test
false
(matches? #"ano" "banana")
2018-05-23 11:40:54 +03:00
"matches? works as exptected II")
2018-03-01 21:41:20 +03:00
(assert-equal test
true
(and* (matches? #"\n" "\n") (matches? #"\n" "\r")
(matches? #"\n" "\r\n"))
2018-05-23 11:40:54 +03:00
"matches? works as exptected on newlines special case")
2018-03-01 21:41:20 +03:00
(assert-equal test
true
(matches? #"\t" "\t")
2018-05-23 11:40:54 +03:00
"matches? works as exptected on tabs special case")
2018-03-01 21:19:20 +03:00
(assert-equal test
&[@"3" @"4"]
2018-03-01 21:41:20 +03:00
(Array.nth &(global-match #"(\d)-(\d)" "1-2 2-3 3-4 4-5") 2)
2018-05-23 11:40:54 +03:00
"global-match works as expected")
2018-03-01 21:19:20 +03:00
(assert-equal test
"1-2"
2018-03-01 21:41:20 +03:00
&(match-str #"(\d)-(\d)" "1-2 2-3 3-4 4-5")
2018-05-23 11:40:54 +03:00
"match-str works as expected")
2018-03-01 21:19:20 +03:00
(assert-equal test
""
&(match-str #"erik" "1-2 2-3 3-4 4-5")
2018-05-23 11:40:54 +03:00
"match-str works as expected II")
2018-03-01 21:19:20 +03:00
(assert-equal test
"sub 2-3 3-4"
2018-03-01 21:41:20 +03:00
&(substitute #"(\d)-(\d)" "1-2 2-3 3-4" "sub" 1)
2018-05-23 11:40:54 +03:00
"substitute works as expected")
2018-03-01 21:19:20 +03:00
(assert-equal test
"sub sub sub"
2018-03-01 21:41:20 +03:00
&(substitute #"(\d)-(\d)" "1-2 2-3 3-4" "sub" -1)
2018-09-13 02:10:17 +03:00
"substitute works as expected if all should be replaces")))