diff options
author | shayan javani <massivefermion@protonmail.com> | 2023-03-14 16:38:43 +0330 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-14 13:08:43 +0000 |
commit | a4805b21cf42241cc2951947231e76679bd99d07 (patch) | |
tree | 33524eed2216e1dcf90f19d88fdd511cadd3aef5 /test | |
parent | a37d5dddbb3a29b896e5d5351830223c9cd9e933 (diff) | |
download | gleam_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.gleam | 44 |
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([]) } |