import unittest from collectionparser.utils import RingDictionary class UtilsTest(unittest.TestCase): def test_ring_dictionary_1(self): rd = RingDictionary(max_num_keys=3) rd['a'] = 2 self.assertListEqual(sorted(rd.d), ['a']) self.assertListEqual(sorted(rd.k), ['a']) rd['b'] = 2 self.assertListEqual(sorted(rd.d), ['a', 'b']) self.assertListEqual(sorted(rd.k), ['a', 'b']) rd['c'] = 2 self.assertListEqual(sorted(rd.d), ['a', 'b', 'c']) self.assertListEqual(sorted(rd.k), ['a', 'b', 'c']) rd['d'] = 2 self.assertListEqual(sorted(rd.d), ['b', 'c', 'd']) self.assertListEqual(sorted(rd.k), ['b', 'c', 'd']) rd = RingDictionary(max_num_keys=1) rd['c'] = 1 rd['c'] = 2 rd['c'] = 3 self.assertListEqual(sorted(rd.d), ['c']) self.assertListEqual(sorted(rd.k), ['c']) rd['d'] = 3 self.assertListEqual(sorted(rd.d), ['d']) self.assertListEqual(sorted(rd.k), ['d']) if __name__ == '__main__': unittest.main()