public void DeleteInsertSet() { AString ms= new AString(); // delete { ms.Clear()._("0123456789"); ms.Delete ( 5 ); UT_EQ( "01234", ms ); ms.Clear()._("0123456789"); ms.Delete ( 5, 0 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.Delete ( 5, -1 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.Delete ( 5, 1 ); UT_EQ( "012346789", ms ); ms.Clear()._("0123456789"); ms.Delete ( 5, 100 ); UT_EQ( "01234", ms ); ms.Clear()._("0123456789"); ms.Delete ( -5, 10 ); UT_EQ( "56789", ms ); ms.Clear()._("0123456789"); ms.Delete_NC ( 5, 5 ); UT_EQ( "01234", ms ); ms.Clear()._("0123456789"); ms.Delete_NC ( 0, 5 ); UT_EQ( "56789", ms ); ms.Clear()._("0123456789"); ms.Delete_NC ( 0, 1 ); UT_EQ( "123456789", ms ); ms.Clear()._("0123456789"); ms.Delete_NC ( 9, 1 ); UT_EQ( "012345678", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( -2 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( -1 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( 0 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( 1 ); UT_EQ( "123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( 2 ); UT_EQ( "23456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( 9 ); UT_EQ( "9", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( 10 ); UT_EQ( "", ms ); ms.Clear()._("0123456789"); ms.DeleteStart ( 11 ); UT_EQ( "", ms ); ms.Clear()._("0123456789"); ms.DeleteStart_NC ( 0 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart_NC ( 1 ); UT_EQ( "123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart_NC ( 2 ); UT_EQ( "23456789", ms ); ms.Clear()._("0123456789"); ms.DeleteStart_NC ( 9 ); UT_EQ( "9", ms ); ms.Clear()._("0123456789"); ms.DeleteStart_NC ( 10 ); UT_EQ( "", ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( -2 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( -1 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( 0 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( 1 ); UT_EQ( "012345678" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( 2 ); UT_EQ( "01234567" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( 9 ); UT_EQ( "0" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( 10 ); UT_EQ( "" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd ( 11 ); UT_EQ( "" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd_NC ( 0 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.DeleteEnd_NC ( 1 ); UT_EQ( "012345678" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd_NC ( 2 ); UT_EQ( "01234567" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd_NC ( 9 ); UT_EQ( "0" , ms ); ms.Clear()._("0123456789"); ms.DeleteEnd_NC ( 10 ); UT_EQ( "" , ms ); } // insertChars { ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 1, -1 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 1, 20 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 0, 0 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 1, 0 ); UT_EQ( " 0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 1, 1 ); UT_EQ( "0 123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 2, 0 ); UT_EQ( " 0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 2, 1 ); UT_EQ( "0 123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 1, 11 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( ' ', 1, 10 ); UT_EQ( "0123456789 ", ms ); ms.Clear()._("0123456789"); ms.InsertChars ( '@', 3, 5 ); UT_EQ( "01234@@@56789",ms ); } // InsertAt { ms.Clear()._("0123456789"); ms.InsertAt ( "TST", -2 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", -1 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", 0 ); UT_EQ( "TST0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", 1 ); UT_EQ( "0TST123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", 8 ); UT_EQ( "01234567TST89", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", 9 ); UT_EQ( "012345678TST9", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", 10 ); UT_EQ( "0123456789TST", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", 11 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( "TST", 12 ); UT_EQ( "0123456789", ms ); AString astr= new AString( "TST" ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , -2 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , -1 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , 0 ); UT_EQ( "TST0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , 1 ); UT_EQ( "0TST123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , 8 ); UT_EQ( "01234567TST89", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , 9 ); UT_EQ( "012345678TST9", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , 10 ); UT_EQ( "0123456789TST", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , 11 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( astr , 12 ); UT_EQ( "0123456789", ms ); Substring subs= new Substring( "0123TSTxyz".ToCharArray(), 4, 3 ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , -2 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , -1 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , 0 ); UT_EQ( "TST0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , 1 ); UT_EQ( "0TST123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , 8 ); UT_EQ( "01234567TST89", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , 9 ); UT_EQ( "012345678TST9", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , 10 ); UT_EQ( "0123456789TST", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , 11 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.InsertAt ( subs , 12 ); UT_EQ( "0123456789", ms ); } // ReplaceSubstring { String r= "ABC"; ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 0, 10) ; UT_EQ( "ABC", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, -10, 100) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, -10, 5 ) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, -10, 10 ) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, -10, 11 ) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 0, 1 ) ; UT_EQ( "ABC123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 0, 2 ) ; UT_EQ( "ABC23456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 1, 1 ) ; UT_EQ( "0ABC23456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 1, 2 ) ; UT_EQ( "0ABC3456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 8, 1 ) ; UT_EQ( "01234567ABC9", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 8, 2 ) ; UT_EQ( "01234567ABC", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( r, 8, 3 ) ; UT_EQ( "0123456789", ms ); Substring s= new Substring( "0123ABCxyz".ToCharArray(), 4, 3 ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 0, 10) ; UT_EQ( "ABC", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, -10, 100) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, -10, 5 ) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, -10, 10 ) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, -10, 11 ) ; UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 0, 1 ) ; UT_EQ( "ABC123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 0, 2 ) ; UT_EQ( "ABC23456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 1, 1 ) ; UT_EQ( "0ABC23456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 1, 2 ) ; UT_EQ( "0ABC3456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 8, 1 ) ; UT_EQ( "01234567ABC9", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 8, 2 ) ; UT_EQ( "01234567ABC", ms ); ms.Clear()._("0123456789"); ms.ReplaceSubstring( s, 8, 3 ) ; UT_EQ( "0123456789", ms ); } // ReplaceRegion { ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 0, 10 ); UT_EQ( "@@@@@@@@@@", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', -10, 100 ); UT_EQ( "@@@@@@@@@@", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', -10, 5 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', -10, 10 ); UT_EQ( "0123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', -10, 11 ); UT_EQ( "@123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 0, 1 ); UT_EQ( "@123456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 0, 2 ); UT_EQ( "@@23456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 1, 1 ); UT_EQ( "0@23456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 1, 2 ); UT_EQ( "0@@3456789", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 8, 1 ); UT_EQ( "01234567@9", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 8, 2 ); UT_EQ( "01234567@@", ms ); ms.Clear()._("0123456789"); ms.ReplaceRegion ( '@', 8, 3 ); UT_EQ( "01234567@@", ms ); } }