コード例 #1
0
ファイル: test_itertoolz.py プロジェクト: karansag/toolz
def test_join_missing_element():
    names = [(1, 'one'), (2, 'two'), (3, 'three')]
    fruit = [('apple', 5), ('orange', 1)]

    result = set(starmap(add, join(first, names, second, fruit)))

    expected = set([((1, 'one', 'orange', 1))])

    assert result == expected
コード例 #2
0
ファイル: test_itertoolz.py プロジェクト: zhouyujoe/toolz
def test_outer_join():
    result = set(
        join(identity, [1, 2],
             identity, [2, 3],
             left_default=None,
             right_default=None))
    expected = {(2, 2), (1, None), (None, 3)}

    assert result == expected
コード例 #3
0
ファイル: test_itertoolz.py プロジェクト: caioaao/toolz
def test_join():
    names = [(1, 'one'), (2, 'two'), (3, 'three')]
    fruit = [('apple', 1), ('orange', 1), ('banana', 2), ('coconut', 2)]

    def addpair(pair):
        return pair[0] + pair[1]

    result = set(starmap(add, join(first, names, second, fruit)))

    expected = set([((1, 'one', 'apple', 1)),
                    ((1, 'one', 'orange', 1)),
                    ((2, 'two', 'banana', 2)),
                    ((2, 'two', 'coconut', 2))])

    assert result == expected

    result = set(starmap(add, join(first, names, second, fruit,
                                   left_default=no_default2,
                                   right_default=no_default2)))
    assert result == expected
コード例 #4
0
def test_join():
    names = [(1, 'one'), (2, 'two'), (3, 'three')]
    fruit = [('apple', 1), ('orange', 1), ('banana', 2), ('coconut', 2)]

    def addpair(pair):
        return pair[0] + pair[1]

    result = set(starmap(add, join(first, names, second, fruit)))

    expected = {(1, 'one', 'apple', 1),
                    (1, 'one', 'orange', 1),
                    (2, 'two', 'banana', 2),
                    (2, 'two', 'coconut', 2)}

    assert result == expected

    result = set(starmap(add, join(first, names, second, fruit,
                                   left_default=no_default2,
                                   right_default=no_default2)))
    assert result == expected
コード例 #5
0
ファイル: test_itertoolz.py プロジェクト: zhouyujoe/toolz
def test_join_double_repeats():
    names = [(1, 'one'), (2, 'two'), (3, 'three'), (1, 'uno'), (2, 'dos')]
    fruit = [('apple', 1), ('orange', 1), ('banana', 2), ('coconut', 2)]

    result = set(starmap(add, join(first, names, second, fruit)))

    expected = {(1, 'one', 'apple', 1), (1, 'one', 'orange', 1),
                (2, 'two', 'banana', 2), (2, 'two', 'coconut', 2),
                (1, 'uno', 'apple', 1), (1, 'uno', 'orange', 1),
                (2, 'dos', 'banana', 2), (2, 'dos', 'coconut', 2)}

    assert result == expected
コード例 #6
0
def join(leftseq,
         rightseq,
         leftkey=None,
         rightkey=None,
         leftdefault=no_default,
         rightdefault=no_default):
    if not leftkey:
        leftkey = lambda x: x
    if not rightkey:
        rightkey = lambda x: x

    return itertoolz.join(leftkey, leftseq, rightkey, rightseq, leftdefault,
                          rightdefault)
コード例 #7
0
ファイル: test_itertoolz.py プロジェクト: danoneata/toolz
def test_join_double_repeats():
    names = [(1, 'one'), (2, 'two'), (3, 'three'), (1, 'uno'), (2, 'dos')]
    fruit = [('apple', 1), ('orange', 1), ('banana', 2), ('coconut', 2)]

    result = set(starmap(add, join(first, names, second, fruit)))

    expected = set([((1, 'one', 'apple', 1)),
                    ((1, 'one', 'orange', 1)),
                    ((2, 'two', 'banana', 2)),
                    ((2, 'two', 'coconut', 2)),
                    ((1, 'uno', 'apple', 1)),
                    ((1, 'uno', 'orange', 1)),
                    ((2, 'dos', 'banana', 2)),
                    ((2, 'dos', 'coconut', 2))])

    assert result == expected
コード例 #8
0
ファイル: test_itertoolz.py プロジェクト: karansag/toolz
def test_join():
    names = [(1, 'one'), (2, 'two'), (3, 'three')]
    fruit = [('apple', 1), ('orange', 1), ('banana', 2), ('coconut', 2)]

    def addpair(pair):
        return pair[0] + pair[1]

    result = set(starmap(add, join(first, names, second, fruit)))

    expected = set([((1, 'one', 'apple', 1)),
                    ((1, 'one', 'orange', 1)),
                    ((2, 'two', 'banana', 2)),
                    ((2, 'two', 'coconut', 2))])

    print(result)
    print(expected)
    assert result == expected
コード例 #9
0
ファイル: test_itertoolz.py プロジェクト: karansag/toolz
def test_key_as_getter():
    squares = [(i, i**2) for i in range(5)]
    pows = [(i, i**2, i**3) for i in range(5)]

    assert set(join(0, squares, 0, pows)) == set(join(lambda x: x[0], squares,
                                                      lambda x: x[0], pows))

    get = lambda x: (x[0], x[1])
    assert set(join([0, 1], squares, [0, 1], pows)) == set(join(get, squares,
                                                                get, pows))

    get = lambda x: (x[0],)
    assert set(join([0], squares, [0], pows)) == set(join(get, squares,
                                                          get, pows))
コード例 #10
0
ファイル: test_itertoolz.py プロジェクト: karansag/toolz
def test_outer_join():
    result = set(join(identity, [1, 2], identity, [2, 3],
                      left_default=None, right_default=None))
    expected = set([(2, 2), (1, None), (None, 3)])

    assert result == expected
コード例 #11
0
ファイル: test_itertoolz.py プロジェクト: karansag/toolz
def test_right_outer_join():
    result = set(join(identity, [1, 2], identity, [2, 3], right_default=None))
    expected = set([(2, 2), (1, None)])

    assert result == expected
コード例 #12
0
ファイル: test_itertoolz.py プロジェクト: karansag/toolz
def test_left_outer_join():
    result = set(join(identity, [1, 2], identity, [2, 3], left_default=None))
    expected = set([(2, 2), (None, 3)])

    assert result == expected
コード例 #13
0
ファイル: join_dict.py プロジェクト: statcompute/py_snippets
for x in l1 + l2:
    dd[x["origin"]].update(x)

join4 = dd.values()

### METHOD 5: ORDEREDDICT() ###
from collections import OrderedDict

od = OrderedDict()

for x in l1 + l2:
    if x["origin"] in od:
        od[x["origin"]].update(x)
    else:
        od[x["origin"]] = x

join5 = od.values()

### METHOD 6:  ###
from toolz import itertoolz, dicttoolz

join6 = list(
    dicttoolz.merge(i, j)
    for i, j in itertoolz.join("origin", l1, "origin", l2))

# EXPECTED OUTPUT:
# [{'avg_delay': -0.67, 'med_dist': 1089.0, 'origin': 'JFK'},
#  {'avg_delay': -2.33, 'med_dist': 1065.0, 'origin': 'EWR'},
#  {'avg_delay': -1.75, 'med_dist': 747.5, 'origin': 'LGA'}]