String: Fixed conversion to int
[libacl.git] / test / string_shift.cpp
index f8c8a0f..16ee513 100644 (file)
@@ -14,11 +14,19 @@ int main()
 
    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");
 
@@ -34,6 +42,31 @@ int main()
    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;
 }