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 );
        }