Пример #1
0
 def test_in_right_only(self):
     l = pd.DataFrame({'A': [1, 2]}, index=(1, 3))
     r = pd.DataFrame({'A': [1, 2, 3]}, index=(1, 2, 3))
     d = list(compare(l, r))
     self.assertEqual(len(d), 3)
     self.assertIsInstance(d[1], Unmatched)
     self.assertEqual(d[1].side, 1)
Пример #2
0
 def test_external_sort_multi_index(self):
     l = [pd.DataFrame({'A': [1, 2, 3], 'B': [1, 2, 3], 'C': [1, 2, 3]}).set_index(['A', 'B']),
          pd.DataFrame({'A': [4, 5, 6], 'B': [4, 5, 6], 'C': [4, 5, 6]}).set_index(['A', 'B'])]
     r = [pd.DataFrame({'A': [6, 5, 4], 'B': [6, 5, 4], 'C': [6, 5, 4]}).set_index(['A', 'B']),
          pd.DataFrame({'A': [3, 2, 1], 'B': [3, 2, 1], 'C': [3, 2, 1]}).set_index(['A', 'B'])]
     d = list(compare(iter(l), iter(r), iterator=True))
     self.assertEqual(len(d), 6)
     for diff in d:
         self.assertIsInstance(diff, Identical)
     self.assertEqual([diff.left[0] for diff in d], [(i, i) for i in range(1, 7)])
Пример #3
0
 def test_external_sort(self):
     l = [pd.DataFrame({'A': [1, 2, 3]}, index=(1, 2, 3)),
          pd.DataFrame({'A': [4, 5, 6]}, index=(4, 5, 6))]
     r = [pd.DataFrame({'A': [6, 5, 4]}, index=(6, 5, 4)),
          pd.DataFrame({'A': [3, 2, 1]}, index=(3, 2, 1))]
     d = list(compare(iter(l), iter(r), iterator=True))
     self.assertEqual(len(d), 6)
     for diff in d:
         self.assertIsInstance(diff, Identical)
     self.assertEqual([diff.left[0] for diff in d], list(range(1, 7)))
Пример #4
0
 def test_multi_index(self):
     index = pd.MultiIndex.from_tuples(((2, 1), (1, 2), (1, 1)))
     l = pd.DataFrame({'A': [1, 2, 3]}, index=index)
     index = pd.MultiIndex.from_tuples(((1, 2), (1, 1), (2, 1)))
     r = pd.DataFrame({'A': [4, 3, 1]}, index=index)
     d = list(compare(l, r))
     self.assertEqual(len(d), 3)
     self.assertIsInstance(d[0], Identical)
     self.assertIsInstance(d[1], Different)
     self.assertEqual(d[1].left, ((1, 2), 2))
     self.assertEqual(d[1].right, ((1, 2), 4))
     self.assertIsInstance(d[2], Identical)
Пример #5
0
 def test_no_sort(self):
     l = pd.DataFrame({'A': [1, 2, 3], 'B': ['foo', 'bar', 'quux']})
     r = pd.DataFrame({'A': [1, 4, 3], 'B': ['foo', 'bar', 'quuy']})
     d = list(compare(l, r, sort=False))
     self.assertEqual(len(d), 3)
     self.assertIsInstance(d[0], Identical)
     self.assertEqual(d[0].left, d[0].right)
     self.assertIsInstance(d[1], Different)
     self.assertEqual(d[1].left, (1, 2, 'bar'))
     self.assertEqual(d[1].right, (1, 4, 'bar'))
     self.assertEqual(d[1].diff, [0])
     self.assertIsInstance(d[2], Different)
     self.assertEqual(d[2].diff, [1])