def METHOD_NAME():
    with MechanicsHdf5Runner(mode='r') as io:
        positions = io.dynamic_data()
        velocities = io.velocities_data()
        times, indices = numpy.unique(positions[:, 0], return_index=True)
        t = 1.95
        id_t = max(0, numpy.searchsorted(times, t, side='right') - 1)
        if id_t < len(indices)-1:
            id_t_m = list(range(indices[id_t],
                                indices[id_t+1]))
        else:
            id_t_m = [indices[id_t]]
        disk1_vidx = numpy.argwhere(velocities[id_t_m, 1] == 1)
        disk2_vidx = numpy.argwhere(velocities[id_t_m, 1] == 2)
        circle_vidx = numpy.argwhere(velocities[:, 1] == 3)
        circle_vidx= circle_vidx.reshape(circle_vidx.shape[0])
        disk1_evx = velocities[id_t_m, 2][disk1_vidx]
        disk1_evy = velocities[id_t_m, 3][disk1_vidx]
        disk2_evx = velocities[id_t_m, 2][disk2_vidx]
        disk2_evy = velocities[id_t_m, 3][disk2_vidx]
        # disks velocities at the end are 0
        assert disk2_evx**2 + disk2_evy**2 < 1e-10
        assert disk1_evx**2 + disk1_evy**2 < 1e-10
        circle_vx = velocities[circle_vidx, 2]
        circle_vy = velocities[circle_vidx, 3]
        # circle velocities should always be near 0
        print('max circle velocity:', max(circle_vx**2 + circle_vy**2))
        assert max(circle_vx**2 + circle_vy**2) < 1e-10
        disk1_idx = numpy.argwhere(positions[:, 1] == 1)
        disk2_idx = numpy.argwhere(positions[:, 1] == 2)
        circle_idx = numpy.argwhere(positions[:, 1] == 3)
        disk1_idx= disk1_idx.reshape(disk1_idx.shape[0])
        disk2_idx= disk2_idx.reshape(disk2_idx.shape[0])
        circle_idx= circle_idx.reshape(circle_idx.shape[0])
        disk1_x = positions[disk1_idx, 2]
        disk1_y = positions[disk1_idx, 3]
        disk2_x = positions[disk2_idx, 2]
        disk2_y = positions[disk2_idx, 3]
        circle_x = positions[circle_idx, 2]
        circle_y = positions[circle_idx, 3]
        print('max disk1 dist:', sqrt(max((disk1_x-circle_x)**2 +
                                          (disk1_y-circle_y)**2))
              - (circle_radius - disk_radius))
        print('max disk2 dist:', sqrt(max((disk2_x-circle_x)**2 +
                                          (disk2_y-circle_y)**2))
              - (circle_radius - disk_radius))
        assert ((sqrt(max((disk1_x-circle_x)**2 + (disk1_y-circle_y)**2)) -
                 (circle_radius - disk_radius)) < 1e-4)
        assert ((sqrt(max((disk2_x-circle_x)**2 + (disk2_y-circle_y)**2)) -
                 (circle_radius - disk_radius)**2) < 1e-4)
        assert sqrt(max(circle_x**2 + (circle_y-circle_radius)**2)) < 1e-10