Carp/test/pattern.carp

99 lines
2.9 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")
"init works as expected"
)
(assert-equal test
"1234"
&(str #"1234")
"str works as expected"
)
(assert-equal test
"#\"1234\""
&(prn #"1234")
"prn works as expected"
)
(assert-equal test
true
(= #"1234" #"1234")
"= works as expected on equality"
)
(assert-equal test
false
(= #"1234" #"235")
"= 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-03-01 21:19:20 +03:00
"find works as expected"
)
(assert-equal test
-1
2018-03-01 21:41:20 +03:00
(find #"\d" " ")
2018-03-01 21:19:20 +03:00
"find works as expected if not found"
)
(assert-equal test
&[@"12"]
2018-03-01 21:41:20 +03:00
&(match #"(\d+)" " 12")
2018-03-01 21:19:20 +03:00
"match works as expected"
)
(assert-equal test
&[]
2018-03-01 21:41:20 +03:00
&(match #"(\d+)" " ")
2018-03-01 21:19:20 +03:00
"match works as expected if not found"
)
(assert-equal test
true
(matches? #"ana" "banana")
"matches? works as exptected"
)
(assert-equal test
false
(matches? #"ano" "banana")
"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"))
"matches? works as exptected on newlines special case"
)
(assert-equal test
true
(matches? #"\t" "\t")
"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-03-01 21:19:20 +03:00
"global-match works as expected"
)
(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-03-01 21:19:20 +03:00
"match-str works as expected"
)
(assert-equal test
""
&(match-str #"erik" "1-2 2-3 3-4 4-5")
"match-str works as expected II"
)
(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-03-01 21:19:20 +03:00
"substitute works as expected"
)
(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-03-01 21:19:20 +03:00
"substitute works as expected if all should be replaces"
)
(print-test-results test)))