def test_insert_three(self): T = rank_tree([41, 38, 31]) self.assertEquals(T.root, T.iterative_tree_search(38)) self.assertEquals(T.nil.rank, 0) self.wrap(T, 38, 31, 41, -1, 1, 2) self.wrap(T, 31, -1, -1, 38, 0, 1) self.wrap(T, 41, -1, -1, 38, 0, 3)
def test_delete_two(self): T = rank_tree([41, 38, 31, 12, 19, 9]) T.delete(T.iterative_tree_search(9)) T.delete(T.iterative_tree_search(12)) self.wrap(T, 38, 19, 41, -1, 1, 3) self.wrap(T, 19, -1, 31, 38, 1, 1) self.wrap(T, 41, -1, -1, 38, 1, 4) self.wrap(T, 31, -1, -1, 19, 0, 2)
def test_insert_four(self): T = rank_tree([41, 38, 31, 12]) self.assertEqual(T.root, T.iterative_tree_search(38)) self.assertEqual(T.nil.rank, 0) self.wrap(T, 38, 31, 41, -1, 1, 3) self.wrap(T, 31, 12, -1, 38, 1, 2) self.wrap(T, 41, -1, -1, 38, 1, 4) self.wrap(T, 12, -1, -1, 31, 0, 1)
def test_delete_five(self): T = rank_tree([41, 38, 31, 12, 19, 9]) T.delete(T.iterative_tree_search(9)) T.delete(T.iterative_tree_search(12)) T.delete(T.iterative_tree_search(19)) T.delete(T.iterative_tree_search(31)) T.delete(T.iterative_tree_search(38)) self.wrap(T, 41, -1, -1, -1, 1, 1)
def test_insert_six(self): T = rank_tree([41, 38, 31, 12, 19, 9]) self.assertEquals(T.root, T.iterative_tree_search(38)) self.assertEquals(T.nil.rank, 0) self.wrap(T, 38, 19, 41, -1, 1, 5) self.wrap(T, 19, 12, 31, 38, 0, 3) self.wrap(T, 41, -1, -1, 38, 1, 6) self.wrap(T, 12, 9, -1, 19, 1, 2) self.wrap(T, 31, -1, -1, 19, 1, 4) self.wrap(T, 9, -1, -1, 12, 0, 1)
def test_delete_six(self): T = rank_tree([41, 38, 31, 12, 19, 9]) T.delete(T.iterative_tree_search(9)) T.delete(T.iterative_tree_search(12)) T.delete(T.iterative_tree_search(19)) T.delete(T.iterative_tree_search(31)) T.delete(T.iterative_tree_search(38)) T.delete(T.iterative_tree_search(41)) self.assertEquals(T.root, T.nil) self.assertEquals(T.nil.rank, 0)
def inversion(A): inversion = 0 i = 0 T = rank_tree([]) if isinstance(A, list): for key in A: i = i + 1 x = rank_node(key, None, None, None, 0, 1) T.insert(x) # print( 'x.key = {}, x.rank = {}'.format(x.key, x.rank)) inversion = inversion + i - x.rank return inversion else: print("Not invalid argument")
def inversion(A): inversion = 0 i = 0 T = rank_tree([]) if isinstance(A, list): for key in A: i = i + 1 x = rank_node(key, None, None, None, 0, 1) T.insert(x) # print 'x.key = {}, x.rank = {}'.format(x.key, x.rank) inversion = inversion + i - x.rank return inversion else: print "Not invalid argument"
def test_insert_two(self): T = rank_tree([41, 38]) self.assertEquals(T.root, T.iterative_tree_search(41)) self.assertEquals(T.nil.rank, 0) self.wrap(T, 41, 38, -1, -1, 1, 2) self.wrap(T, 38, -1, -1, 41, 0, 1)
def test_insert_one(self): T = rank_tree([41]) print T.root.iterative_tree_search(41).p.key self.assertEquals(T.root, T.root.iterative_tree_search(41)) self.assertEquals(T.nil.rank, 0) self.wrap(T, 41, -1, -1, -1, 1, 1)