@Test(dataProvider = "findNodeSearchSet")
public void shouldFindNodeFromTestSet(String[] levelValues, int expectedValue) {

    // given
    LevelIndex<Integer> levelIndex = levelIndex().withLevelCount(3).build();
    levelIndex.add(new String[]{"A", "B", "C"}, 1);
    levelIndex.add(new String[]{"A", "B", "*"}, 9);
    levelIndex.add(new String[]{"A", "E", "D"}, 11);
    levelIndex.add(new String[]{"A", "*", "D"}, 12);
    levelIndex.add(new String[]{"A", "*", "*"}, 13);
    levelIndex.add(new String[]{"*", "Z", "Z"}, 21);
    levelIndex.add(new String[]{"*", "Z", "*"}, 22);
    levelIndex.add(new String[]{"*", "*", "*"}, 99);
    FastLevelIndexWalker<Integer> walker = new FastLevelIndexWalker<Integer>(levelIndex, levelValues);
    // when
    List<Integer> node = walker.find();
    // then
    assertThat(node).containsExactly(expectedValue);
}