Beispiel #1
0
def test_extend():
    slt = SortedList(load=17)

    slt.extend([])
    slt._check()

    slt.extend(range(100))
    slt._check()

    slt.extend([])
    slt._check()

    slt.extend(list(range(100, 200)))
    slt._check()

    for val in range(200, 300):
        del slt._index[:]
        slt._build_index()
        slt.extend([val] * (val - 199))
        slt._check()
Beispiel #2
0
    def _gen_array_sorted_req_idx(self, record):
        # return a list that is sorted from lowest significant
        from sortedcontainers import SortedList
        idx_list = SortedList()
        all_key_names = self._get_all_key_names()
        record_idx_list = record.get_sorted_key_list()
        for item in self.gpb:
            has_key_field = False
            present_list = []
            req_idx = record.create_index()
            for name in all_key_names:
                if not item.HasField(name):
                    continue
                default_value = getattr(item.__class__(), name)
                current_value = getattr(item, name)
                if default_value != current_value:
                    # if not the default value
                    record.set_idx_attr_by_obj(req_idx, name, current_value)
                    present_list.append(name)
                    has_key_field = True
            if not has_key_field:
                idx_list.extend(record_idx_list)
                return idx_list

            if len(present_list) == len(all_key_names):
                # all keys present
                idx_list.add(req_idx)
            else:
                # loop all in the db, the performance is not good at, be careful, if the request hit this situation
                for idx in record_idx_list:
                    match = True
                    for name in present_list:
                        val = record.get_idx_attr_by_obj(idx, name)
                        req_val = record.get_idx_attr_by_obj(req_idx, name)
                        if val != req_val:
                            match = False
                            break
                    if match:
                        idx_list.add(idx)
        return idx_list
def test_extend():
    slt = SortedList(load=17)

    slt.extend(range(100))
    slt._check()

    slt.extend(list(range(100, 200)))
    slt._check()

    for val in range(200, 300):
        slt.extend([val] * (val - 199))
        slt._check()
def test_extend():
    slt = SortedList(load=17)

    slt.extend(range(100))
    slt._check()

    slt.extend(list(range(100, 200)))
    slt._check()

    for val in range(200, 300):
        slt.extend([val] * (val - 199))
        slt._check()
def test_extend_valueerror2():
    slt = SortedList(range(20), load=4)
    slt.extend([17, 18, 19, 20, 21, 22, 23])
def test_extend_valueerror1():
    slt = SortedList()
    slt.extend([1, 2, 3, 5, 4, 6])
Beispiel #7
0
def test_extend_valueerror2():
    slt = SortedList(range(20), load=4)
    slt.extend([17, 18, 19, 20, 21, 22, 23])
Beispiel #8
0
def test_extend_valueerror1():
    slt = SortedList()
    slt.extend([1, 2, 3, 5, 4, 6])