def METHOD_NAME(simulation_factory, lattice_snapshot_factory):
    """Test that the nselect move size handling logic functions properly.
    Run a simulation with very large potential move distances in one timestep
    to ensure that the image list code considers all possible interactions.
    """
    snap = lattice_snapshot_factory(dimensions=2, a=2, n=16)
    sim = simulation_factory(snap)
    mc = hoomd.hpmc.integrate.ConvexPolygon(translation_move_probability=1.0,
                                            nselect=4,
                                            default_d=100)
    mc.shape['A'] = dict(vertices=[
        (-0.5, -0.5),
        (0.5, -0.5),
        (0.5, 0.5),
        (-0.5, 0.5),
    ])
    sim.operations.integrator = mc
    translate_moves = numpy.zeros(2, dtype=numpy.uint64)
    for i in range(50000):
        sim.run(1)
        # ensure that no overlaps are present in any time step
        assert mc.overlaps == 0
        # tally the total number of moves
        translate_moves += numpy.array(mc.translate_moves, dtype=numpy.uint64)
    # ensure that the simulation moved the particles
    assert translate_moves[0] > 0
    assert translate_moves[1] > 0