public void CharAt() { AString ms= new AString(); UT_EQ( ms.CharAtStart () , '\0' ); UT_EQ( ms.CharAtEnd () , '\0' ); UT_EQ( ms.CharAt ( -1 ), '\0' ); UT_EQ( ms.CharAt ( 0 ), '\0' ); UT_EQ( ms.CharAt ( 1 ), '\0' ); UT_EQ( ms [ -1 ], '\0' ); UT_EQ( ms [ 0 ], '\0' ); UT_EQ( ms [ 1 ], '\0' ); ms.Clear()._("A"); UT_EQ( ms.CharAtStart () , 'A' ); UT_EQ( ms.CharAtStart_NC() , 'A' ); UT_EQ( ms.CharAtEnd () , 'A' ); UT_EQ( ms.CharAtEnd_NC () , 'A' ); UT_EQ( ms.CharAt ( -1 ), '\0' ); UT_EQ( ms.CharAt ( 0 ), 'A' ); UT_EQ( ms.CharAt ( 1 ), '\0' ); UT_EQ( ms.CharAt_NC ( 0 ), 'A' ); UT_EQ( ms [ -1 ], '\0' ); UT_EQ( ms [ 0 ], 'A' ); UT_EQ( ms [ 1 ], '\0' ); ms.Clear()._("ABC"); UT_EQ( ms.CharAtStart () , 'A' ); UT_EQ( ms.CharAtStart_NC() , 'A' ); UT_EQ( ms.CharAtEnd () , 'C' ); UT_EQ( ms.CharAtEnd_NC () , 'C' ); UT_EQ( ms.CharAt ( -1 ), '\0' ); UT_EQ( ms.CharAt ( 0 ), 'A' ); UT_EQ( ms.CharAt ( 1 ), 'B' ); UT_EQ( ms.CharAt ( 2 ), 'C' ); UT_EQ( ms.CharAt ( 3 ), '\0' ); UT_EQ( ms.CharAt_NC ( 0 ), 'A' ); UT_EQ( ms.CharAt_NC ( 1 ), 'B' ); UT_EQ( ms.CharAt_NC ( 2 ), 'C' ); UT_EQ( ms [ -1 ], '\0' ); UT_EQ( ms [ 0 ], 'A' ); UT_EQ( ms [ 1 ], 'B' ); UT_EQ( ms [ 2 ], 'C' ); UT_EQ( ms [ 3 ], '\0' ); ms.Clear()._("ABC"); ms.SetCharAt( -1, '@' ); UT_EQ ( "ABC", ms ); ms.SetCharAt( 0, 'X' ); UT_EQ ( "XBC", ms ); ms.SetCharAt( 1, 'Y' ); UT_EQ ( "XYC", ms ); ms.SetCharAt( 2, 'Z' ); UT_EQ ( "XYZ", ms ); ms.SetCharAt( 3, '$' ); UT_EQ ( "XYZ", ms ); }