コード例 #1
0
ファイル: keys.py プロジェクト: patricknevindwyer/Trieful
class StringKeyTests(unittest.TestCase):
	
	def setUp(self):
		self.trie = Trie()
		self.keys = ['bar', 'baz', 'barbell', 'foo', 'food', 'bar', 'bazbuzz', 'bazbuzz']
		
		for key in self.keys:
			self.trie.add(key, 1)
		
	def test_paths(self):
		paths = list(self.trie.paths())
		self.assertTrue(len(paths) == 6, "Trie::paths")
		
	def test_has(self):
		for key in self.keys:
			self.assertTrue(self.trie.has(key), "Trie::has")
			
	def test_in(self):
		for key in self.keys:
			self.assertTrue(key in self.trie, "Trie::__contains__")
	
	def test_get(self):
		for key in self.keys:
			self.assertTrue(self.trie.get(key) is not None, "Trie::get")
	
	def test_getItem(self):
		for key in self.keys:
			self.assertTrue(self.trie[key] is not None, "Trie::__getitem__")
			
	def test_remove(self):
		self.trie.remove('bar', 1)
		self.trie.remove('baz', 1)
		self.assertTrue(self.trie.get('bar') == 1, "Trie::remove")
		self.assertTrue(self.trie.get('baz') is None, "Trie::remove")

	
	def test_removeAll(self):
		self.trie.removeAll('bar')
		self.assertTrue(self.trie.get('bar') is None, "Trie::removeAll")
		self.assertTrue(self.trie.get('barbell') is not None, "Trie::removeAll retain leaves")
	
	def test_setItem(self):
		
		self.trie['blah'] = 1
		
		self.assertTrue(self.trie.get('blah') == 1, "Trie::__setitem__")
	
	def test_missingItems(self):
		notIn = ['bubbles', 'barb', 'bazz']
		
		for key in notIn:
			self.assertTrue(self.trie.get(key) is None, "Missing items")
		
	def test_singleItems(self):
		for item in ['baz', 'barbell', 'foo', 'food']:
			self.assertTrue(self.trie.get(item) == 1, "Trie::add non-duplicates")
	
	def test_doubleItems(self):
		for item in ['bar', 'bazbuzz']:
			self.assertTrue(self.trie.get(item) == [1, 1], "Trie::add duplicates")
コード例 #2
0
ファイル: countSubPaths.py プロジェクト: pombredanne/Trieful
class SubPathCountTests(unittest.TestCase):
    def setUp(self):
        self.trie = Trie(keyFunction=KEY_DOTTED, storeFunction=STORE_COUNT)
        self.keys = [
            'com.example', 'com.blah', 'com.example.sub1', 'com.example.sub2'
        ]
        for key in self.keys:
            self.trie.add(key, 1, atAllSubPaths=True)

    def test_paths(self):
        for k in self.keys:
            self.assertTrue(k in self.trie,
                            "Trie::paths has with atAllSubPaths")

    def test_counts(self):
        countParts = {
            'com': 4,
            'com.example': 3,
            'com.blah': 1,
            'com.example.sub1': 1,
            'com.example.sub2': 1
        }

        for countPart in countParts.items():
            val = self.trie.get(countPart[0])
            self.assertTrue(val == countPart[1],
                            "Trie::get with atAllSubPaths")

    def test_removes(self):
        self.trie.remove('com.example.sub2', atAllSubPaths=True)
        countParts = {
            'com': 3,
            'com.example': 2,
            'com.blah': 1,
            'com.example.sub1': 1
        }

        for countPart in countParts.items():
            val = self.trie.get(countPart[0])
            self.assertTrue(val == countPart[1],
                            "Trie::remove with atAllSubPaths")
