public void putIndexedFixedProperties(
            String key, List<String> subKeys, List<List<String>> subKeyValues) {
        checkNotNull(key);
        checkNotNull(subKeys);
        checkNotNull(subKeyValues);
        for (int idx = 0; idx < subKeyValues.size(); idx++) {
            final List<String> values = subKeyValues.get(idx);
            if (values == null || values.size() != subKeys.size()) {
                throw new ValidationException("Values must have same arity as keys.");
            }
            for (int keyIdx = 0; keyIdx < values.size(); keyIdx++) {
                put(key + '.' + idx + '.' + subKeys.get(keyIdx), values.get(keyIdx));
            }
        }
    }
@Test
    void testInvalidFixedIndexedProperties() {
        DescriptorProperties property = new DescriptorProperties();
        List<List<String>> list = new ArrayList<>();
        list.add(Arrays.asList("1", "string"));
        list.add(Arrays.asList("INVALID", "string"));
        property.putIndexedFixedProperties(
                FIXED_INDEXED_PROPERTY_KEY, Arrays.asList(PROPERTY_1_KEY, PROPERTY_2_KEY), list);
        assertThatThrownBy(() -> testFixedIndexedPropertiesValidation(property))
                .isInstanceOf(ValidationException.class);
    }