def test_inner_id2ll_le(self): result = bmerge(self.df1, self.df2, ['id1', 'id2', LE('e')], ['id3', 'id4', 'v']) print(result) for idx, row in result.iterrows(): assert_true(row['id1'] == row['id3']) assert_true(row['id2'] == row['id4']) assert_true(row['e'] >= row['v'], f'row: {row}')
def test_inner_id2lr(self): result = bmerge(self.df1, self.df2, ['id1', Between('s', 'e', True, True), 'id2'], ['id3', 'v', 'id4']) print(result) for idx, row in result.iterrows(): assert_true(row['id1'] == row['id3']) assert_true(row['id2'] == row['id4']) assert_true(row['s'] < row['v'] and row['e'] > row['v'], f'row: {row}')
def test_null_id1l_opposite(self): result = bmerge(self.df5, self.df1, ['id3', 'v'], ['id1', Between('s', 'e', True, True)], how='inner') print(result) for idx, row in result.iterrows(): if not pandas.isnull(row['id3']): assert_true(row['id1'] == row['id3']) assert_true(row['s'] <= row['v'], f'row: {row}') assert_true(row['e'] >= row['v'], f'row: {row}')
def test_right_id2lr(self): result = bmerge(self.df1, self.df2, ['id1', Between('s', 'e', True, True), 'id2'], ['id3', 'v', 'id4'], 'right') print(result) for idx, row in result.iterrows(): if pandas.isnull(row['id1']): assert_false(any([row_['id1'] == row['id3'] and row_['id2'] == row['id4'] and row_['s'] < row['v'] < row_['e'] for idx, row_ in self.df1.iterrows()])) else: assert_true(row['id1'] == row['id3'], f'row: {row}') assert_true(row['id2'] == row['id4'], f'row: {row}') assert_true(row['s'] < row['v'] and row['e'] > row['v'], f'row: {row}')
def test_inner_simple(self): result = bmerge(self.df1, self.df2, [Between('s', 'e', True, True)], ['v']) print(result) for idx, row in result.iterrows(): assert_true(row['s'] < row['v'] and row['e'] > row['v'], f'row: {row}')
def test_inner_fail_key3(self): result = bmerge(self.df1, self.df2, Between('a', 'e', True, True), 'v')
def test_inner_fail_key4(self): result = bmerge(self.df1, self.df2, Between('s', 'e', True, True), Between('id1', 'id2', True, True))
def test_inner_fail_key2(self): result = bmerge(self.df1, self.df2, 'id1', 'id1')
def test_inner_fail_key1(self): result = bmerge(self.df1, self.df2, 'id3', 'id3')
def test_inner_fail_validation2(self): result = bmerge(self.df1, self.df2, Between('s', 'e', True, True), 'v', how='abc')
def test_inner_fail_validation1(self): result = bmerge(self.df1, self.df2, Between('s', 'e', True, True), ['id1', 'v'])
def test_inner_name2(self): result = bmerge(self.df1, self.df3, ['id1', Between('s', 'e', True, True)], ['id1', 'v']) print(result) for idx, row in result.iterrows(): assert_true(row['id1_x'] == row['id1_y']) assert_true(row['s'] < row['v'] and row['e'] > row['v'], f'row: {row}')