コード例 #1
0
ファイル: test_bidict.py プロジェクト: elianerpereira/gtg
 def test_remove_by_first_or_second(self):
     """ Tests for removing elements from the biDict """
     pair_first = (1, 'one')
     pair_second = (2, 'two')
     bidict = BiDict(pair_first, pair_second)
     bidict._remove_by_first(pair_first[0])
     bidict._remove_by_second(pair_second[1])
     missing_first = 0
     missing_second = 0
     try:
         bidict._get_by_first(pair_first[0])
     except KeyError:
         missing_first += 1
     try:
         bidict._get_by_first(pair_second[0])
     except KeyError:
         missing_first += 1
     try:
         bidict._get_by_second(pair_first[1])
     except KeyError:
         missing_second += 1
     try:
         bidict._get_by_second(pair_second[1])
     except KeyError:
         missing_second += 1
     self.assertEqual(missing_first, 2)
     self.assertEqual(missing_second, 2)
コード例 #2
0
ファイル: test_bidict.py プロジェクト: elianerpereira/gtg
 def test_add_and_gets(self):
     """ Test for the __init__, _get_by_first, _get_by_second function """
     pairs = [(uuid.uuid4(), uuid.uuid4()) for a in xrange(10)]
     bidict = BiDict(*pairs)
     for pair in pairs:
         self.assertEqual(bidict._get_by_first(pair[0]), pair[1])
         self.assertEqual(bidict._get_by_second(pair[1]), pair[0])
コード例 #3
0
    def __init__(self, *triplets):
        '''
        Creates the TwoKeyDict and optionally populates it with some data

        @param triplets: tuples for populating the TwoKeyDict. Format:
                         ((key1, key2, data_to_store), ...)
        '''
        super(TwoKeyDict, self).__init__()
        self._key_to_key_bidict = BiDict()
        self._primary_to_value = {}
        for triplet in triplets:
            self.add(triplet)