private static Object generateStuff(Random random, int nesting, int maxNesting) {
        if (nesting >= maxNesting) {
            return generatePrimitive(random);
        } else {
            final int die = random.nextInt(10);
            if (die == 9) {
                return generateObject(random, nesting + 1, maxNesting);
            } else if (die == 8) {
                return generateArray(random, nesting + 1, maxNesting);
            } else {
                return generatePrimitive(random);
            }
        }
    }
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