Object[] findValues(int ordinal) {
        return getAllValues(ordinal, type, 0);
    }
@Test
    public void testSetIntegerReference() throws Exception {
        SetType setType = new SetType();
        setType.intValues = new HashSet<>(Arrays.asList(1, 2, 3));

        objectMapper.add(setType);
        StateEngineRoundTripper.roundTripSnapshot(writeStateEngine, readStateEngine);

        FieldPath fieldPath;
        Object[] values;
        Set<Integer> valuesAsSet;

        //with partial auto expand
        fieldPath = new FieldPath(readStateEngine, "SetType", "intValues.element");
        values = fieldPath.findValues(0);
        Assert.assertEquals(3, values.length);
        valuesAsSet = new HashSet<>();
        for (Object v : values) valuesAsSet.add((int) v);

        Assert.assertTrue(valuesAsSet.contains(1));
        Assert.assertTrue(valuesAsSet.contains(2));
        Assert.assertTrue(valuesAsSet.contains(3));

        //without auto expand
        fieldPath = new FieldPath(readStateEngine, "SetType", "intValues.element.value");
        values = fieldPath.findValues(0);
        Assert.assertEquals(3, values.length);
        valuesAsSet = new HashSet<>();
        for (Object v : values) valuesAsSet.add((int) v);

        Assert.assertTrue(valuesAsSet.contains(1));
        Assert.assertTrue(valuesAsSet.contains(2));
        Assert.assertTrue(valuesAsSet.contains(3));
    }