예제 #1
0
def test_left_join_equi() -> None:
    l = Tafra({
        'x':
        np.array([1, 2, 3, 4, 5, 6]),
        'y':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'z':
        np.array([0, 0, 0, 1, 1, 1])
    })

    r = Tafra({
        'a':
        np.array([1, 2, 3, 4, 5, 6]),
        'b':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'c':
        np.array([0, 0, 0, 1, 1, 1])
    })
    t = l.left_join(r, [('x', 'a', '==')], ['x', 'y', 'a', 'b'])
    check_tafra(t)

    r = Tafra({
        'a':
        np.array([1, 1, 1, 2, 2, 2]),
        'b':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'c':
        np.array([2, 2, 2, 3, 3, 3])
    })
    t = l.left_join(r, [('x', 'a', '=='), ('z', 'c', '==')],
                    ['x', 'y', 'a', 'b'])
    check_tafra(t)

    r = Tafra({
        'a':
        np.array([1, 1, 1, 2, 2, 2]),
        '_a':
        np.array([1, 1, 2, 2, 3, 3]),
        'b':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'c':
        np.array([0, 0, 0, 1, 1, 1])
    })
    t = l.left_join(r, [('x', 'a', '=='), ('x', '_a', '==')],
                    ['x', 'y', 'a', 'b'])
    check_tafra(t)

    r = Tafra({
        'a':
        np.array([1, 1, 2, 2, 3, 3]),
        'b':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'c':
        np.array([0, 0, 0, 1, 1, 1])
    })
    t = l.left_join(r, [('x', 'a', '<')], ['x', 'y', 'a', 'b'])
    check_tafra(t)
예제 #2
0
def test_left_join_invalid() -> None:
    l = Tafra({
        'x':
        np.array([1, 2, 3, 4, 5, 6]),
        'y':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'z':
        np.array([0, 0, 0, 1, 1, 1])
    })

    r = Tafra({
        'a':
        np.array([1, 2, 3, 4, 5, 6]),
        'b':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'c':
        np.array([0, 0, 0, 1, 1, 1])
    })

    with pytest.raises(TypeError) as e:
        t = l.left_join(r, [('x', 'a', '===')], ['x', 'y', 'a', 'b'])

    r = Tafra({
        'a':
        np.array([1, 2, 3, 4, 5, 6], dtype='float'),
        'b':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'c':
        np.array([0, 0, 0, 1, 1, 1])
    })

    with pytest.raises(TypeError) as e:
        t = l.left_join(r, [('x', 'a', '==')], ['x', 'y', 'a', 'b'])

    r = Tafra({
        'a':
        np.array([1, 2, 3, 4, 5, 6]),
        'b':
        np.array(['one', 'two', 'one', 'two', 'one', 'two'], dtype='object'),
        'c':
        np.array([0, 0, 0, 1, 1, 1])
    })

    l._dtypes['x'] = 'float'
    with pytest.raises(TypeError) as e:
        t = l.left_join(r, [('x', 'a', '==')], ['x', 'y', 'a', 'b'])