# -*- coding: utf-8 -*-
"""
Created on Wed Feb 29 10:34:00 2012
Author: Josef Perktold
"""
from statsmodels.compat import lrange
from itertools import combinations, zip_longest
from numpy.testing import assert_
def test_zip_longest():
lili = [['a0', 'b0', 'c0', 'd0'],
['a1', 'b1', 'c1'],
['a2', 'b2', 'c2', 'd2'],
['a3', 'b3', 'c3', 'd3'],
['a4', 'b4']]
transposed = [('a0', 'a1', 'a2', 'a3', 'a4'),
('b0', 'b1', 'b2', 'b3', 'b4'),
('c0', 'c1', 'c2', 'c3', None),
('d0', None, 'd2', 'd3', None)]
assert_(list(zip_longest(*lili)) == transposed, '%r not equal %r' % (
zip_longest(*lili), transposed))
def test_combinations():
actual = list(combinations('ABCD', 2))
desired = [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'),
('C', 'D')]
assert_(actual == desired, '%r not equal %r' % (actual, desired))
actual = list(combinations(lrange(4), 3))
desired = [(0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 2, 3)]
assert_(actual == desired, '%r not equal %r' % (actual, desired))