| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | from django.test import TestCaseimport picklefrom jet.ordered_set import OrderedSetclass OrderedSetTestCase(TestCase):    def test_pickle(self):        set1 = OrderedSet('abracadabra')        roundtrip = pickle.loads(pickle.dumps(set1))        self.assertEqual(roundtrip, set1)    def test_empty_pickle(self):        empty_oset = OrderedSet()        empty_roundtrip = pickle.loads(pickle.dumps(empty_oset))        self.assertEqual(empty_roundtrip, empty_oset)    def test_order(self):        set1 = OrderedSet('abracadabra')        self.assertEqual(len(set1), 5)        self.assertEqual(set1, OrderedSet(['a', 'b', 'r', 'c', 'd']))        self.assertEqual(list(reversed(set1)), ['d', 'c', 'r', 'b', 'a'])    def test_binary_operations(self):        set1 = OrderedSet('abracadabra')        set2 = OrderedSet('simsalabim')        self.assertNotEqual(set1, set2)        self.assertEqual(set1 & set2, OrderedSet(['a', 'b']))        self.assertEqual(set1 | set2, OrderedSet(['a', 'b', 'r', 'c', 'd', 's', 'i', 'm', 'l']))        self.assertEqual(set1 - set2, OrderedSet(['r', 'c', 'd']))    def test_remove(self):        set1 = OrderedSet('abracadabra')        set1.remove('a')        set1.remove('b')        self.assertEqual(set1, OrderedSet('rcd'))        self.assertNotIn('a', set1)        self.assertNotIn('b', set1)        self.assertIn('r', set1)        set1.discard('a')        set1.discard('a')    def test_remove_error(self):        set1 = OrderedSet('abracadabra')        try:            set1.remove('z')        except KeyError:            pass    def test_clear(self):        set1 = OrderedSet('abracadabra')        set1.clear()        self.assertEqual(len(set1), 0)        self.assertEqual(set1, OrderedSet())    def test_pop(self):        set1 = OrderedSet('ab')        elem = set1.pop()        self.assertEqual(elem, 'b')        elem = set1.pop()        self.assertEqual(elem, 'a')        self.assertRaises(KeyError, set1.pop)
 |