### Question:
WritableRawComparableTuple implements WritableRawComparable, Tuple { @Override public final Object get(int index) { return objects[index]; } WritableRawComparableTuple(Class<?>... classes);  WritableRawComparableTuple(WritableRawComparable... objects); @Override final int size(); @Override final Object get(int index); @Override final void write(DataOutput out); @Override final void readFields(DataInput in); @Override final int compareTo(WritableRawComparable o); @Override final int getSizeInBytes(byte[] buf, int offset); @Override final int compareInBytes(byte[] b1, int o1, byte[] b2, int o2); @Override final int hashCode(); @Override final boolean equals(Object obj); @Override final String toString();  }### Answer:
@Test public void createFromObjects() throws Exception { WritableRawComparableTuple tuple = new WritableRawComparableTuple( new IntOption(100), new LongOption(200L), new StringOption("Hello, world!")); assertThat(tuple.get(0), is((Object) new IntOption(100))); assertThat(tuple.get(1), is((Object) new LongOption(200L))); assertThat(tuple.get(2), is((Object) new StringOption("Hello, world!"))); }
@Test public void serialize() throws Exception { WritableRawComparableTuple tuple = new WritableRawComparableTuple( new IntOption(100), new LongOption(200L), new StringOption("Hello, world!")); WritableRawComparableTuple restored = new WritableRawComparableTuple( IntOption.class, LongOption.class, StringOption.class); byte[] serialized = ser(tuple); des(restored, serialized); assertThat(restored.get(0), is((Object) new IntOption(100))); assertThat(restored.get(1), is((Object) new LongOption(200L))); assertThat(restored.get(2), is((Object) new StringOption("Hello, world!"))); }