### Question:
SpecimenType implements Type { public final Class getRawType() { return this.rawType; } protected  SpecimenType(); private  SpecimenType(Type type); private  SpecimenType(Type type, List<Type> recursiveGenericsGuard); private  SpecimenType(Type type, SpecimenType contextualType); private  SpecimenType(Class rawType, GenericTypeCollection genericTypeArguments); static SpecimenType<?> of(Type type); static SpecimenType<?> of(Type type, List<Type> recursiveGenericsGuard); static SpecimenType<T> of(Class<T> clazz); final Class getRawType(); final GenericTypeCollection getGenericTypeArguments(); @Override final int hashCode(); @Override final boolean equals(Object obj); @Override final String toString();  }### Answer:
@Test public void non_generic_class_type_argument_has_correct_raw_type() { assertEquals(String.class, new SpecimenType<String>(){}.getRawType()); }
@Test public void generic_class_type_argument_has_correct_raw_type() { assertEquals(List.class, new SpecimenType<List<String>>(){}.getRawType()); }
@Test public void non_generic_array_type_argument_has_correct_raw_type() { assertEquals(String[].class, new SpecimenType<String[]>(){}.getRawType()); }