def check_sliding_window( test_dict ):
    window_slider = cpep.sliding_window(
        test_dict['iterable'],
        test_dict['window_len'],
    )
    expected_results = test_dict['out_windows']
    i = -1
    for i, win_center_tuple in enumerate(window_slider):
        window = list(win_center_tuple[0])
        center = win_center_tuple[1]
        expected_window = expected_results[i][1]
        expected_center = expected_results[i][0]

        error_str = '\n  Expected:\n\t{0}\t{1}\n  Got:\n\t{2}\t{3}'.format(
            expected_center, expected_window,
            center, window
        )
        assert center == expected_center, error_str
        assert window == expected_window, error_str
        print(center, window)
    assert i+1 == len(expected_results), '''\n
    Sliding window yielded {0} iterations,
    but {1} iterations were expected.\n
    Test case:\n{2}
    '''.format(i+1, len(expected_results),
               pprint.pformat(test_dict))
def check_sliding_window( test_dict ):

    print('\nInput list:', str(test_dict['iterable']), '; win_size:', test_dict['window_len'])

    window_slider = cpep.sliding_window(
        test_dict['iterable'],
        test_dict['window_len'],
        flexible=False,
    )
    expected_results = test_dict['out_windows']
    i = -1
    for i, win_center_tuple in enumerate(window_slider):

        windowsum = win_center_tuple[0]

        center = win_center_tuple[1]
        expected_window = expected_results[i][1]
        expected_center = expected_results[i][0]


        error_str = '\n  Expected:\n\t{0}\t{1}\t{2}\n  Got:\n\t{3}\t{4}'.format(
            expected_center, sum(expected_window), expected_window,
            center, windowsum
        )
        assert center == expected_center, error_str
        assert windowsum == sum(expected_window), error_str
        print(center, windowsum)

    assert i+1 == len(expected_results), '''\n
    Sliding window yielded {0} iterations,
    but {1} iterations were expected.\n
    Test case:\n{2}
    '''.format(i+1, len(expected_results),
               pprint.pformat(test_dict))