aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorshayan javani <massivefermion@protonmail.com>2023-03-14 16:38:43 +0330
committerGitHub <noreply@github.com>2023-03-14 13:08:43 +0000
commita4805b21cf42241cc2951947231e76679bd99d07 (patch)
tree33524eed2216e1dcf90f19d88fdd511cadd3aef5 /test
parenta37d5dddbb3a29b896e5d5351830223c9cd9e933 (diff)
downloadgleam_stdlib-a4805b21cf42241cc2951947231e76679bd99d07.tar.gz
gleam_stdlib-a4805b21cf42241cc2951947231e76679bd99d07.zip
make `regex.scan`'s behavior consistent across targets (#423)
Diffstat (limited to 'test')
-rw-r--r--test/gleam/regex_test.gleam44
1 files changed, 44 insertions, 0 deletions
diff --git a/test/gleam/regex_test.gleam b/test/gleam/regex_test.gleam
index 87f2aab..eb84013 100644
--- a/test/gleam/regex_test.gleam
+++ b/test/gleam/regex_test.gleam
@@ -84,4 +84,48 @@ pub fn scan_test() {
regex.scan(re, "你好 42 世界")
|> should.equal([Match(content: "42", submatches: [Some("42")])])
+
+ let assert Ok(re) = regex.from_string("([+|\\-])?(\\d+)(\\w+)?")
+ regex.scan(re, "+36kg")
+ |> should.equal([
+ Match(content: "+36kg", submatches: [Some("+"), Some("36"), Some("kg")]),
+ ])
+
+ regex.scan(re, "36kg")
+ |> should.equal([
+ Match(content: "36kg", submatches: [None, Some("36"), Some("kg")]),
+ ])
+
+ regex.scan(re, "36")
+ |> should.equal([Match(content: "36", submatches: [None, Some("36")])])
+
+ regex.scan(re, "-36")
+ |> should.equal([Match(content: "-36", submatches: [Some("-"), Some("36")])])
+
+ regex.scan(re, "-kg")
+ |> should.equal([])
+
+ let assert Ok(re) =
+ regex.from_string("var\\s*(\\w+)\\s*(int|string)?\\s*=\\s*(.*)")
+ regex.scan(re, "var age int = 32")
+ |> should.equal([
+ Match(
+ content: "var age int = 32",
+ submatches: [Some("age"), Some("int"), Some("32")],
+ ),
+ ])
+
+ regex.scan(re, "var age = 32")
+ |> should.equal([
+ Match(content: "var age = 32", submatches: [Some("age"), None, Some("32")]),
+ ])
+
+ let assert Ok(re) = regex.from_string("let (\\w+) = (\\w+)")
+ regex.scan(re, "let age = 32")
+ |> should.equal([
+ Match(content: "let age = 32", submatches: [Some("age"), Some("32")]),
+ ])
+
+ regex.scan(re, "const age = 32")
+ |> should.equal([])
}