### Question:
ExpressionLanguage { public static ChannelExpression<VNumberArray, ListNumber> vNumberArray(String name) { return channel(name, VNumberArray.class, ListNumber.class); } private  ExpressionLanguage(); static ChannelExpression<VType, Object> vType(String name); static ChannelExpressionList<VType, Object> vTypes(Collection<String> names); static ChannelExpression<VNumber, Number> vNumber(String name); static ChannelExpressionList<VNumber, Number> vNumbers(Collection<String> names); static ChannelExpression<VDouble, Double> vDouble(String name); static ChannelExpression<VFloat, Float> vFloat(String name); static ChannelExpression<VInt, Integer> vInt(String name); static ChannelExpression<VShort, Short> vShort(String name); static ChannelExpression<VByte, Byte> vByte(String name); static ChannelExpression<VNumberArray, ListNumber> vNumberArray(String name); static DesiredRateExpression<VNumberArray> vNumberArrayOf(DesiredRateExpressionList<? extends VNumber> expressions); static ChannelExpression<VFloatArray, ArrayFloat> vFloatArray(String name); static ChannelExpression<VDoubleArray, ArrayDouble> vDoubleArray(String name); static ChannelExpression<VByteArray, ArrayByte> vByteArray(String name); static ChannelExpression<VShortArray, ArrayShort> vShortArray(String name); static ChannelExpression<VIntArray, ArrayInt> vIntArray(String name); static ChannelExpression<VString, String> vString(String name); @SuppressWarnings("unchecked") static ChannelExpression<VStringArray, List<String>> vStringArray(String name); static ChannelExpression<VEnum, Integer> vEnum(String name); static ChannelExpressionList<VDouble, Double> vDoubles(Collection<String> names); static DesiredRateExpression<VString> vConst(String value); static DesiredRateExpression<VDouble> vConst(double value); static DesiredRateExpression<VInt> vConst(int value); static DesiredRateExpression<VDoubleArray> vConst(double... values); static DesiredRateExpression<VDoubleArray> vConst(ListDouble values); static DesiredRateExpression<VIntArray> vConst(int... values); static DesiredRateExpression<VIntArray> vConst(ListInt values); static DesiredRateExpressionList<VDouble> vDoubleConstants(List<Double> values); static DesiredRateExpressionList<VInt> vIntConstants(List<Integer> values); static DesiredRateExpressionList<VString> vStringConstants(List<String> values); static DesiredRateExpression<VString> vStringOf(DesiredRateExpression<? extends VType> expression, ValueFormat valueFormat); static DesiredRateExpression<VString> vStringOf(DesiredRateExpression<? extends VType> expression); static DesiredRateReadWriteExpression<VString, String> vStringOf(DesiredRateReadWriteExpression<? extends VType, ? extends Object> expression); static DesiredRateReadWriteExpression<VString, String> vStringOf(DesiredRateReadWriteExpression<? extends VType, ? extends Object> expression,
            ValueFormat valueFormat); static DesiredRateExpression<VDouble> averageOf(SourceRateExpression<VDouble> doublePv); static DesiredRateExpression<VStatistics> statisticsOf(SourceRateExpression<VDouble> doublePv); static DesiredRateExpressionList<VStatistics> statisticsOf(SourceRateExpressionList<VDouble> doubleExpressions); static DesiredRateExpression<VMultiDouble> synchronizedArrayOf(Duration tolerance, SourceRateExpressionList<VDouble> expressions); static DesiredRateExpression<VMultiDouble> synchronizedArrayOf(Duration tolerance, Duration cacheDepth, SourceRateExpressionList<VDouble> expressions); static DesiredRateExpression<List<T>> timedCacheOf(SourceRateExpression<T> expression, Duration maxIntervalBetweenSamples); static VTableColumn column(String name, DesiredRateExpressionList<?> values); static DesiredRateExpression<VTable> vTable(VTableColumn... columns);  }### Answer:
@Test public void vNumberArray1() { ChannelExpression<VNumberArray, ListNumber> myPv = vNumberArray("my pv"); assertThat(myPv.getFunction(), instanceOf(ValueCache.class)); ValueCache<VNumberArray> cache = (ValueCache<VNumberArray>) myPv.getFunction(); assertThat(cache.getType(), equalTo(VNumberArray.class)); assertThat(cache.readValue(), nullValue()); assertThat(myPv.getName(), equalTo("my pv")); }