示例#1
0
 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}')
示例#2
0
 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}')
示例#3
0
 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}')
示例#4
0
 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}')
示例#5
0
 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}')
示例#6
0
 def test_inner_fail_key3(self):
     result = bmerge(self.df1, self.df2, Between('a', 'e', True, True), 'v')
示例#7
0
 def test_inner_fail_key4(self):
     result = bmerge(self.df1, self.df2, Between('s', 'e', True, True), Between('id1', 'id2', True, True))
示例#8
0
 def test_inner_fail_key2(self):
     result = bmerge(self.df1, self.df2, 'id1', 'id1')
示例#9
0
 def test_inner_fail_key1(self):
     result = bmerge(self.df1, self.df2, 'id3', 'id3')
示例#10
0
 def test_inner_fail_validation2(self):
     result = bmerge(self.df1, self.df2, Between('s', 'e', True, True), 'v', how='abc')
示例#11
0
 def test_inner_fail_validation1(self):
     result = bmerge(self.df1, self.df2, Between('s', 'e', True, True), ['id1', 'v'])
示例#12
0
 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}')