code: public static Argument[] args(String... nameValuePairs) {
          int length = nameValuePairs.length;
  
          if (length == 0) {
              return NO_ARGUMENTS;
          }
  
          // even number of arguments ?
          if ((length & 1) != 0) {
              throw new IllegalArgumentException("Expecting even number of arguments, but got: " + length);
          }
          // allocating array by a half of an input
          Argument[] args = new Argument[length >> 1];
  
          for (int i = 0, j = 0; i < args.length; i++) {
              args[i] = arg(nameValuePairs[j++], nameValuePairs[j++]);
          }
  
          return args;
      }
docs: Factory method to easily create the {@link Argument} array. Parameters at the odd positions are names, at even
  positions are values.
  <p>
  For examples following test will pass:
  
  <pre>
  <code>
  Argument[] args = ArgUtils.args(
  "name1", "value1",
  "name2", "value2",
  "name3", "value3",
  "name4", "value4"
  );
  
  assertThat(Arrays.asList(args))
  .containsExactly(
  new Argument("name1", "value1"),
  new Argument("name2", "value2"),
  new Argument("name3", "value3"),
  new Argument("name4", "value4")
  );
  </code>
  </pre>
  
  @param nameValuePairs The name value pairs.
  @throws IllegalArgumentException When {@code nameValuePairs} is odd.
  @return The arguments.