assert (t[1] == 'l');
}
+void test_string_joinv () {
+ string[] sa = { "hello", "my", "world" };
+
+ string s = string.joinv (" ", sa);
+ assert (s == "hello my world");
+
+ sa.length = -1;
+ s = string.joinv (":", sa);
+ assert (s == "hello:my:world");
+
+ s = string.joinv ("-", null);
+ assert (s == "");
+}
+
+void test_string_replace () {
+ string s = "hellomyworld";
+
+ s = s.replace ("my", "whole");
+ assert (s == "hellowholeworld");
+}
+
+void test_string_slice () {
+ string s = "hellomyworld";
+
+ string r = s.slice (5, 7);
+ assert (r == "my");
+
+ r = s.slice (-7, 7);
+ assert (r == "my");
+
+ r = s.slice (5, -5);
+ assert (r == "my");
+
+ r = s.slice (-7, -5);
+ assert (r == "my");
+}
+
+void test_string_splice () {
+ string s = "hellomyworld";
+
+ s = s.splice (5, 7);
+ assert (s == "helloworld");
+
+ s = s.splice (5, 5, "whole");
+ assert (s == "hellowholeworld");
+
+ s = s.splice (10, -5, "wide");
+ assert (s == "hellowholewideworld");
+
+ s = s.splice (-14, 5);
+ assert (s == "hellowholewideworld");
+
+ s = s.splice (-14, -5);
+ assert (s == "helloworld");
+}
+
+void test_string_substring () {
+ string s = "hellomyworld";
+
+ string r = s.substring (5, 2);
+ assert (r == "my");
+
+ r = s.substring (-7, 2);
+ assert (r == "my");
+
+ r = s.substring (5);
+ assert (r == "myworld");
+
+ r = s.substring (-7);
+ assert (r == "myworld");
+}
+
void main () {
test_string ();
+ test_string_joinv ();
+ test_string_replace ();
+ test_string_slice ();
+ test_string_splice ();
+ test_string_substring ();
}