コード例 #3
0
ファイル: trie_len.py プロジェクト: patricknevindwyer/Trieful
class TrieLenTests(unittest.TestCase):
	
	def setUp(self):
		self.trie = Trie(keyFunction = KEY_DOTTED, storeFunction = STORE_COUNT)
		self.keys = ['com.example', 'com.baz', 'com.example.sub', 'org.example', 'com.example', 'com.example.sub', 'com.example.sub']
		for key in self.keys:
			self.trie.add(key, 1)
	
	def test_has(self):
		for key in self.keys:
			self.assertTrue(self.trie.has(key), "Trie::has")
	
	def test_len(self):
		
		self.assertTrue(len(self.trie) == 4, "Trie::__len__")
	
	def test_removes(self):
		self.trie.remove('org.example')
		self.trie.remove('com.example')
		
		self.assertTrue(len(self.trie) == 3, "Trie::__len__")
コード例 #4
0
ファイル: trie_len.py プロジェクト: pombredanne/Trieful
class TrieLenTests(unittest.TestCase):
    def setUp(self):
        self.trie = Trie(keyFunction=KEY_DOTTED, storeFunction=STORE_COUNT)
        self.keys = [
            'com.example', 'com.baz', 'com.example.sub', 'org.example',
            'com.example', 'com.example.sub', 'com.example.sub'
        ]
        for key in self.keys:
            self.trie.add(key, 1)

    def test_has(self):
        for key in self.keys:
            self.assertTrue(self.trie.has(key), "Trie::has")

    def test_len(self):

        self.assertTrue(len(self.trie) == 4, "Trie::__len__")

    def test_removes(self):
        self.trie.remove('org.example')
        self.trie.remove('com.example')

        self.assertTrue(len(self.trie) == 3, "Trie::__len__")
コード例 #5
0
class SubPathCountTests(unittest.TestCase):
	
	def setUp(self):
		self.trie = Trie(keyFunction = KEY_DOTTED, storeFunction = STORE_COUNT)
		self.keys = ['com.example', 'com.blah', 'com.example.sub1', 'com.example.sub2']
		for key in self.keys:
			self.trie.add(key, 1, atAllSubPaths = True)
	
	def test_paths(self):
		for k in self.keys:
			self.assertTrue(k in self.trie, "Trie::paths has with atAllSubPaths")
			
	def test_counts(self):
		countParts = {
			'com': 4,
			'com.example': 3,
			'com.blah': 1,
			'com.example.sub1': 1,
			'com.example.sub2': 1
		}
		
		for countPart in countParts.items():
			val = self.trie.get(countPart[0])
			self.assertTrue(val == countPart[1], "Trie::get with atAllSubPaths")
	
	def test_removes(self):
		self.trie.remove('com.example.sub2', atAllSubPaths = True)
		countParts = {
			'com': 3,
			'com.example': 2,
			'com.blah': 1,
			'com.example.sub1': 1
		}		
		
		for countPart in countParts.items():
			val = self.trie.get(countPart[0])
			self.assertTrue(val == countPart[1], "Trie::remove with atAllSubPaths")
コード例 #6
0
ファイル: store_count.py プロジェクト: pombredanne/Trieful
class StoreCountTests(unittest.TestCase):
    def setUp(self):
        self.trie = Trie(keyFunction=KEY_DOTTED, storeFunction=STORE_COUNT)
        self.keys = [
            'com.example', 'com.baz', 'com.example.sub', 'org.example',
            'com.example', 'com.example.sub', 'com.example.sub'
        ]
        for key in self.keys:
            self.trie.add(key, 1)

    def test_has(self):
        for key in self.keys:
            self.assertTrue(self.trie.has(key), "Trie::has")

    def test_paths(self):
        for path in self.trie.paths():
            self.assertTrue(path in self.keys, "Trie::paths")

        paths = list(self.trie.paths())
        self.assertTrue(len(paths) == 4, "Trie::paths length")

    def test_counts(self):
        countParts = {'com.example': 2, 'com.baz': 1, 'com.example.sub': 3}

        for countPart in countParts.items():
            val = self.trie.get(countPart[0])
            self.assertTrue(val == countPart[1], "Trie::get with STORE_COUNT")

    def test_removes(self):
        self.trie.remove('org.example')
        self.trie.remove('com.example')

        self.assertTrue(
            self.trie.get('org.example') is None, "remove single path")
        self.assertTrue(
            self.trie.get('com.example') == 1, "remove double path")
