in java/clickhouse-connector/src/integration-test/java/com/epam/deltix/timebase/connector/clickhouse/ArrayDataTypeTests.java [149:182]
void replicateArrayTest() {
AllArrayTypes message = new AllArrayTypes();
message.byteArray = new ByteArrayList(new byte[]{Byte.MAX_VALUE, 0, IntegerDataType.INT8_NULL, Byte.MIN_VALUE + 1});
message.shortArray = new ShortArrayList(new short[]{Short.MAX_VALUE, 0, IntegerDataType.INT16_NULL, Short.MIN_VALUE + 1});
message.longArray = new LongArrayList(new long[]{Long.MAX_VALUE, 0, IntegerDataType.INT64_NULL, Long.MIN_VALUE + 1});
message.doubleArray = new DoubleArrayList(new double[]{Double.MAX_VALUE, 0, FloatDataType.IEEE64_NULL, Double.MIN_VALUE + 1});
message.floatArray = new FloatArrayList(new float[]{Float.MAX_VALUE, 0, FloatDataType.IEEE32_NULL, Float.MIN_VALUE + 1});
message.timestampList = new LongArrayList(new long[]{0, DateTimeDataType.NULL, DateTimeDataType.staticParse("2022-01-01 12:00:00.000"), 100});
message.timeOfDayList = new IntegerArrayList(new int[]{0, TimeOfDayDataType.NULL, TimeOfDayDataType.staticParse("12:00:00")});
message.enumArray = new ObjectArrayList<>(new CharSequence[]{TestEnum.FIRST.name(), null, TestEnum.FIRST.name(), TestEnum.DEFAULT.name()});
initSystemRequiredFields(message);
Pair<DXTickStream, TableDeclaration> chSchemaByStream = loadAndReplicateData(message);
TableDeclaration tableDeclaration = chSchemaByStream.getRight();
Map<String, Object> values = selectAllValues(tableDeclaration).get(0);
Map<String, Object> expectedValues = new HashMap<>() {{
put("AllArrayTypes_doubleArray", new Double[]{Double.MAX_VALUE, (double) 0, null, Double.MIN_VALUE + 1});
put("AllArrayTypes_floatArray", new Float[]{Float.MAX_VALUE, (float) 0, null, Float.MIN_VALUE + 1});
put("AllArrayTypes_enumArray", new String[]{"FIRST", null, "FIRST", "DEFAULT"});
put("AllArrayTypes_timeOfDayList", new Integer[]{0, null, TimeOfDayDataType.staticParse("12:00:00")});
put("AllArrayTypes_longArray", new Long[]{Long.MAX_VALUE, 0L, null, Long.MIN_VALUE + 1});
put("AllArrayTypes_shortArray", new Short[]{Short.MAX_VALUE, 0, null, Short.MIN_VALUE + 1});
put("AllArrayTypes_byteArray", new Byte[]{Byte.MAX_VALUE, 0, null, Byte.MIN_VALUE + 1});
put("AllArrayTypes_timestampList", new String[]{"1970-01-01 00:00:00.000", null, "2022-01-01 12:00:00.000", "1970-01-01 00:00:00.100"});
}};
expectedValues.forEach((k, v) -> {
Object actualValue = values.get(k);
assertArrayEquals((Object[]) v, (Object[]) actualValue);
});
systemRequiredFieldsCheck(message, values);
}