def METHOD_NAME(self, generate_plain_collection, item_cls):
    # Test automatic to_synced_list function generation
    synced_list = SyncedList(validation=item_cls)
    assert item_cls in synced_list._validate.types
    op = item_cls()
    assert synced_list._to_synced_list_conversion(op) is op
    # Test specified to_synced_list
    def cpp_identity(x):
        return x._cpp_obj
    # Test full initialziation
    plain_list = generate_plain_collection(5)
    synced_list = SyncedList(validation=item_cls,
                             to_synced_list=cpp_identity,
                             iterable=plain_list)
    assert synced_list._to_synced_list_conversion == cpp_identity
    op._cpp_obj = 2
    assert synced_list._to_synced_list_conversion(op) == 2
    self.check_equivalent(plain_list, synced_list)