public void testByteArrays() { byte[] test1 = new byte[5]; byte[] test2 = new byte[8]; ReflectionSingleObjectSizer referenceSizer = new ReflectionSingleObjectSizer(); assertEquals(referenceSizer.sizeof(test1), WellKnownClassSizer.sizeof(test1)); assertEquals(referenceSizer.sizeof(test2), WellKnownClassSizer.sizeof(test2)); assertEquals(0, WellKnownClassSizer.sizeof(new Object())); }
public void testStrings() { String test1 = "123"; String test2 = "012345678"; ReflectionSingleObjectSizer referenceSizer = new ReflectionSingleObjectSizer(); test1.toCharArray(); // The size of a string varies based on the JDK version. With 1.7.0_06 // a couple of fields were removed. So just measure the size of an empty string. String emptyString = ""; int emptySize = ObjectSizer.SIZE_CLASS_ONCE.sizeof(emptyString) - ObjectSizer.SIZE_CLASS_ONCE.sizeof(new char[0]); assertEquals(emptySize + roundup(OBJECT_SIZE + 4 + 3 * 2), WellKnownClassSizer.sizeof(test1)); assertEquals(emptySize + roundup(OBJECT_SIZE + 4 + 9 * 2), WellKnownClassSizer.sizeof(test2)); }