Added some missing methods to ShadowParcel
diff --git a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowParcel.java b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowParcel.java
index 36bdb2b..7278284 100644
--- a/src/main/java/com/xtremelabs/robolectric/shadows/ShadowParcel.java
+++ b/src/main/java/com/xtremelabs/robolectric/shadows/ShadowParcel.java
@@ -40,6 +40,16 @@
     }
 
     @Implementation
+    public void writeFloat(float f) {
+        parcelData.add(f);
+    }
+
+    @Implementation
+    public void writeDouble(double f) {
+        parcelData.add(f);
+    }
+
+    @Implementation
     @SuppressWarnings("unchecked")
     public void writeByte( byte b ) {
     	parcelData.add( b );
@@ -56,6 +66,16 @@
     }
 
     @Implementation
+    public float readFloat() {
+        return index < parcelData.size() ? (Float) parcelData.get(index++) : 0;
+    }
+
+    @Implementation
+    public double readDouble() {
+        return index < parcelData.size() ? (Double) parcelData.get(index++) : 0;
+    }
+
+    @Implementation
     public byte readByte() {
         return index < parcelData.size() ? (Byte) parcelData.get(index++) : 0;
     }
@@ -90,6 +110,85 @@
         return index < parcelData.size() ? (Parcelable) parcelData.get(index++) : null;
     }
 
+    @Implementation
+    public void readFloatArray(float[] val) {
+        int n = readInt();
+        if (val.length != n) throw new RuntimeException("bad array lengths");
+        for (int i = 0; i< val.length; i++) {
+            val[i] = readFloat();
+        }
+    }
+
+    @Implementation
+    public void writeFloatArray(float[] val) {
+        writeInt(val.length);
+        for (float f : val) writeFloat(f);
+    }
+
+    @Implementation
+    public void writeDoubleArray(double[] val) {
+        writeInt(val.length);
+        for (double f : val) writeDouble(f);
+    }
+
+    @Implementation
+    public void readDoubleArray(double[] val) {
+        int n = readInt();
+        if (val.length != n) throw new RuntimeException("bad array lengths");
+        for (int i = 0; i< val.length; i++) {
+            val[i] = readDouble();
+        }
+    }
+
+    @Implementation
+    public void writeIntArray(int[] val) {
+        writeInt(val.length);
+        for (int f : val) writeInt(f);
+    }
+
+    @Implementation
+    public void readIntArray(int[] val) {
+        int n = readInt();
+        if (val.length != n) throw new RuntimeException("bad array lengths");
+        for (int i = 0; i< val.length; i++) {
+            val[i] = readInt();
+        }
+    }
+
+    @Implementation
+    public void writeLongArray(long[] val) {
+        writeInt(val.length);
+        for (long f : val) writeLong(f);
+    }
+
+    @Implementation
+    public void readLongArray(long[] val) {
+        int n = readInt();
+        if (val.length != n) throw new RuntimeException("bad array lengths");
+        for (int i = 0; i< val.length; i++) {
+            val[i] = readLong();
+        }
+    }
+
+    @Implementation
+    public void writeStringArray(String[] val) {
+        writeInt(val.length);
+        for (String f : val) writeString(f);
+    }
+
+    @Implementation
+    public void readStringArray(String[] val) {
+        int n = readInt();
+        if (val.length != n) throw new RuntimeException("bad array lengths");
+        for (int i = 0; i< val.length; i++) {
+            val[i] = readString();
+        }
+    }
+
+
+
+
+
     public int getIndex() {
         return index;
     }
@@ -97,4 +196,5 @@
     public List getParcelData() {
         return parcelData;
     }
+
 }
diff --git a/src/test/java/com/xtremelabs/robolectric/shadows/ParcelTest.java b/src/test/java/com/xtremelabs/robolectric/shadows/ParcelTest.java
index 98a6682..6001eb0 100644
--- a/src/test/java/com/xtremelabs/robolectric/shadows/ParcelTest.java
+++ b/src/test/java/com/xtremelabs/robolectric/shadows/ParcelTest.java
@@ -14,6 +14,9 @@
 import static org.hamcrest.CoreMatchers.nullValue;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Arrays;
 
 @RunWith(WithTestDefaultsRunner.class)
 public class ParcelTest {
@@ -83,7 +86,59 @@
 		assertThat( parcel.readInt(), equalTo( val ) );
 	}
 
-	@Test
+    @Test
+    public void testReadWriteIntArray() throws Exception {
+        final int[] ints = {1, 2 };
+        parcel.writeIntArray(ints);
+        final int[] ints2 = new int[ints.length];
+        parcel.readIntArray(ints2);
+        assertTrue(Arrays.equals(ints, ints2));
+    }
+
+    @Test
+    public void testReadWriteLongArray() throws Exception {
+        final long[] longs = {1, 2 };
+        parcel.writeLongArray(longs);
+        final long[] longs2 = new long[longs.length];
+        parcel.readLongArray(longs2);
+        assertTrue(Arrays.equals(longs, longs2));
+    }
+
+    @Test
+    public void testReadWriteSingleFloat() {
+        float val = 5.2f;
+        parcel.writeFloat(val);
+        assertThat(parcel.readFloat(), equalTo(val));
+    }
+
+    @Test
+    public void testReadWriteFloatArray() throws Exception {
+        final float[] floats = {1.1f, 2.0f};
+        parcel.writeFloatArray(floats);
+        final float[] floats2 = new float[floats.length];
+        parcel.readFloatArray(floats2);
+        assertTrue(Arrays.equals(floats, floats2));
+    }
+
+    @Test
+    public void testReadWriteDoubleArray() throws Exception {
+        final double[] doubles = {1.1f, 2.0f};
+        parcel.writeDoubleArray(doubles);
+        final double[] doubles2 = new double[doubles.length];
+        parcel.readDoubleArray(doubles2);
+        assertTrue(Arrays.equals(doubles, doubles2));
+    }
+
+    @Test
+    public void testReadWriteStringArray() throws Exception {
+        final String[] strings = { "foo", "bar" };
+        parcel.writeStringArray(strings);
+        final String[] strings2 = new String[strings.length];
+        parcel.readStringArray(strings2);
+        assertTrue(Arrays.equals(strings, strings2));
+    }
+
+    @Test
 	public void testReadWriteMultipleInts() {
 		for( int i = 0; i < 10; ++i ) {
 			parcel.writeInt( i );