Exemplo n.º 1
0
class HashSet(BaseSet):
    def __init__(self):
        self.__hash_map = HashMap()

    def size(self) -> int:
        return self.__hash_map.size()

    def is_empty(self) -> bool:
        return self.__hash_map.is_empty()

    def is_contains(self, key) -> bool:
        return self.__hash_map.contains(key)

    def add(self, key):
        self.__hash_map.put(key, None)

    def remove(self, key):
        self.__hash_map.remove(key)

    def traversal(self, visit=None):
        """
        def visit(e):
            print(e)
            return True if e == 10 else False
        :param visit: lambda函数, 类似于上面形式的
        :return:
        """
        # assert visit is not None, "visit不能为空,请传入一个lambda函数"

        return self.__hash_map.traversal(visit)
Exemplo n.º 2
0
def test3(cus_map: HashMap, test_unit):
    for i in range(1, 20):
        cus_map.put(Key(i), i)
    cus_map.put(Key(4), 100)
    test_unit.assertTrue(cus_map.size() == 19)
    test_unit.assertTrue(cus_cus_map.get(Key(4)) == 100)
    test_unit.assertTrue(cus_cus_map.get(Key(16)) == 16)
    test_unit.assertTrue(cus_cus_map.get(Key(18)) == 18)
Exemplo n.º 3
0
def test7(cus_map: HashMap, test_unit):
    for i in range(1, 21):
        cus_map.put(Key(i), i)

    cus_map.put(SubKey2(1), 5)
    test_unit.assertTrue(cus_map.get(SubKey1(1)) == 5)
    test_unit.assertTrue(cus_map.get(SubKey2(1)) == 5)
    test_unit.assertTrue(cus_map.size() == 20)
Exemplo n.º 4
0
def test4(cus_map: HashMap, test_unit):
    for i in range(1, 21):
        cus_map.put(Key(i), i)
    for i in range(5, 8):
        cus_map.put(Key(i), i + 5)
    test_unit.assertTrue(cus_map.size() == 20)
    test_unit.assertTrue(cus_cus_map.get(Key(4)) == 4)
    test_unit.assertTrue(cus_cus_map.get(Key(5)) == 10)
    test_unit.assertTrue(cus_cus_map.get(Key(6)) == 11)
    test_unit.assertTrue(cus_cus_map.get(Key(7)) == 12)
    test_unit.assertTrue(cus_cus_map.get(Key(8)) == 8)
Exemplo n.º 5
0
def test1(map: HashMap):
    """
    测试具有相同属性的实例对象是否为同一个键,
    :param map:
    :return:
    """
    p1 = Person('abc', 18, 1.78)
    p2 = Person('abc', 18, 1.78)
    map.put(p1, '1')
    map.put(p2, '2')
    # 1
    print(map.size())
Exemplo n.º 6
0
def test3(cus_map: HashMap, test_unit):
    for i in range(1, 20):
        cus_map.put(Key(i), i)
    cus_map.put(Key(4), 100)
    # print(cus_map.size())
    # print('***' * 10)
    # visitor = Visitor(visit)
    # cus_map.traversal(visitor)
    #
    test_unit.assertTrue(cus_map.size() == 19)
    test_unit.assertTrue(cus_map.get(Key(4)) == 100)
    test_unit.assertTrue(cus_map.get(Key(16)) == 16)
    test_unit.assertTrue(cus_map.get(Key(18)) == 18)
Exemplo n.º 7
0
def test4(cus_map: HashMap, test_unit):
    for i in range(1, 21):
        cus_map.put(Key(i), i)
    # print(cus_map.size())
    # print('***' * 10)
    # visitor = Visitor(visit)
    # cus_map.traversal(visitor)
    # print(cus_map.get(Key(12)))
    # print('----end---end' * 5)

    for i in range(5, 8):
        cus_map.put(Key(i), i + 5)
    # print(cus_map.size())
    # print('***' * 10)
    # visitor = Visitor(visit)
    # cus_map.traversal(visitor)
    test_unit.assertTrue(cus_map.size() == 20)
    test_unit.assertTrue(cus_map.get(Key(4)) == 4)
    test_unit.assertTrue(cus_map.get(Key(5)) == 10)
    test_unit.assertTrue(cus_map.get(Key(6)) == 11)
    test_unit.assertTrue(cus_map.get(Key(7)) == 12)
    test_unit.assertTrue(cus_map.get(Key(8)) == 8)
Exemplo n.º 8
0
def test2(map: HashMap, test_unit):
    p1 = Person('abc', 18, 1.78)
    p2 = Person('abc', 18, 1.78)
    map.put(p1, 1)
    map.put(p2, 2)
    map.put('abc', 3)
    map.put('xyz', 4)
    map.put('abc', 5)
    map.put(None, 6)

    # visitor = Visitor(visit)
    # map.traversal(visitor)

    test_unit.assertTrue(map.size() == 4)
    test_unit.assertTrue(map.get('xyz') == 4)
    test_unit.assertTrue(map.get(None) == 6)
    test_unit.assertTrue(map.contains_key('abc'))
    test_unit.assertTrue(map.contains_value(2))
    test_unit.assertTrue(map.remove('abc') == 5)
    test_unit.assertTrue(map.size() == 3)
Exemplo n.º 9
0
def test5(cus_map: HashMap, test_unit):
    cus_map.put(None, 1)
    cus_map.put(object(), 2)
    cus_map.put('jack', 3)
    cus_map.put(10, 4)
    cus_map.put(object(), 5)
    cus_map.put('jack', 6)
    cus_map.put(10, 7)
    cus_map.put(None, 8)
    cus_map.put(10, None)
    test_unit.assertTrue(cus_map.size() == 5)
    test_unit.assertTrue(cus_map.get(None) == 8)
    test_unit.assertTrue(cus_map.get('jack') == 6)
    test_unit.assertTrue(cus_map.get(10) == None)
    test_unit.assertTrue(cus_map.get(object()) == None)
    test_unit.assertTrue(cus_map.contains_key(10))
    test_unit.assertTrue(cus_map.contains_key(None))
    test_unit.assertTrue(cus_map.contains_value(None))
Exemplo n.º 10
0
def test6(cus_map: HashMap, test_unit):
    cus_map.put("jack", 1)
    cus_map.put("rose", 2)
    cus_map.put("jim", 3)
    cus_map.put("jake", 4)
    for i in range(1, 11):
        cus_map.put("test" + str(i), i)
        cus_map.put(Key(i), i)

    for i in range(5, 8):
        test_unit.assertTrue(cus_map.remove(Key(i)) == i)

    for i in range(1, 4):
        cus_map.put(Key(i), i + 5)

    test_unit.assertTrue(cus_map.size() == 21)
    test_unit.assertTrue(cus_map.get(Key(1)) == 6)
    test_unit.assertTrue(cus_map.get(Key(2)) == 7)
    test_unit.assertTrue(cus_map.get(Key(3)) == 8)
    test_unit.assertTrue(cus_map.get(Key(4)) == 4)
    test_unit.assertTrue(cus_map.get(Key(5)) == None)
    test_unit.assertTrue(cus_map.get(Key(6)) == None)
    test_unit.assertTrue(cus_map.get(Key(7)) == None)
    test_unit.assertTrue(cus_map.get(Key(8)) == 8)