aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Mark <michael.mark@oit.edu>2024-05-24 16:51:06 -0700
committerLouis Pilfold <louis@lpil.uk>2024-05-29 12:26:22 +0100
commit26c7f2e0968906d4bf77efdea9e6c0389df10bee (patch)
treef2f687fc15e87f674b617634db80e49394785be0 /test
parent8f22ee767ecdc54061db850584deae15e348abd8 (diff)
downloadgleam_stdlib-26c7f2e0968906d4bf77efdea9e6c0389df10bee.tar.gz
gleam_stdlib-26c7f2e0968906d4bf77efdea9e6c0389df10bee.zip
Generalized escape handling for all chars < 32
Also some minor improvements like more tests, correcting codes in format \u{xx} to \u{xxxx}, and escaping code 127. Now, all characters with an ASCII code of less than 32 are automatically converted into \u{xxxx} syntax in string.inspect. Now, the only way that string.inspect will show two strings as identical when they're not is if they use copycat unicodes, such as greek question mark or accent modifiers.
Diffstat (limited to 'test')
-rw-r--r--test/gleam/string_test.gleam48
1 files changed, 30 insertions, 18 deletions
diff --git a/test/gleam/string_test.gleam b/test/gleam/string_test.gleam
index b21b213..9a1a315 100644
--- a/test/gleam/string_test.gleam
+++ b/test/gleam/string_test.gleam
@@ -688,14 +688,26 @@ pub fn inspect_test() {
string.inspect("\f")
|> should.equal("\"\\f\"")
- string.inspect("\u{08}")
- |> should.equal("\"\\b\"")
+ string.inspect("\u{0008}")
+ |> should.equal("\"\\u{0008}\"")
- string.inspect("\u{0B}")
- |> should.equal("\"\\v\"")
+ string.inspect("\u{000B}")
+ |> should.equal("\"\\u{000B}\"")
- string.inspect("\u{1B}")
- |> should.equal("\"\\e\"")
+ string.inspect("\u{001B}")
+ |> should.equal("\"\\u{001B}\"")
+
+ string.inspect("\u{0015}")
+ |> should.equal("\"\\u{0015}\"")
+
+ string.inspect("\u{001F}")
+ |> should.equal("\"\\u{001F}\"")
+
+ string.inspect("\u{0020}")
+ |> should.equal("\" \"")
+
+ string.inspect("\u{007F}")
+ |> should.equal("\"\\u{007F}\"")
string.inspect("\r\r")
|> should.equal("\"\\r\\r\"")
@@ -730,23 +742,23 @@ pub fn inspect_test() {
string.inspect("\f\t")
|> should.equal("\"\\f\\t\"")
- string.inspect("\t\u{08}")
- |> should.equal("\"\\t\\b\"")
+ string.inspect("\t\u{0008}")
+ |> should.equal("\"\\t\\u{0008}\"")
- string.inspect("\u{08}\t")
- |> should.equal("\"\\b\\t\"")
+ string.inspect("\u{0008}\t")
+ |> should.equal("\"\\u{0008}\\t\"")
- string.inspect("\t\u{0B}")
- |> should.equal("\"\\t\\v\"")
+ string.inspect("\t\u{000B}")
+ |> should.equal("\"\\t\\u{000B}\"")
- string.inspect("\u{0B}\t")
- |> should.equal("\"\\v\\t\"")
+ string.inspect("\u{000B}\t")
+ |> should.equal("\"\\u{000B}\\t\"")
- string.inspect("\t\u{1B}")
- |> should.equal("\"\\t\\e\"")
+ string.inspect("\t\u{001B}")
+ |> should.equal("\"\\t\\u{001B}\"")
- string.inspect("\u{1B}\t")
- |> should.equal("\"\\e\\t\"")
+ string.inspect("\u{001B}\t")
+ |> should.equal("\"\\u{001B}\\t\"")
string.inspect("\\\n\\")
|> should.equal("\"\\\\\\n\\\\\"")