From 2ab91ce94015f69242c8cf9e8e733b0d733657e3 Mon Sep 17 00:00:00 2001 From: Martin Nilsson <nilsson@opera.com> Date: Tue, 26 Aug 2014 16:49:59 +0200 Subject: [PATCH] Tests for String.Buffer []= and cut. --- lib/modules/String.pmod/testsuite.in | 112 +++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) diff --git a/lib/modules/String.pmod/testsuite.in b/lib/modules/String.pmod/testsuite.in index 1382a0d53c..aee651dbc1 100644 --- a/lib/modules/String.pmod/testsuite.in +++ b/lib/modules/String.pmod/testsuite.in @@ -105,6 +105,118 @@ test_do([[ return (string) b; ]]) +test_any([[ + String.Buffer b = String.Buffer(); + b->add("abc"); + return b[1]; +]], 98) +test_any([[ + String.Buffer b = String.Buffer(); + b->add("abc"); + return b[-1]; +]], 99) +test_runtime_error([[ + String.Buffer b = String.Buffer(); + b->add("abc"); + return b[3]; +]]) +test_any([[ + String.Buffer b = String.Buffer(); + b->add("a\u0100a"); + return b[1]; +]], 256) +test_any([[ + String.Buffer b = String.Buffer(); + b->add("a\U00010000a"); + return b[1]; +]], 65536) + +test_any([[ + String.Buffer b = String.Buffer(); + b->add("aaa"); + return b[1]='b'; +]], 98) +test_any([[ + String.Buffer b = String.Buffer(); + b->add("aaa"); + b[1]='b'; + return (string)b; +]], "aba") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("aaa"); + b[1]=256; + return (string)b; +]], "a\u0100a") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("aaa"); + b[1]=65536; + return (string)b; +]], "a\U00010000a") + +test_any([[ + String.Buffer b = String.Buffer(); + b->add("1234"); + b = b[..1]; + b->add("x"); + return (string)b; +]], "12x") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("1234"); + return (string)b[1..]; +]], "234") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("1234"); + return (string)b[1..2]; +]], "23") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("1234"); + return (string)b[..<1]; +]], "123") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("ab\u0100\u0101\U00010000\U00010001"); + return (string)b[0..1]; +]], "ab") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("ab\u0100\u0101\U00010000\U00010001"); + return (string)b[2..3]; +]], "\u0100\u0101") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("ab\u0100\u0101\U00010000\U00010001"); + return (string)b[4..5]; +]], "\U00010000\U00010001") + +test_any([[ + String.Buffer b = String.Buffer(); + b->add("ab\u0100\u0101\U00010000\U00010001cd"); + b->cut(4,5,1); + return (string)b; +]], "ab\u0100\u0101cd") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("ab\u0100\u0101\U00010000\U00010001cd"); + b->cut(2,5,1); + return (string)b; +]], "abcd") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("ab\u0100\u0101\U00010000\U00010001cd"); + return (string)b->cut(4,5) + "_" + (string)b; +]], "\U00010000\U00010001_ab\u0100\u0101cd") +test_any([[ + String.Buffer b = String.Buffer(); + b->add("ab\u0100\u0101\U00010000\U00010001cd"); + return (string)b->cut(2,5) + "_" + (string)b; +]], "\u0100\u0101\U00010000\U00010001_abcd") + + test_eq([[ String.count( "", "a" ) ]], 0) test_eq([[ String.count( "aaa", "a" ) ]], 3) test_eq([[ String.count( "aaa", "aa" ) ]], 1) -- GitLab