Files
n8n-openai-adapter/test/elixir/regex_test.exs
T
José Valim da67254ccc Do not remove blank strings on strip, closes #282
THe previous behavior was wrong, the current behavior
matches Ruby and Perl.
2012-05-06 13:21:12 +02:00

141 lines
4.3 KiB
Elixir

Code.require_file "../test_helper", __FILE__
defmodule Regex.BinaryTest do
use ExUnit.Case
test :compile do
assert is_record(Regex.compile("foo"), Regex)
assert is_regex(Regex.compile("foo"))
end
test :source do
assert Regex.source(Regex.compile("foo")) == "foo"
end
test :opts do
assert Regex.opts(Regex.compile("foo", "u")) == "u"
end
test :match? do
assert Regex.match?(%r/foo/, "foo")
assert !Regex.match?(%r/foo/, "FOO")
assert Regex.match?(%r/foo/i, "FOO")
assert Regex.match?(%r/\d{1,3}/i, "123")
assert Regex.match?(%r/foo/, "afooa")
assert !Regex.match?(%r/^foo/, "afooa")
assert Regex.match?(%r/^foo/, "fooa")
assert !Regex.match?(%r/foo$/, "afooa")
assert Regex.match?(%r/foo$/, "afoo")
end
test :run do
assert Regex.run(%r"c(d)", "abcd") == ["cd", "d"]
assert Regex.run(%r"e", "abcd") == nil
end
test :indexes do
assert Regex.indexes(%r"c(d)", "abcd") == [{2,2},{3,1}]
assert Regex.indexes(%r"e", "abcd") == nil
end
test :scan do
assert Regex.scan(%r"c(d|e)", "abcd abce") == [["d"], ["e"]]
assert Regex.scan(%r"c(?:d|e)", "abcd abce") == ["cd", "ce"]
assert Regex.scan(%r"e", "abcd") == []
end
test :split do
assert Regex.split(%r" ", "foo bar baz") == ["foo", "bar", "baz"]
assert Regex.split(%r" ", "foo bar baz", 2) == ["foo", "bar baz"]
assert Regex.split(%r"\s", "foobar") == ["foobar"]
assert Regex.split(%r" ", "foo bar baz") == ["foo", "bar", "baz"]
assert Regex.split(%r"=", "key=") == ["key", ""]
assert Regex.split(%r"=", "=value") == ["", "value"]
end
test :replace do
assert Regex.replace(%r(d), "abc", "d") == "abc"
assert Regex.replace(%r(b), "abc", "d") == "adc"
assert Regex.replace(%r(b), "abc", "[&]") == "a[b]c"
assert Regex.replace(%r(b), "abc", "[\\&]") == "a[&]c"
assert Regex.replace(%r[(b)], "abc", "[\\1]") == "a[b]c"
end
test :replace_all do
assert Regex.replace_all(%r(d), "abcbe", "d") == "abcbe"
assert Regex.replace_all(%r(b), "abcbe", "d") == "adcde"
assert Regex.replace_all(%r(b), "abcbe", "[&]") == "a[b]c[b]e"
assert Regex.replace_all(%r(b), "abcbe", "[\\&]") == "a[&]c[&]e"
assert Regex.replace_all(%r[(b)], "abcbe", "[\\1]") == "a[b]c[b]e"
end
end
defmodule Regex.ListTest do
use ExUnit.Case
test :compile do
assert is_record(Regex.compile('foo'), Regex)
assert is_regex(Regex.compile('foo'))
end
test :source do
assert Regex.source(Regex.compile('foo')) == "foo"
end
test :opts do
assert Regex.opts(Regex.compile('foo', 'u')) == "u"
end
test :match? do
assert Regex.match?(%r(foo), 'foo')
assert !Regex.match?(%r(foo), 'FOO')
assert Regex.match?(%r(foo)i, 'FOO')
assert Regex.match?(%r/\d{1,3}/i, '123')
assert Regex.match?(%r(foo), 'afooa')
assert !Regex.match?(%r(^foo), 'afooa')
assert Regex.match?(%r(^foo), 'fooa')
assert !Regex.match?(%r(foo$), 'afooa')
assert Regex.match?(%r(foo$), 'afoo')
end
test :run do
assert Regex.run(%r'c(d)', 'abcd') == ['cd', 'd']
assert Regex.run(%r'e', 'abcd') == nil
end
test :indexes do
assert Regex.indexes(%r'c(d)', 'abcd') == [{2,2},{3,1}]
assert Regex.indexes(%r'e', 'abcd') == nil
end
test :scan do
assert Regex.scan(%r'c(d|e)', 'abcd abce') == [['d'], ['e']]
assert Regex.scan(%r'c(?:d|e)', 'abcd abce') == ['cd', 'ce']
assert Regex.scan(%r'e', 'abcd') == []
end
test :split do
assert Regex.split(%r' ', 'foo bar baz') == ['foo', 'bar', 'baz']
assert Regex.split(%r' ', 'foo bar baz', 2) == ['foo', 'bar baz']
assert Regex.split(%r'\s', 'foobar') == ['foobar']
end
test :replace do
assert Regex.replace(%r(d), 'abc', 'd') == 'abc'
assert Regex.replace(%r(b), 'abc', 'd') == 'adc'
assert Regex.replace(%r(b), 'abc', '[&]') == 'a[b]c'
assert Regex.replace(%r(b), 'abc', '[\\&]') == 'a[&]c'
assert Regex.replace(%r[(b)], 'abc', '[\\1]') == 'a[b]c'
end
test :replace_all do
assert Regex.replace_all(%r(d), 'abcbe', 'd') == 'abcbe'
assert Regex.replace_all(%r(b), 'abcbe', 'd') == 'adcde'
assert Regex.replace_all(%r(b), 'abcbe', '[&]') == 'a[b]c[b]e'
assert Regex.replace_all(%r(b), 'abcbe', '[\\&]') == 'a[&]c[&]e'
assert Regex.replace_all(%r[(b)], 'abcbe', '[\\1]') == 'a[b]c[b]e'
end
end