### Question:
CompositeGenericKey extends GenericKey { @Override void writeValue( int stateSlot, Value value, Inclusion inclusion ) { stateSlot( stateSlot ).writeValue( value, inclusion ); } CompositeGenericKey( int slots, IndexSpecificSpaceFillingCurveSettingsCache spatialSettings ); @Override String toStringInternal();  }### Answer:
@Test void testDocumentedStringArrayKeySizeFormulaIsCorrect() { CompositeGenericKey key = new CompositeGenericKey( 1, mock( IndexSpecificSpaceFillingCurveSettingsCache.class ) ); int maxArrayLength = random.nextInt( 500 ); int maxStringLength = random.nextInt( 100 ); for ( int i = 0; i < 100; i++ ) { String[] strings = random.randomValues().nextStringArrayRaw( 0, maxArrayLength, 0, maxStringLength ); key.initialize( i ); key.writeValue( 0, Values.of( strings ), NativeIndexKey.Inclusion.NEUTRAL ); assertThat( includingEntityId( calculateKeySize( strings ) ), equalTo( key.size() ) ); } }