@Test
public void multiplePatternTwoLevel() {

  // GIVEN
  simulateLengths(new Triple<>("a.b", 3L, 3L), //
      new Triple<>("a.b[0].d", 7L, 3L), //
      new Triple<>("a.b[1].d", 2L, 1L), //
      new Triple<>("a.b[2].d", 1L, 0L));
  // WHEN
  ColumnPatternContainer patterns =
      colPatternUtil.findColNamesForColNamePattern(env, Arrays.asList("a.b[*].c", "a.b[*].d[*].e"));
  Set<List<String>> res = patterns.getColumnPatterns(1L);
  // THEN
  Set<List<String>> expected = new HashSet<>(Arrays.asList( //
      Arrays.asList("a.b[0].c", "a.b[0].d[0].e"), //
      Arrays.asList("a.b[0].c", "a.b[0].d[1].e"), //
      Arrays.asList("a.b[0].c", "a.b[0].d[2].e"), //
      Arrays.asList("a.b[1].c", "a.b[1].d[0].e") //
  ));
  Assert.assertEquals(res, expected, "Expected correct final colNames");
}