package net.varkhan.base.conversion.character;
import junit.framework.TestCase;
public class AsciiStringTest extends TestCase {
public void testLength() throws Exception {
assertEquals("length(\"\")",0,new AsciiString(new byte[0],0,0).length());
assertEquals("length(\"Foo\")",3,new AsciiString("Foo bar baz".toCharArray(),0,3).length());
assertEquals("length(\"Foo bar baz\")",11,new AsciiString("Foo bar baz".toCharArray(),0,11).length());
assertEquals("length(\"Foo bar $$\u00fe\")",11,new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).length());
assertEquals("length(\"Foo bar $$\u00fe\")",11,new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).length());
}
public void testCharAt() throws Exception {
assertEquals("charAt(\"Foo\",3)",'o',new AsciiString("Foo bar baz".toCharArray(),0,3).charAt(2));
assertEquals("charAt(\"Foo bar baz\",7)",' ',new AsciiString("Foo bar baz".toCharArray(),0,11).charAt(7));
assertEquals("charAt(\"Foo bar $$\u00fe\",10)",0xfe,(int)new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).charAt(10));
assertEquals("charAt(\"Foo bar $$\u00fe\",10)",0x7e,(int)new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).charAt(10));
}
public void testEquals() throws Exception {
assertTrue("equals(\"\")", new AsciiString(new byte[0], 0, 0).equals(new AsciiString(new byte[0], 0, 0)));
assertTrue("equals(\"Foo\")", new AsciiString("Foo".toCharArray(), 0, 3).equals(new AsciiString("Foo bar baz".toCharArray(), 0, 3)));
assertFalse("equals(\"Foo\")", new AsciiString(new byte[0], 0, 0).equals(new AsciiString("Foo bar baz".toCharArray(), 0, 3)));
assertFalse("equals(\"Foo\")", new AsciiString("Foo".toCharArray(), 0, 3).equals(new AsciiString(new byte[0], 0, 0)));
assertTrue("equals(\"Foo bar baz\")", new AsciiString("Foo bar baz".toCharArray(), 0, 11).equals(new AsciiString("Foo bar baz".toCharArray(), 0, 11)));
assertTrue("equals(\"Foo bar $$\u00fe\")", new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, false).equals(new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, false)));
assertTrue("equals(\"Foo bar $$\u00fe\")", new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, true).equals(new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, true)));
assertFalse("equals(\"Foo bar $$\u00fe\")", new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, true).equals(new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, false)));
assertFalse("equals(\"Foo bar $$\u00fe\")", new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, false).equals(new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, true)));
assertTrue("equals(\"Foo bar $$\u00fe\")", new AsciiString("Foo bar $$þ", false).equals(new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, false)));
assertTrue("equals(\"Foo bar $$\u00fe\")", new AsciiString("Foo bar $$þ", true).equals(new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, true)));
}
public void testHashCode() throws Exception {
assertEquals("hashCode(\"\")",0,new AsciiString(new byte[0],0,0).hashCode());
assertEquals("hashCode(\"Foo\")",new AsciiString("Foo bar baz".toCharArray(),0,3).hashCode(),new AsciiString("Foo bar baz".toCharArray(),0,3).hashCode());
assertEquals("hashCode(\"Foo bar baz\")",new AsciiString("Foo bar baz".toCharArray(),0,11).hashCode(),new AsciiString("Foo bar baz".toCharArray(),0,11).hashCode());
assertEquals("hashCode(\"Foo bar $$\u00fe\")",new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).hashCode(),new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).hashCode());
assertEquals("hashCode(\"Foo bar $$\u00fe\")",new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).hashCode(),new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).hashCode());
assertEquals("hashCode(\"Foo bar $$\u00fe\")",128+new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, false).hashCode(), new AsciiString("Foo bar $$þ".toCharArray(), 0, 11, true).hashCode());
}
public void testToString() throws Exception {
assertEquals("length(\"\")","",new AsciiString(new byte[0],0,0).toString());
assertEquals("length(\"Foo\")","Foo",new AsciiString("Foo bar baz".toCharArray(),0,3).toString());
assertEquals("length(\"Foo bar baz\")","Foo bar baz",new AsciiString("Foo bar baz".toCharArray(),0,11).toString());
assertEquals("length(\"Foo bar $$\u00fe\")","Foo bar $$þ",new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).toString());
assertEquals("length(\"Foo bar $$\u00fe\")","Foo bar $$~",new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).toString());
}
public void testSubSequence() throws Exception {
assertEquals("subSequence(\"\",0,0)",new AsciiString(new byte[0],0,0),new AsciiString(new byte[0],0,0).subSequence(0,0));
assertEquals("subSequence(\"Foo bar baz\", 0, 0)",new AsciiString(new byte[0],0,0),new AsciiString("Foo bar baz".toCharArray(),0,11).subSequence(0, 0));
assertEquals("subSequence(\"Foo bar baz\",11,11)",new AsciiString(new byte[0],0,0),new AsciiString("Foo bar baz".toCharArray(),0,11).subSequence(11, 11));
assertEquals("subSequence(\"Foo bar baz\", 0, 4)",new AsciiString("Foo ".toCharArray()),new AsciiString("Foo bar baz".toCharArray(),0,11).subSequence(0, 4));
assertEquals("subSequence(\"Foo bar baz\", 4, 8)",new AsciiString("bar ".toCharArray()),new AsciiString("Foo bar baz".toCharArray(),0,11).subSequence(4, 8));
assertEquals("subSequence(\"Foo bar baz\", 8,11)",new AsciiString("baz".toCharArray()),new AsciiString("Foo bar baz".toCharArray(),0,11).subSequence(8, 11));
assertEquals("subSequence(\"Foo bar baz\", 0,11)",new AsciiString("Foo bar baz".toCharArray()),new AsciiString("Foo bar baz".toCharArray(),0,11).subSequence(0,11));
assertEquals("subSequence(\"Foo bar $$\u00fe\",10)",0xfe,(int)new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).subSequence(10,11).charAt(0));
assertEquals("subSequence(\"Foo bar $$\u00fe\",10)",0x7e,(int)new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).subSequence(10,11).charAt(0));
}
public void testIndexOf() throws Exception {
assertEquals("indexOf(\"\",'f',3)",-1,new AsciiString(new byte[0],0,0).indexOf('f',3));
assertEquals("indexOf(\"Foo bar baz\",'F',3)",-1,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf('F',3));
assertEquals("indexOf(\"Foo bar baz\",'F',0)",0,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf('F',0));
assertEquals("indexOf(\"Foo bar baz\",'r',3)",6,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf('r',3));
assertEquals("indexOf(\"Foo bar baz\",'z',3)",10,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf('z',3));
assertEquals("indexOf(\"Foo bar baz\",'z',11)",-1,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf('z',11));
assertEquals("indexOf(\"Foo bar $$\u00fe\",'þ',0)",10,new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).indexOf('þ'));
assertEquals("indexOf(\"Foo bar $$\u00fe\",'þ',0)",-1,new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).indexOf('þ'));
assertEquals("indexOf(\"\",\"foo\",3)",-1,new AsciiString(new byte[0],0,0).indexOf("foo",3));
assertEquals("indexOf(\"Foo bar baz\",\"F\",3)",-1,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf("Foo",3));
assertEquals("indexOf(\"Foo bar baz\",\"F\",0)",0,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf("Foo",0));
assertEquals("indexOf(\"Foo bar baz\",\"r\",3)",4,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf("bar",3));
assertEquals("indexOf(\"Foo bar baz\",\"z\",3)",8,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf("baz",3));
assertEquals("indexOf(\"Foo bar baz\",\"z\",11)",-1,new AsciiString("Foo bar baz".toCharArray(),0,11).indexOf("baz",9));
assertEquals("indexOf(\"Foo bar $$\u00fe\",\"þ\",0)",10,new AsciiString("Foo bar $$þ".toCharArray(),0,11,false).indexOf("þ"));
assertEquals("indexOf(\"Foo bar $$\u00fe\",\"þ\",0)",-1,new AsciiString("Foo bar $$þ".toCharArray(),0,11,true).indexOf("þ"));
}
}