### Question:
StaticArray extends Array<T> { @Override public List<T> getValue() { return Collections.unmodifiableList(value); } @Deprecated @SafeVarargs  StaticArray(T... values); @Deprecated @SafeVarargs  StaticArray(int expectedSize, T... values); @Deprecated  StaticArray(List<T> values); @Deprecated @SuppressWarnings("unchecked")  StaticArray(int expectedSize, List<T> values); @SafeVarargs  StaticArray(Class<T> type, T... values); @SafeVarargs  StaticArray(Class<T> type, int expectedSize, T... values);  StaticArray(Class<T> type, List<T> values);  StaticArray(Class<T> type, int expectedSize, List<T> values); @Override List<T> getValue(); @Override String getTypeAsString(); static final int MAX_SIZE_OF_STATIC_ARRAY; }### Answer:
@Test public void canBeInstantiatedWithLessThan32Elements() { final StaticArray<Uint> array = new StaticArray32<>(arrayOfUints(32)); assertThat(array.getValue().size(), equalTo(32)); }
@Test public void canBeInstantiatedWithSizeMatchingType() { final StaticArray<Uint> array = new StaticArray3<>(arrayOfUints(3)); assertThat(array.getValue().size(), equalTo(3)); }
@Test public void canBeInstantiatedWithLessThan32Elements() { final StaticArray<Uint> array = new StaticArray32<>(arrayOfUints(32)); assertEquals(array.getValue().size(), (32)); }
@Test public void canBeInstantiatedWithSizeMatchingType() { final StaticArray<Uint> array = new StaticArray3<>(arrayOfUints(3)); assertEquals(array.getValue().size(), (3)); }