/* Copyright (C) 1999 Hewlett-Packard Company
Copyright (C) 2002 Free Software Foundation, Inc.
This file is part of Mauve.
Mauve is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
Mauve is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Mauve; see the file COPYING. If not, write to
the Free Software Foundation, 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
// Tags: JDK1.0
package gnu.testlet.java.lang.StringBuffer;
import gnu.testlet.Testlet;
import gnu.testlet.TestHarness;
public class StringBufferTest implements Testlet
{
public int getExpectedPass() { return 51; }
public int getExpectedFail() { return 0; }
public int getExpectedKnownFail() { return 0; }
protected static TestHarness harness;
public void test_Basics()
{
try {
StringBuffer str0 = new StringBuffer(-10);
harness.fail("test_Basics - 0");
}catch ( NegativeArraySizeException e ){}
StringBuffer str1 = new StringBuffer();
harness.check(!( str1.length() != 0 || str1.capacity() != 16 ),
"test_Basics - 1");
harness.check(!( !str1.toString().equals("")),
"test_Basics - 2");
StringBuffer str2 = new StringBuffer( "testing" );
harness.check(!( str2.length() != 7 ),
"test_Basics - 3");
harness.check(!( !str2.toString().equals("testing")),
"test_Basics - 4");
try {
String str = null;
StringBuffer str3 = new StringBuffer(str);
/*
CYGNUS: nowhere does it say that we should
handle a null argument in StringBuffer(str).
In fact, the JCL implies that we should not.
But this leads to an asymmetry: `null + ""'
will fail, while `"" + null' will work. For
thaht reason, this test is commented out
here: it's not a failure.
harness.fail("test_Basics - 5");
*/
}
catch ( NullPointerException e ){}
StringBuffer str4 = new StringBuffer("hi there");
harness.check(!( str4.length () != 8 || str4.capacity () != 24 ),
"test_Basics - 6");
harness.check(!( !str4.toString().equals("hi there")),
"test_Basics - 7");
StringBuffer strbuf = new StringBuffer(0);
harness.check(!( ! strbuf.append("hiii").toString().equals("hiii")),
"test_Basics - 8");
strbuf = new StringBuffer(10);
harness.check(!( strbuf.capacity() != 10 ),
"test_Basics - 9");
}
public void test_toString()
{
StringBuffer str1 = new StringBuffer("218943289");
harness.check(!( !str1.toString().equals("218943289")),
"test_toString - 1");
str1 = new StringBuffer();
harness.check(!( !str1.toString().equals("")),
"test_toString - 2");
}
public void test_length()
{
StringBuffer buf1 = new StringBuffer("");
StringBuffer buf2 = new StringBuffer("pentium");
harness.check(!( buf1.length() != 0 ),
"test_length - 1");
harness.check(!( buf2.length() != 7 ),
"test_length - 2");
}
public void test_capacity()
{
StringBuffer buf1 = new StringBuffer("");
StringBuffer buf2 = new StringBuffer("pentiumpentiumpentium");
harness.check(!( buf1.capacity() != 16 ),
"test_capacity - 1");
int cap = buf2.capacity();
harness.check(!( cap != 37 ),
"test_capacity - 2");
buf1.ensureCapacity( 17);
// CYGNUS: This is a test for JDK 1.2 conformance
harness.check(!( buf1.capacity() != 34 ),
"test_capacity - 3");
}
public void test_setLength()
{
StringBuffer strbuf = new StringBuffer("ba");
try {
strbuf.setLength( -10);
harness.fail("test_setLength - 1");
}
catch ( IndexOutOfBoundsException e ){}
strbuf.setLength( 4 );
harness.check(!(strbuf.length() != 4 ),
"test_setLength - 2");
harness.check(!( strbuf.charAt(0 ) != 'b' || strbuf.charAt(1 ) != 'a' ||
strbuf.charAt(2 ) != '\u0000' || strbuf.charAt(3 ) != '\u0000' ),
"test_setLength - 3");
}
public void test_charAt()
{
harness.check(!( (new StringBuffer("abcd")).charAt(0) != 'a' ||
(new StringBuffer("abcd")).charAt(1) != 'b' ||
(new StringBuffer("abcd")).charAt(2) != 'c' ||
(new StringBuffer("abcd")).charAt(3) != 'd' ),
"test_charAt - 1");
try {
char ch = (new StringBuffer("abcd")).charAt(4);
harness.fail("test_charAt - 2");
}
catch ( IndexOutOfBoundsException e ){}
try {
char ch = (new StringBuffer("abcd")).charAt(-1);
harness.fail("test_charAt - 3");
}
catch ( IndexOutOfBoundsException e ){}
}
public void test_getChars()
{
StringBuffer str = new StringBuffer("abcdefghijklmn");
try {
str.getChars(0 , 3 , null , 1 );
harness.fail("test_getChars - 1");
}catch ( NullPointerException e ){}
char dst[] = new char[5];
try {
str.getChars(-1 , 3 , dst , 1 );
harness.fail("test_getChars - 2");
}catch ( IndexOutOfBoundsException e ){}
try {
str.getChars(4 , 3 , dst , 3 );
// CYGNUS: This is a test for JDK 1.2 conformance
harness.fail("test_getChars - 3");
}catch ( IndexOutOfBoundsException e ){}
try {
str.getChars(1 , 15 , dst , 1 );
harness.fail("test_getChars - 4");
}catch ( IndexOutOfBoundsException e ){}
try {
str.getChars(1 , 5 , dst , -1 );
harness.fail("test_getChars - 5");
}catch ( IndexOutOfBoundsException e ){}
try {
str.getChars(1 , 10 , dst , 1 );
harness.fail("test_getChars - 6");
}catch ( IndexOutOfBoundsException e ){}
str.getChars(0,5,dst, 0 );
harness.check(!( dst[0] != 'a' || dst[1] != 'b' || dst[2] != 'c' ||
dst[3] != 'd' || dst[4] != 'e' ),
"test_getChars - 7");
dst[0] = dst[1] = dst[2] = dst[3] = dst[4] = ' ';
str.getChars(0,0,dst, 0 );
harness.check(!( dst[0] != ' ' || dst[1] != ' ' || dst[2] != ' ' ||
dst[3] != ' ' || dst[4] != ' ' ),
"test_getChars - 9");
dst[0] = dst[1] = dst[2] = dst[3] = dst[4] = ' ';
str.getChars(0,1,dst, 0 );
harness.check(!( dst[0] != 'a' || dst[1] != ' ' || dst[2] != ' ' ||
dst[3] != ' ' || dst[4] != ' ' ),
"test_getChars - 10");
dst = new char[25];
str.getChars(3,14,dst,12);
harness.check(dst[12], 'd', "getChars starting src offset 3");
harness.check(dst[22], 'n', "getChars ending dst offset 22");
}
public void test_append( )
{
StringBuffer str = new StringBuffer();
Object nullobj = null;
harness.check(!( !str.append( nullobj ).toString().equals("null")),
"test_append - 1");
harness.check(!( !str.append( new Integer(100) ).toString().equals("null100")),
"test_append - 2");
StringBuffer str1 = new StringBuffer("hi");
str1 = str1.append( " there" );
str1 = str1.append( " buddy");
harness.check(!( !str1.toString().equals("hi there buddy")),
"test_append - 2");
StringBuffer str2 = new StringBuffer();
str2 = str2.append("sdljfksdjfklsdjflksdjflkjsdlkfjlsdkjflksdjfklsd");
harness.check(!( !str2.toString().equals(
"sdljfksdjfklsdjflksdjflkjsdlkfjlsdkjflksdjfklsd")),
"test_append - 3");
char carr[] = null;
StringBuffer str3 = new StringBuffer();
try {
str3 = str3.append( carr );
harness.fail("test_append - 4");
}
catch ( NullPointerException e ){}
char carr1[] = {'h','i','t','h','e','r'};
StringBuffer str4 = new StringBuffer("!");
harness.check(!( !str4.append( carr1 ).toString().equals("!hither")),
"test_append - 5");
try {
str3 = str3.append( carr , 0 , 3);
harness.fail("test_append - 6");
}
catch ( NullPointerException e ){}
str3 = new StringBuffer();
try {
str3 = str3.append( carr1 , -1 , 3);
harness.fail("test_append - 6.1");
}
catch ( IndexOutOfBoundsException e ){}
try {
str3 = str3.append ( carr1 , 0 , -3);
harness.fail("test_append - 6.2");
}
catch ( IndexOutOfBoundsException e ){}
StringBuffer str5 = new StringBuffer("!");
str5 = str5.append(carr1 , 2 , 3 );
harness.check(!( !str5.toString().equals("!the")),
"test_append - 7");
str5 = new StringBuffer();
str5 = str5.append( true );
harness.check(!( !str5.toString().equals("true")),
"test_append - 8");
str5 = str5.append( false );
harness.check(!( !str5.toString().equals("truefalse")),
"test_append - 9");
str5 = str5.append( 20);
harness.check(!( !str5.toString().equals("truefalse20")),
"test_append - 10");
str5 = new StringBuffer();
str5 = str5.append( 2034L );
harness.check(!( !str5.toString().equals("2034")),
"test_append - 11");
str5 = new StringBuffer();
str5 = str5.append( 34.45f );
harness.check(!( !str5.toString().equals("34.45")),
"test_append - 12");
str5 = new StringBuffer();
str5 = str5.append( 34.46 );
harness.check(!( !str5.toString().equals("34.46")),
"test_append - 13");
}
public void test_insert()
{
StringBuffer buf = new StringBuffer("1234567");
Object obj = null;
buf = buf.insert(5 , obj);
harness.check(!( !buf.toString().equals("12345null67")),
"test_insert - 1");
try {
buf = buf.insert(-1 , new Object());
harness.fail("test_insert - 2");
}catch ( IndexOutOfBoundsException e ){}
buf = new StringBuffer("1234567");
try {
buf = buf.insert(8 , new Object() );
harness.fail("test_insert - 3");
}catch ( IndexOutOfBoundsException e ){}
buf = new StringBuffer("1234567");
buf = buf.insert(4 , "inserted" );
harness.check(!( !buf.toString().equals("1234inserted567")),
"test_insert - 4");
buf = new StringBuffer("1234567");
char cdata[] = null;
try {
buf = buf.insert(4 , cdata );
harness.fail("test_insert - 5");
}catch ( NullPointerException e ) {}
cdata = new char[2];
try {
buf = buf.insert(-1 , cdata );
harness.fail("test_insert - 6");
}catch ( IndexOutOfBoundsException e ){}
try {
buf = buf.insert(8 , cdata );
harness.fail("test_insert - 7");
}catch ( IndexOutOfBoundsException e ){}
buf = new StringBuffer("1234567");
char cdata1[] = {'h','e','l','l','o'};
buf = buf.insert(4 , cdata1 );
harness.check(!( !buf.toString().equals("1234hello567")),
"test_insert - 8");
buf = new StringBuffer("1234567");
buf = buf.insert(0 , true );
harness.check(!( !buf.toString().equals("true1234567")),
"test_insert - 9");
buf = new StringBuffer("1234567");
buf = buf.insert(7 , false );
harness.check(!( !buf.toString().equals("1234567false")),
"test_insert - 10");
buf = new StringBuffer("1234567");
buf = buf.insert(0 , 'c' );
harness.check(!( !buf.toString().equals("c1234567")),
"test_insert - 11");
buf = new StringBuffer("1234567");
buf = buf.insert(7 , 'b' );
harness.check(!( !buf.toString().equals("1234567b")),
"test_insert - 12");
buf = new StringBuffer("1234567");
buf = buf.insert(7 , 999 );
harness.check(!( !buf.toString().equals("1234567999")),
"test_insert - 13");
buf = new StringBuffer("1234567");
buf = buf.insert(0, 99.9f );
harness.check(!( !buf.toString().equals("99.91234567")),
"test_insert - 14");
buf = new StringBuffer("1234567");
buf = buf.insert(3, 34.46 );
harness.check(!( !buf.toString().equals("12334.464567")),
"test_insert - 15 "
+ buf.toString());
buf = new StringBuffer("1234567");
buf = buf.insert(3, (long)1230 );
harness.check(!( !buf.toString().equals("12312304567")),
"test_insert - 16 "
+ buf.toString());
}
public void test_reverse()
{
StringBuffer buff = new StringBuffer();
harness.check(!( !buff.reverse().toString().equals("")),
"test_reverse - 1");
buff = new StringBuffer("babu");
harness.check(!( !buff.reverse().toString().equals("ubab")),
"test_reverse - 2");
buff = new StringBuffer("malayalam");
harness.check(!( !buff.reverse().toString().equals("malayalam")),
"test_reverse - 3");
buff = new StringBuffer("cnbcbnc");
harness.check(!( !buff.reverse().toString().equals("cnbcbnc")),
"test_reverse - 4");
buff = new StringBuffer("vinod");
harness.check(!( !buff.reverse().toString().equals("doniv")),
"test_reverse - 5");
}
public void testall()
{
test_Basics();
test_toString();
test_length();
test_capacity();
test_setLength();
test_charAt();
test_getChars();
test_append();
test_insert();
test_reverse();
}
public void test (TestHarness the_harness)
{
harness = the_harness;
testall ();
}
}