69 lines
1.8 KiB
Python
69 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
import sys
|
|
sys.path.insert(0,'.')
|
|
sys.path.insert(0,'../')
|
|
import unittest
|
|
from entropy.misc import Lifo
|
|
|
|
class MiscTest(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.__lifo = Lifo()
|
|
self._lifo_item1 = set([1, 2, 3, 4])
|
|
self._lifo_item2 = set([1, 2, 3, 4])
|
|
self._lifo_item3 = dict(((None,x,) for x in xrange(0, 20)))
|
|
self._lifo_item4 = u'èòàèòà'
|
|
self._lifo_item5 = (1, 2, 3, 4,)
|
|
self._lifo_item6 = '------'
|
|
self._lifo_items = [self._lifo_item1, self._lifo_item2,
|
|
self._lifo_item3, self._lifo_item4, self._lifo_item5,
|
|
self._lifo_item6]
|
|
|
|
def tearDown(self):
|
|
"""
|
|
tearDown is run after each test
|
|
"""
|
|
sys.stdout.write("%s ran\n" % (self,))
|
|
sys.stdout.flush()
|
|
|
|
def test_lifo_push_pop(self):
|
|
|
|
# test push
|
|
for item in self._lifo_items:
|
|
self.__lifo.push(item)
|
|
|
|
# is filled?
|
|
self.assertEqual(self.__lifo.is_filled(), True)
|
|
|
|
# pop
|
|
myitems = self._lifo_items[:]
|
|
myitems.reverse()
|
|
for item in myitems:
|
|
lifo_item = self.__lifo.pop()
|
|
self.assertEqual(lifo_item, item)
|
|
|
|
# is filled?
|
|
self.assertEqual(self.__lifo.is_filled(), False)
|
|
|
|
# refill
|
|
for item in self._lifo_items:
|
|
self.__lifo.push(item)
|
|
|
|
# is filled?
|
|
self.assertEqual(self.__lifo.is_filled(), True)
|
|
|
|
# discard one
|
|
self.__lifo.discard(self._lifo_item3)
|
|
|
|
# remove and test
|
|
myitems.remove(self._lifo_item3)
|
|
for item in myitems:
|
|
lifo_item = self.__lifo.pop()
|
|
self.assertEqual(lifo_item, item)
|
|
|
|
# is filled?
|
|
self.assertEqual(self.__lifo.is_filled(), False)
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|