}
}
@Test
public void testStringValue() {
StringValue string0 = new StringValue("This is a test");
StringValue stringThis = new StringValue("This");
StringValue stringIsA = new StringValue("is a");
// test value retrieval
Assert.assertEquals("This is a test", string0.toString());
// test value comparison
StringValue string1 = new StringValue("This is a test");
StringValue string2 = new StringValue("This is a tesa");
StringValue string3 = new StringValue("This is a tesz");
StringValue string4 = new StringValue("Ünlaut ßtring ยต avec é y ¢");
CharSequence chars5 = string1.subSequence(0, 4);
StringValue string5 = (StringValue) chars5;
StringValue string6 = (StringValue) string0.subSequence(0, string0.length());
StringValue string7 = (StringValue) string0.subSequence(5, 9);
StringValue string8 = (StringValue) string0.subSequence(0, 0);
Assert.assertTrue(string0.compareTo(string0) == 0);
Assert.assertTrue(string0.compareTo(string1) == 0);
Assert.assertTrue(string0.compareTo(string2) > 0);
Assert.assertTrue(string0.compareTo(string3) < 0);
Assert.assertTrue(stringThis.equals(chars5));
Assert.assertTrue(stringThis.compareTo(string5) == 0);
Assert.assertTrue(string0.compareTo(string6) == 0);
Assert.assertTrue(stringIsA.compareTo(string7) == 0);
string7.setValue("This is a test");
Assert.assertTrue(stringIsA.compareTo(string7) > 0);
Assert.assertTrue(string0.compareTo(string7) == 0);
string7.setValue("is a");
Assert.assertTrue(stringIsA.compareTo(string7) == 0);
Assert.assertTrue(string0.compareTo(string7) < 0);
Assert.assertEquals(stringIsA.hashCode(), string7.hashCode());
Assert.assertEquals(string7.length(), 4);
Assert.assertEquals("is a", string7.getValue());
Assert.assertEquals(string8.length(), 0);
Assert.assertEquals("", string8.getValue());
Assert.assertEquals('s', string7.charAt(1));
try {
string7.charAt(5);
Assert.fail("Exception should have been thrown when accessing characters out of bounds.");
} catch (IndexOutOfBoundsException iOOBE) {}
// test stream out/input
try {
string0.write(new OutputViewDataOutputStreamWrapper(mOut));
string4.write(new OutputViewDataOutputStreamWrapper(mOut));
string2.write(new OutputViewDataOutputStreamWrapper(mOut));
string3.write(new OutputViewDataOutputStreamWrapper(mOut));
string7.write(new OutputViewDataOutputStreamWrapper(mOut));
StringValue string1n = new StringValue();
StringValue string2n = new StringValue();
StringValue string3n = new StringValue();
StringValue string4n = new StringValue();
StringValue string7n = new StringValue();
string1n.read(new InputViewDataInputStreamWrapper(mIn));
string4n.read(new InputViewDataInputStreamWrapper(mIn));
string2n.read(new InputViewDataInputStreamWrapper(mIn));
string3n.read(new InputViewDataInputStreamWrapper(mIn));
string7n.read(new InputViewDataInputStreamWrapper(mIn));
Assert.assertEquals(string0.compareTo(string1n), 0);
Assert.assertEquals(string0.toString(), string1n.toString());
Assert.assertEquals(string4.compareTo(string4n), 0);
Assert.assertEquals(string4.toString(), string4n.toString());
Assert.assertEquals(string2.compareTo(string2n), 0);
Assert.assertEquals(string2.toString(), string2n.toString());
Assert.assertEquals(string3.compareTo(string3n), 0);
Assert.assertEquals(string3.toString(), string3n.toString());
Assert.assertEquals(string7.compareTo(string7n), 0);
Assert.assertEquals(string7.toString(), string7n.toString());
try {
string7n.charAt(5);
Assert.fail("Exception should have been thrown when accessing characters out of bounds.");
} catch (IndexOutOfBoundsException iOOBE) {}
} catch (Exception e) {
Assert.assertTrue(false);