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)
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'])