String s1 = "abcdefghij";
- String s2 = s1 << 3;
+ String s2 = s1 << 0;
+ std::cout << s1 << " << 0 = " << s2 << "\n";
+ assert(s2 == "abcdefghij");
+
+ s2 = s1 << 3;
std::cout << s1 << " << 3 = " << s2 << "\n";
assert(s2 == "defghij");
- String s3 = s1 >> 3;
+ String s3 = s1 >> 0;
+ std::cout << s1 << " >> 0 = " << s3 << "\n";
+ assert(s3 == "abcdefghij");
+
+ s3 = s1 >> 3;
std::cout << s1 << " >> 3 = " << s3 << "\n";
assert(s3 == "abcdefg");
std::cout << s5 << "\n";
assert(s5 == "abcde");
+ // Shift an empty string
+
+ String s6, s7;
+ s7 = s6 << 4;
+ std::cout << "Shift left an empty string: \"" << s7 << "\"\n";
+ assert(s7 == "");
+
+ String s8, s9;
+ s9 = s8 >> 4;
+ std::cout << "Shift right an empty string: \"" << s9 << "\"\n";
+ assert(s9 == "");
+
+ // Shift more then the string length
+
+ String s10 = "abcdefghji";
+ String s11, s12;
+
+ s11 = s10 << 42;
+ std::cout << s10 << " << 42 = \"" << s11 << "\"\n";
+ assert(s11 == "");
+
+ s12 = s10 >> 42;
+ std::cout << s10 << " >> 42 = \"" << s12 << "\"\n";
+ assert(s12 == "");
+
return 0;
}