コード例 #7
0
class StoreCountTests(unittest.TestCase):
	
	def setUp(self):
		self.trie = Trie(keyFunction = KEY_DOTTED, storeFunction = STORE_COUNT)
		self.keys = ['com.example', 'com.baz', 'com.example.sub', 'org.example', 'com.example', 'com.example.sub', 'com.example.sub']
		for key in self.keys:
			self.trie.add(key, 1)
	
	def test_has(self):
		for key in self.keys:
			self.assertTrue(self.trie.has(key), "Trie::has")
	
	def test_paths(self):
		for path in self.trie.paths():
			self.assertTrue(path in self.keys, "Trie::paths")
		
		paths = list(self.trie.paths())
		self.assertTrue(len(paths) == 4, "Trie::paths length")
	
	def test_counts(self):
		countParts = {
			'com.example': 2,
			'com.baz': 1,
			'com.example.sub': 3
		}
		
		for countPart in countParts.items():
			val = self.trie.get(countPart[0])
			self.assertTrue(val == countPart[1], "Trie::get with STORE_COUNT")
	
	def test_removes(self):
		self.trie.remove('org.example')
		self.trie.remove('com.example')
		
		self.assertTrue(self.trie.get('org.example') is None, "remove single path")
		self.assertTrue(self.trie.get('com.example') == 1, "remove double path")
コード例 #8
0
class StringKeyTests(unittest.TestCase):
    def setUp(self):
        self.trie = Trie()
        self.keys = [
            'bar', 'baz', 'barbell', 'foo', 'food', 'bar', 'bazbuzz', 'bazbuzz'
        ]

        for key in self.keys:
            self.trie.add(key, 1)

    def test_paths(self):
        paths = list(self.trie.paths())
        self.assertTrue(len(paths) == 6, "Trie::paths")

    def test_has(self):
        for key in self.keys:
            self.assertTrue(self.trie.has(key), "Trie::has")

    def test_in(self):
        for key in self.keys:
            self.assertTrue(key in self.trie, "Trie::__contains__")

    def test_get(self):
        for key in self.keys:
            self.assertTrue(self.trie.get(key) is not None, "Trie::get")

    def test_getItem(self):
        for key in self.keys:
            self.assertTrue(self.trie[key] is not None, "Trie::__getitem__")

    def test_remove(self):
        self.trie.remove('bar', 1)
        self.trie.remove('baz', 1)
        self.assertTrue(self.trie.get('bar') == 1, "Trie::remove")
        self.assertTrue(self.trie.get('baz') is None, "Trie::remove")

    def test_removeAll(self):
        self.trie.removeAll('bar')
        self.assertTrue(self.trie.get('bar') is None, "Trie::removeAll")
        self.assertTrue(
            self.trie.get('barbell') is not None,
            "Trie::removeAll retain leaves")

    def test_setItem(self):

        self.trie['blah'] = 1

        self.assertTrue(self.trie.get('blah') == 1, "Trie::__setitem__")

    def test_missingItems(self):
        notIn = ['bubbles', 'barb', 'bazz']

        for key in notIn:
            self.assertTrue(self.trie.get(key) is None, "Missing items")

    def test_singleItems(self):
        for item in ['baz', 'barbell', 'foo', 'food']:
            self.assertTrue(
                self.trie.get(item) == 1, "Trie::add non-duplicates")

    def test_doubleItems(self):
        for item in ['bar', 'bazbuzz']:
            self.assertTrue(
                self.trie.get(item) == [1, 1], "Trie::add duplicates")