title: How to define display name using nested attributes of arguments in ParameterizedTest(name = #{index} multiply {0[0]} x {0[1]} = {0[2]})
body: <p>I cannot figure out if it is a missing feature, see the <a href="https://github.com/junit-team/junit5/issues/1154" rel="nofollow noreferrer">JUnit issue 1154</a> and <a href="https://github.com/junit-team/junit5/issues/1154#issuecomment-666952289" rel="nofollow noreferrer">my comment</a> there, or just my inability to write properly the syntax for <strong>name</strong> of the <code>@ParameterizedTest</code> in JUnit5. Given the fact that issue has been open for last 3 years, I'm afraid I cannot wait till I get answer or even the implementation there, so I'm trying to ask here as well.</p>
  <p>In my example ParameterizedTest, I'm using <code>@MethodSource</code>, which returns a Stream of ints arrays and I would like to use only those array's attributes instead of all <code>{arguments}</code> which is anyway same if I use <code>{0}</code>. Hard to explain verbally here, better to use code example bellow.</p>
  <pre><code>package net.delphym.unittests;
  
  import org.junit.jupiter.api.DisplayName;
  import org.junit.jupiter.params.ParameterizedTest;
  import org.junit.jupiter.params.provider.MethodSource;
  
  import java.util.stream.Stream;
  
  import static org.junit.jupiter.api.Assertions.assertEquals;
  
  class DynamicTestCreationTestParam {
      private static Stream&lt;int[]&gt; data() {
          return Stream.of(new int[][] { {1, 2, 2}, {5, 3, 15}, {121, 4, 484} });
      }
  
      @DisplayName(&quot;Multiplication test&quot;)
      @ParameterizedTest(name = &quot;#{index} for {arguments}: {0} x {1} = {2}&quot;)
      @MethodSource(&quot;data&quot;)
      void testWithStringParameter(int[] data) {
          MyClass tester = new MyClass();
          int m1 = data[0];
          int m2 = data[1];
          int expected = data[2];
          assertEquals(expected, tester.multiply(m1, m2));
      }
  
      // class to be tested
      class MyClass {
          public int multiply(int i, int j) {
              return i *j;
          }
      }
  }
  
  </code></pre>
  <p>The test results output looks something like this for the 1st run: <code>#1 for [1, 2, 2]: [1, 2, 2] x {1} = {2}</code></p>
  <p>Ideally, I would like to see this: <code>#1 multiply: 1 x 2 = 2</code>.</p>
  <p>So question is what would be the <code>@ParametrizedTest(</code><strong>name</strong><code>)</code> definition to match my expectation?</p>
  <p>I was trying something like this:
  <code>name = &quot;#{index} multiply : {[0][0]} x {[0][1]} = {[0][2]}&quot;</code>
  But it is syntacticly incorrect.</p>