public static boolean equals(FlatRecordTraversalObjectNode left, FlatRecordTraversalObjectNode right) {
        if (left == null && right == null) {
            return true;
        }
        if (left == null || right == null) {
            return false;
        }
        if (!left.getSchema().getName().equals(right.getSchema().getName())) {
            return false;
        }
        extractCommonObjectSchema(left, right);

        return compare(left, right);
    }
@Test
    public void differentList() {
        SimpleHollowDataset dataset = SimpleHollowDataset.fromClassDefinitions(Movie.class);
        FakeHollowSchemaIdentifierMapper idMapper = new FakeHollowSchemaIdentifierMapper(dataset);
        HollowObjectMapper objMapper = new HollowObjectMapper(HollowWriteStateCreator.createWithSchemas(dataset.getSchemas()));
        FlatRecordWriter flatRecordWriter = new FlatRecordWriter(dataset, idMapper);

        Movie movie1 = new Movie();
        movie1.awardsReceived = new ArrayList<>();
        movie1.awardsReceived.add(new Award("Oscar", 2020));
        movie1.awardsReceived.add(new Award("Golden Globe", 2025));

        Movie movie2 = new Movie();
        movie2.awardsReceived = new ArrayList<>();
        movie2.awardsReceived.add(new Award("Oscar", 2020));
        movie2.awardsReceived.add(new Award("Golden Globe", 2026));

        flatRecordWriter.reset();
        objMapper.writeFlat(movie1, flatRecordWriter);
        FlatRecord flatRecord1 = flatRecordWriter.generateFlatRecord();

        flatRecordWriter.reset();
        objMapper.writeFlat(movie2, flatRecordWriter);
        FlatRecord flatRecord2 = flatRecordWriter.generateFlatRecord();

        Assertions.assertThat(FlatRecordTraversalObjectNodeEquality.equals(new FlatRecordTraversalObjectNode(flatRecord1), new FlatRecordTraversalObjectNode(flatRecord2))).isFalse();
    }