static List<Object> generateArray(Random random, int nesting, int maxNesting) {
        int len = random.nextInt(10) + random.nextInt(10) + random.nextInt(10) + random.nextInt(10);
        List<Object> list = new ArrayList<>(len);
        for (int i = 0; i < len; ++i) {
            list.add(generateStuff(random, nesting, maxNesting));
        }
        return list;
    }
Object identity is used to differentiate between different implementation strategies, toString() is used to print a report.

@return an object with a descriptive toString() for the implementation under test
vespajlib/src/test/java/com/yahoo/text/JsonMicroBenchmarkTestCase.java