Merge "releasetools: Fix a bug in blockimgdiff.HeapItem."

am: a5e3a258fd

Change-Id: I38d4611c51ec511169c727dbfcbe6c2243fcab62
This commit is contained in:
Tao Bao 2018-01-02 19:58:58 +00:00 committed by android-build-merger
commit 442be8f1e5
2 changed files with 44 additions and 5 deletions

View File

@ -237,15 +237,23 @@ class Transfer(object):
class HeapItem(object):
def __init__(self, item):
self.item = item
# Negate the score since python's heap is a min-heap and we want
# the maximum score.
# Negate the score since python's heap is a min-heap and we want the
# maximum score.
self.score = -item.score
def clear(self):
self.item = None
def __bool__(self):
return self.item is None
return self.item is not None
# Python 2 uses __nonzero__, while Python 3 uses __bool__.
__nonzero__ = __bool__
# The rest operations are generated by functools.total_ordering decorator.
def __eq__(self, other):
return self.score == other.score
def __le__(self, other):
return self.score <= other.score

View File

@ -16,12 +16,43 @@
from __future__ import print_function
import common
import unittest
from blockimgdiff import BlockImageDiff, EmptyImage, Transfer
import common
from blockimgdiff import BlockImageDiff, EmptyImage, HeapItem, Transfer
from rangelib import RangeSet
class HealpItemTest(unittest.TestCase):
class Item(object):
def __init__(self, score):
self.score = score
def test_init(self):
item1 = HeapItem(self.Item(15))
item2 = HeapItem(self.Item(20))
item3 = HeapItem(self.Item(15))
self.assertTrue(item1)
self.assertTrue(item2)
self.assertTrue(item3)
self.assertNotEqual(item1, item2)
self.assertEqual(item1, item3)
# HeapItem uses negated scores.
self.assertGreater(item1, item2)
self.assertLessEqual(item1, item3)
self.assertTrue(item1 <= item3)
self.assertFalse(item2 >= item1)
def test_clear(self):
item = HeapItem(self.Item(15))
self.assertTrue(item)
item.clear()
self.assertFalse(item)
class BlockImageDiffTest(unittest.TestCase):
def test_GenerateDigraphOrder(self):