def METHOD_NAME(recording=False):
    filename = 'test_double_click_events.log.gz'
    recording_filename = pjoin(DATA_DIR, filename)
    label = ui.TextBlock2D(
        position=(400, 780),
        font_size=40,
        color=(1, 0.5, 0),
        justification='center',
        vertical_justification='top',
        text='FURY rocks!!!',
    )
    cube = actor.cube(
        np.array([(0, 0, 0)]),
        np.array([(0.16526678, 0.0186237, 0.01906076)]),
        (1, 1, 1),
        scales=3,
    )
    states = defaultdict(lambda: 0)
    def left_single_click(iren, obj):
        states['LeftButtonPressEvent'] += 1
        iren.force_render()
    def left_double_click(iren, obj):
        states['LeftButtonDoubleClickEvent'] += 1
        label.color = (1, 0, 0)
        iren.force_render()
    def right_single_click(iren, obj):
        states['RightButtonPressEvent'] += 1
        iren.force_render()
    def right_double_click(iren, obj):
        states['RightButtonDoubleClickEvent'] += 1
        label.color = (0, 1, 0)
        iren.force_render()
    def middle_single_click(iren, obj):
        states['MiddleButtonPressEvent'] += 1
        iren.force_render()
    def middle_double_click(iren, obj):
        states['MiddleButtonDoubleClickEvent'] += 1
        label.color = (0, 0, 1)
        iren.force_render()
    test_events = {
        'LeftButtonPressEvent': left_single_click,
        'LeftButtonDoubleClickEvent': left_double_click,
        'RightButtonPressEvent': right_single_click,
        'RightButtonDoubleClickEvent': right_double_click,
        'MiddleButtonPressEvent': middle_single_click,
        'MiddleButtonDoubleClickEvent': middle_double_click,
    }
    current_size = (800, 800)
    showm = window.ShowManager(size=current_size, title='Double Click Test')
    showm.scene.add(cube)
    showm.scene.add(label)
    for test_event, callback in test_events.items():
        showm.style.add_callback(cube, test_event, callback)
    if recording:
        showm.record_events_to_file(recording_filename)
        print(list(states.items()))
    else:
        showm.play_events_from_file(recording_filename)
        msg = "Wrong count for '{}'."
        expected = [
            ('LeftButtonPressEvent', 3),
            ('LeftButtonDoubleClickEvent', 1),
            ('MiddleButtonPressEvent', 3),
            ('MiddleButtonDoubleClickEvent', 1),
            ('RightButtonPressEvent', 2),
            ('RightButtonDoubleClickEvent', 1),
        ]
        # Useful loop for debugging.
        for event, count in expected:
            if states[event] != count:
                print('{}: {} vs. {} (expected)'.format(event, states[event], count))
        for event, count in expected:
            npt.assert_equal(states[event], count, err_msg=msg.format(event))