public static List<NamedArgument> mapArgumentsWithParameterNames(Executable constructorOrMethod, List<Object> arguments) {
        Preconditions.checkNotNull( constructorOrMethod, "constructorOrMethod must not be null." );
        Preconditions.checkNotNull( arguments, "arguments must not be null" );

        if( arguments.isEmpty() ) {
            return Collections.emptyList();
        }

        List<String> names = getParameterNamesUsingParanamer( constructorOrMethod );

        List<NamedArgument> result = Lists.newArrayList();
        if( names.size() == arguments.size() ) {
            for( int idx = 0; idx < names.size(); idx++ ) {
                result.add( new NamedArgument( names.get( idx ), arguments.get( idx ) ) );
            }
        } else {
            log.warn( format( "Different number of retrieved argument names and values: %s.length != %s.length",
                names, arguments ) );
            for( int idx = 0; idx < arguments.size(); idx++ ) {
                result.add( new NamedArgument( "arg" + idx, arguments.get( idx ) ) );
            }
        }
        return result;
    }
@throws NullPointerException iif {@code constructorOrMethod} is {@code null}
jgiven-core/src/main/java/com/tngtech/jgiven/impl/util/ParameterNameUtil.java