Пример #1
0
 def test_remove(self):
     elements = ["hola", "adios", "test", "test", "annie"]
     hs = HashSet(elements)
     assert hs.contains("annie") == True
     hs.remove("annie")
     assert hs.contains("annie") == False
     with self.assertRaises(ValueError):
         hs.remove("pamis")  # Element does not exist
Пример #2
0
 def test_size(self):
     hs = HashSet([5, 2, 6, 1, 3])
     assert hs.size() == 5
     hs.add(42)
     assert hs.size() == 6
     hs.add(21)
     assert hs.size() == 7
     hs.remove(42)
     assert hs.size() == 6
Пример #3
0
 def test_remove(self):
     new_set = HashSet(['red', 'brown', 'gray'])
     assert new_set.__length__() == 3
     new_set.remove('brown')
     assert new_set.__length__() == 2
     assert new_set.contains('brown') == False
     assert new_set.contains('red') == True
     assert new_set.contains('gray') == True
     new_set.remove('gray')
     assert new_set.__length__() == 1
     assert new_set.contains('red') == True
     assert new_set.contains('gray') == False
Пример #4
0
def Q3(highestInteger):
    """
    Parameter:
        highestInteger is the max integer to add to the HashSet. 1 - highestInteger. 
    """
    hashSet = HashSet([], 100)
    for number in range(1, highestInteger):
        hashSet.add(number)
    # removing 4 - highestInteger
    for number in range(4, highestInteger):
        hashSet.remove(number)
    startTime = time.time()
    print("3 in hashSet: ", 3 in hashSet)
    endTime = time.time()
    elapsedTime = round(endTime - startTime, 10)
    print("Time to find 3: ", elapsedTime)
    print("Array length: ", len(hashSet._array))
Пример #5
0
 def test_remove(self):
     hs = HashSet()
     assert hs.size == 0
     hs.add(0)
     hs.add(1)
     hs.add('zero')
     hs.add('one')
     assert hs.size == 4
     hs.remove(0)
     assert hs.size == 3
     hs.remove(1) == 2
     hs.remove('zero') == 1
     with self.assertRaises(KeyError):
         hs.remove('zero')
     with self.assertRaises(KeyError):
         hs.remove('0')
 def test_remove(self):
     """Check to see if items can be removed from the HashSet."""
     hashset = HashSet()
     hashset.add('Please')
     hashset.add('dont')
     hashset.add('remove')
     hashset.add('me')
     assert hashset.size == 4
     hashset.remove('Please')
     hashset.remove('dont')
     assert hashset.size == 2
     self.assertCountEqual(hashset.elements(), ['remove', 'me'])
     hashset.remove('me')
     assert hashset.size == 1
     with self.assertRaises(KeyError):
         hashset.remove('NOOOO')
Пример #7
0
 def test_remove(self):
     hs = HashSet()
     hs.add('A')
     hs.add('B')
     hs.add('C')
     hs.remove('A')
     assert hs.contains('A') == False
     assert hs.size == 2
     hs.remove('C')
     assert hs.contains('C') == False
     assert hs.size == 1
     hs.remove('B')
     assert hs.contains('B') == False
     assert hs.size == 0
     with self.assertRaises(ValueError):
         hs.remove('D') # Key never existed
         hs.remove('A') # Key no longer exists
Пример #8
0
 def test_remove(self):
     hs = HashSet()
     hs.add('I')
     hs.add('V')
     hs.add('X')
     assert hs.size == 3
     hs.remove('I')
     hs.remove('X')
     assert hs.size == 1
     with self.assertRaises(KeyError):
         hs.remove('X')  # Key no longer exists
     with self.assertRaises(KeyError):
         hs.remove('A')  # Key does not exist
