MirrorString("1234") Line 6 in a7/vstring1.rb: s.size = '8' s[0] = '"1"' s[1] = '"2"' s[2] = '"3"' s[3] = '"4"' Line 7 in a7/vstring1.rb: s.size = '8' s[-1] = '"1"' s[-2] = '"2"' s[-3] = '"3"' s[-4] = '"4"' Line 9 in a7/vstring1.rb: Forwards in dump_string(MirrorString("1234"),8) '1' '12' '123' '1234' '12344' '123443' '1234432' '12344321' Backwards in dump_string(MirrorString("1234"),8) '1' '21' '321' '4321' '44321' '344321' '2344321' '12344321' Middle on MirrorString("1234") s[-1] = "1" s[0] = "1" s[1] = "2" s[2] = "3" s[3] = "4" s[4] = "4" s[5] = "3" s[6] = "2" s[7] = "1" s[8] = nil s[9] = nil Underrun on MirrorString("1234") s[-5] = "4" s[-4] = "4" s[-3] = "3" s[-2] = "2" s[-1] = "1" s[0] = "1" s[1] = "2" s[2] = "3" s[3] = "4" s[4] = "4" s[5] = "3" Overrun on MirrorString("1234") s[3] = "4" s[4] = "4" s[5] = "3" s[6] = "2" s[7] = "1" s[8] = nil s[9] = nil s[10] = nil s[11] = nil s[12] = nil s[13] = nil