From a92e58c804ce5c7770ce735cc7a3cdbed03f2ff5 Mon Sep 17 00:00:00 2001 From: Bob Nystrom Date: Thu, 22 Jan 2015 15:28:54 -0800 Subject: [PATCH] Add tests for string methods that support UTF-8 already. --- test/string/contains.wren | 4 ++++ test/string/{endsWith.wren => ends_with.wren} | 6 +++++- ...endsWith_invalid_arg.wren => ends_with_invalid_arg.wren} | 0 test/string/equality.wren | 4 ++++ test/string/index_of.wren | 5 +++++ test/string/starts_with.wren | 4 ++++ 6 files changed, 22 insertions(+), 1 deletion(-) rename test/string/{endsWith.wren => ends_with.wren} (52%) rename test/string/{endsWith_invalid_arg.wren => ends_with_invalid_arg.wren} (100%) diff --git a/test/string/contains.wren b/test/string/contains.wren index a2f41541..f86bcf58 100644 --- a/test/string/contains.wren +++ b/test/string/contains.wren @@ -4,3 +4,7 @@ IO.print("something".contains("meth")) // expect: true IO.print("something".contains("some")) // expect: true IO.print("something".contains("ing")) // expect: true IO.print("something".contains("math")) // expect: false + +// Non-ASCII. +IO.print("søméthîng".contains("méth")) // expect: true +IO.print("søméthîng".contains("meth")) // expect: false diff --git a/test/string/endsWith.wren b/test/string/ends_with.wren similarity index 52% rename from test/string/endsWith.wren rename to test/string/ends_with.wren index ed9060ba..a55e6350 100644 --- a/test/string/endsWith.wren +++ b/test/string/ends_with.wren @@ -2,4 +2,8 @@ IO.print("abcd".endsWith("cd")) // expect: true IO.print("abcd".endsWith("abcde")) // expect: false IO.print("abcd".endsWith("abcd")) // expect: true IO.print("abcd".endsWith("f")) // expect: false -IO.print("abcd".endsWith("")) // expect: true \ No newline at end of file +IO.print("abcd".endsWith("")) // expect: true + +// Non-ASCII. +IO.print("søméthîng".endsWith("thîng")) // expect: true +IO.print("søméthîng".endsWith("thing")) // expect: false diff --git a/test/string/endsWith_invalid_arg.wren b/test/string/ends_with_invalid_arg.wren similarity index 100% rename from test/string/endsWith_invalid_arg.wren rename to test/string/ends_with_invalid_arg.wren diff --git a/test/string/equality.wren b/test/string/equality.wren index 23dd3f06..92a3aef7 100644 --- a/test/string/equality.wren +++ b/test/string/equality.wren @@ -17,3 +17,7 @@ IO.print("" != "abcd") // expect: true // Not equal to other types. IO.print("1" != 1) // expect: true IO.print("true" != true) // expect: true + +// Non-ASCII. +IO.print("vålue" == "value") // expect: false +IO.print("vålue" == "vålue") // expect: true diff --git a/test/string/index_of.wren b/test/string/index_of.wren index 7f983f58..8ee67978 100644 --- a/test/string/index_of.wren +++ b/test/string/index_of.wren @@ -2,3 +2,8 @@ IO.print("abcd".indexOf("cd")) // expect: 2 IO.print("abcd".indexOf("a")) // expect: 0 IO.print("abcd".indexOf("abcde")) // expect: -1 IO.print("abab".indexOf("ab")) // expect: 0 + +// Non-ASCII. Note that it returns byte indices, not code points. +IO.print("søméஃthîng".indexOf("e")) // expect: -1 +IO.print("søméஃthîng".indexOf("m")) // expect: 3 +IO.print("søméஃthîng".indexOf("thî")) // expect: 9 diff --git a/test/string/starts_with.wren b/test/string/starts_with.wren index cc2879e8..856307e5 100644 --- a/test/string/starts_with.wren +++ b/test/string/starts_with.wren @@ -3,3 +3,7 @@ IO.print("abcd".startsWith("a")) // expect: true IO.print("abcd".startsWith("abcd")) // expect: true IO.print("abcd".startsWith("abcde")) // expect: false IO.print("abcd".startsWith("")) // expect: true + +// Non-ASCII. +IO.print("søméthîng".startsWith("sømé")) // expect: true +IO.print("søméthîng".startsWith("some")) // expect: false