Пример #9
0
 def test_add_and_remove(self):
     elements = [1, 2, 3]
     hs = HashSet(elements)
     hs.add(4)
     hs.add(5)
     hs.add(6)
     hs.add(7)
     assert hs.contains(2) is True
     assert hs.contains(4) is True
     assert hs.contains(5) is True
     assert hs.contains(6) is True
     assert hs.contains(7) is True
     assert hs.contains(21) is False
     hs.remove(7)
     assert hs.contains(7) is False
     hs.remove(6)
     assert hs.contains(6) is False
     hs.remove(5)
     assert hs.contains(5) is False
     hs.remove(4)
     assert hs.contains(4) is False
     assert hs.size() == 3
 def test_add_remove(self):
     set = HashSet()
     set.add('A')
     assert len(set) == 1
     assert set.contains('A') is True
     set.add('B')
     assert len(set) == 2
     assert set.contains('B') is True
     set.add('C')
     assert len(set) == 3
     assert set.contains('C') is True
     set.remove('B')
     assert len(set) == 2
     assert set.contains('B') is False
     set.remove('A')
     assert len(set) == 1
     assert set.contains('A') is False
     set.remove('C')
     assert len(set) == 0
     assert set.contains('C') is False
     with self.assertRaises(ValueError):
         set.remove('C')
Пример #11
0
from hashset import HashSet
a = HashSet([1, 2, 3, 4, 5, 4])
print(a)
a.add(7)
a.add(9)
print(a)
a.remove(1)
print(a)
def main():
    data = [i for i in range(100)]
    hash_set = HashSet(data)
    print("\nTest initial hash table")
    print("------------------\n")
    print(hash_set)
    print("\n")
    print("Test hash table after rehash")
    print("-------------------------\n")
    print(hash_set.rehash())
    print("\n")
    print("Clear hashtable and insert random integers from 1 to 400.")
    hash_set.clear()
    start = time.process_time()
    for i in range(400):
        integer = random.randint(1,400)
        hash_set.add(integer)
    elapsed = time.process_time() - start
    print("Elapsed CPU processing time for insertion of 400 random ints is: " + str(elapsed) + " seconds" + "\n")
    print("Clear hashtable and insert sequential integers from 1 to 400.")
    hash_set.clear()
    start = time.process_time()
    for i in range(400):
        hash_set.add(i)
    elapsed = time.process_time() - start
    print("Elapsed CPU processing time for insertion of 400 sequential ints is: " + str(elapsed) + " seconds" + "\n")
    print("Clear hashtable and insert integers from 1 to 10.")
    hash_set.clear()
    start = time.process_time()
    for i in range(1,11):
        hash_set.add(i)
    if 3 in hash_set:
        print(True)
    elapsed = time.process_time() - start
    print("Elapsed CPU processing time for insertion of 10 ints and finding the number '3' : " + str(elapsed) + " seconds" + "\n")
    print("Clear hashtable and insert integers from 1 to 3.")
    hash_set.clear()
    start = time.process_time()
    for i in range(1,4):
        hash_set.add(i)
    if 3 in hash_set:
        print(True)
    elapsed = time.process_time() - start
    print("Elapsed CPU processing time for insertion of 3 ints and finding the number '3' : " + str(elapsed) + " seconds" + "\n")
    
    print("Clear hashtable, insert integers from 1 to 10, remove ints 4 thru 10, find 3.")
    hash_set.clear()
    start = time.process_time()
    for i in range(1,11):
        hash_set.add(i)
    for i in range(4,11):
        hash_set.remove(i)
    if 3 in hash_set:
        print(True)
    elapsed = time.process_time() - start
    print("Elapsed CPU processing time to insert integers from 1 to 10, remove ints 4 thru 10, find '3': " + str(elapsed) + " seconds" + "\n")
    print("Clear hashtable and insert integers from 1 to 3, remove ints 1 and 2, find 3.")
    hash_set.clear()
    start = time.process_time()
    for i in range(1,4):
        hash_set.add(i)
    for i in range(1,2):
        hash_set.remove(i)
    if 3 in hash_set:
        print(True)
    elapsed = time.process_time() - start
    print("Elapsed CPU processing time to insert integers from 1 to 3, remove ints 1 thru 2, find '3': " + str(elapsed) + " seconds" + "\n")