Best Python code snippet using stestr_python
test_dictlist.py
Source:test_dictlist.py  
1"""Test functions of dictlist.py."""2import re3from copy import copy, deepcopy4from pickle import HIGHEST_PROTOCOL, dumps, loads5from typing import Tuple6import pytest7from cobra.core import DictList, Object8@pytest.fixture(scope="function")9def dict_list() -> Tuple[Object, DictList]:10    obj = Object("test1")11    test_list = DictList()12    test_list.append(obj)13    return obj, test_list14def test_contains(dict_list: Tuple[Object, DictList]) -> None:15    obj, test_list = dict_list16    assert obj in test_list17    assert obj.id in test_list18    assert Object("not_in") not in test_list19    assert "not_in" not in test_list20def test_index(dict_list: Tuple[Object, DictList]) -> None:21    obj, test_list = dict_list22    assert test_list.index("test1") == 023    assert test_list.index(obj) == 024    with pytest.raises(ValueError):25        test_list.index("f")26    with pytest.raises(ValueError):27        test_list.index(Object("f"))28    # Ensure indexing with an object that is a different object29    # also raises an error30    with pytest.raises(ValueError):31        test_list.index(Object("test1"))32def test_independent() -> None:33    a = DictList([Object("o1"), Object("o2")])34    b = DictList()35    assert "o1" in a36    assert "o1" not in b37    b.append(Object("o3"))38    assert "o3" not in a39    assert "o3" in b40def test_get_by_any(dict_list: Tuple[Object, DictList]) -> None:41    obj, test_list = dict_list42    assert test_list.get_by_any(0) == [obj]43    assert test_list.get_by_any("test1") == [obj]44    with pytest.raises(KeyError):45        test_list.get_by_any("not-in-list")46    with pytest.raises(TypeError):47        test_list.get_by_any(1.1)48    assert test_list.get_by_any(obj) == [obj]49def test_append(dict_list: Tuple[Object, DictList]) -> None:50    obj, test_list = dict_list51    obj2 = Object("test2")52    test_list.append(obj2)53    with pytest.raises(ValueError):54        test_list.append(Object("test1"))55    assert test_list.index(obj2) == 156    assert test_list[1] == obj257    assert test_list.get_by_id("test2") is obj258    assert len(test_list) == 259def test_insert(dict_list: Tuple[Object, DictList]) -> None:60    obj, test_list = dict_list61    obj2 = Object("a")62    test_list.insert(0, obj2)63    assert test_list.index(obj2) == 064    assert test_list.index("test1") == 165    assert test_list.get_by_id("a") is obj266    assert len(test_list) == 267    with pytest.raises(ValueError):68        test_list.append(obj2)69def test_extend(dict_list: Tuple[Object, DictList]) -> None:70    obj, test_list = dict_list71    obj_list = [Object(f"test{i:d}") for i in range(2, 10)]72    test_list.extend(obj_list)73    assert test_list[1].id == "test2"74    assert test_list.get_by_id("test2") == obj_list[0]75    assert test_list[8].id == "test9"76    assert len(test_list) == 977    with pytest.raises(ValueError):78        test_list.extend([Object("test1")])79    # Even if the object is unique, if it is present twice in the new80    # list, it should still raise an exception81    with pytest.raises(ValueError):82        test_list.extend([Object("testd"), Object("testd")])83def test_iadd(dict_list: Tuple[Object, DictList]) -> None:84    obj, test_list = dict_list85    obj_list = [Object(f"test{i:d}") for i in range(2, 10)]86    test_list += obj_list87    assert test_list[1].id == "test2"88    assert test_list.get_by_id("test2") == obj_list[0]89    assert test_list[8].id == "test9"90    assert len(test_list) == 991def test_add(dict_list: Tuple[Object, DictList]) -> None:92    obj, test_list = dict_list93    obj_list = [Object(f"test{i:d}") for i in range(2, 10)]94    sum_ = test_list + obj_list95    assert sum_ is not test_list96    assert sum_ is not obj_list97    assert test_list[0].id == "test1"98    assert sum_[1].id == "test2"99    # noinspection PyUnresolvedReferences100    assert sum_.get_by_id("test2") == obj_list[0]101    assert sum_[8].id == "test9"102    assert len(test_list) == 1103    assert len(sum_) == 9104def test_sub(dict_list: Tuple[Object, DictList]) -> None:105    obj, test_list = dict_list106    obj_list = [Object("test%d" % i) for i in range(2, 10)]107    sum_ = test_list + obj_list108    sub = sum_ - test_list109    assert test_list[0].id == "test1"110    assert sub[0].id == "test2"111    assert len(sub) == 8112    assert sum_ - obj_list == test_list113def test_isub(dict_list: Tuple[Object, DictList]) -> None:114    obj, test_list = dict_list115    obj_list = [Object("test%d" % i) for i in range(2, 10)]116    sum_ = test_list + obj_list117    sum_ -= obj_list[2:4]118    assert len(sum_) == 7119    with pytest.raises(ValueError):120        sum_ -= [Object("bogus")]121def test_init_copy(dict_list: Tuple[Object, DictList]) -> None:122    obj, test_list = dict_list123    test_list.append(Object("test2"))124    copied = DictList(test_list)125    assert test_list is not copied126    assert isinstance(copied, test_list.__class__)127    assert len(test_list) == len(copied)128    for i, v in enumerate(test_list):129        assert test_list[i].id == copied[i].id130        assert i == copied.index(v.id)131        assert test_list[i] is copied[i]132        assert v is copied.get_by_id(v.id)133def test_slice(dict_list: Tuple[Object, DictList]) -> None:134    obj, test_list = dict_list135    test_list.append(Object("test2"))136    test_list.append(Object("test3"))137    sliced = test_list[:-1]138    assert test_list is not sliced139    assert isinstance(sliced, test_list.__class__)140    assert len(test_list) == len(sliced) + 1141    for i, v in enumerate(sliced):142        assert test_list[i].id == sliced[i].id143        assert i == sliced.index(v.id)144        assert test_list[i] is sliced[i]145        assert test_list[i] is sliced.get_by_id(v.id)146def test_copy(dict_list: Tuple[Object, DictList]) -> None:147    obj, test_list = dict_list148    test_list.append(Object("test2"))149    copied = copy(test_list)150    assert test_list is not copied151    assert isinstance(copied, test_list.__class__)152    assert len(test_list) == len(copied)153    for i, v in enumerate(test_list):154        assert test_list[i].id == copied[i].id155        assert i == copied.index(v.id)156        assert test_list[i] is copied[i]157        assert v is copied.get_by_id(v.id)158def test_deepcopy(dict_list: Tuple[Object, DictList]) -> None:159    obj, test_list = dict_list160    test_list.append(Object("test2"))161    copied = deepcopy(test_list)162    assert test_list is not copied163    assert isinstance(copied, test_list.__class__)164    assert len(test_list) == len(copied)165    for i, v in enumerate(test_list):166        assert test_list[i].id == copied[i].id167        assert i == copied.index(v.id)168        assert test_list[i] is not copied[i]169        assert v is not copied.get_by_id(v.id)170def test_pickle(dict_list: Tuple[Object, DictList]) -> None:171    obj, test_list = dict_list172    test_list.append(Object("test2"))173    for protocol in range(HIGHEST_PROTOCOL):174        pickle_str = dumps(test_list, protocol=protocol)175        copied = loads(pickle_str)176        assert test_list is not copied177        assert isinstance(copied, test_list.__class__)178        assert len(test_list) == len(copied)179        for i, v in enumerate(test_list):180            assert test_list[i].id == copied[i].id181            assert i == copied.index(v.id)182            assert test_list[i] is not copied[i]183            assert v is not copied.get_by_id(v.id)184def test_query(dict_list: Tuple[Object, DictList]) -> None:185    obj, test_list = dict_list186    obj2 = Object("test2")187    obj2.name = "foobar1"188    test_list.append(obj2)189    result = test_list.query("test1")  # matches only test1190    assert len(result) == 1191    result = test_list.query("test1", "id")192    assert len(result) == 1193    assert result[0] == obj194    result = test_list.query("foo", "name")  # matches only test2195    assert len(result) == 1196    assert result[0] == obj2197    result = test_list.query("test", "id")  # matches test1 and test2198    assert len(result) == 2199    # Test with a regular expression200    result = test_list.query(re.compile("test[0-9]"), "id")201    assert len(result) == 2202    result = test_list.query(re.compile("test[29]"), "id")203    assert len(result) == 1204    # Test query of name205    result = test_list.query(re.compile("foobar."), "name")206    assert len(result) == 1207    # Test query with lambda function208    result = test_list.query(lambda x: x.id == "test1")209    assert len(result) == 1210def test_removal() -> None:211    obj_list = DictList(Object(f"test{i:d}") for i in range(2, 10))212    del obj_list[3]213    assert "test5" not in obj_list214    assert obj_list.index(obj_list[-1]) == len(obj_list) - 1215    assert len(obj_list) == 7216    del obj_list[3:5]217    assert "test6" not in obj_list218    assert "test7" not in obj_list219    assert obj_list.index(obj_list[-1]) == len(obj_list) - 1220    assert len(obj_list) == 5221    removed = obj_list.pop(1)222    assert obj_list.index(obj_list[-1]) == len(obj_list) - 1223    assert removed.id == "test3"224    assert "test3" not in obj_list225    assert len(obj_list) == 4226    removed = obj_list.pop()227    assert removed.id == "test9"228    assert removed.id not in obj_list229    assert len(obj_list) == 3230def test_set() -> None:231    obj_list = DictList(Object(f"test{i:d}") for i in range(10))232    obj_list[4] = Object("testa")233    assert obj_list.index("testa") == 4234    assert obj_list[4].id == "testa"235    obj_list[5:7] = [Object("testb"), Object("testc")]236    assert obj_list.index("testb") == 5237    assert obj_list[5].id == "testb"238    assert obj_list.index("testc") == 6239    assert obj_list[6].id == "testc"240    # Even if the object is unique, if it is present twice in the new241    # list, it should still raise an exception242    with pytest.raises(ValueError):243        obj_list.__setitem__(slice(5, 7), [Object("testd"), Object("testd")])244def test_sort_and_reverse() -> None:245    dl = DictList(Object(f"test{i:d}") for i in reversed(range(10)))246    assert dl[0].id == "test9"247    dl.sort()248    assert len(dl) == 10249    assert dl[0].id == "test0"250    assert dl.index("test0") == 0251    dl.reverse()252    assert dl[0].id == "test9"253    assert dl.index("test0") == 9254def test_dir(dict_list: Tuple[Object, DictList]) -> None:255    obj, test_list = dict_list256    # Make sure tab completion works257    attrs = dir(test_list)258    assert "test1" in attrs259    assert "_dict" in attrs  # attribute of DictList260def test_union(dict_list: Tuple[Object, DictList]) -> None:261    obj, test_list = dict_list262    test_list.union([Object("test1"), Object("test2")])263    # Add only 1 element264    assert len(test_list) == 2...test_SortingAlgorithms.py
Source:test_SortingAlgorithms.py  
1"""This file contains tests for SortingAlgorithms.py.2"""3from SortingAlgorithms import *4from LinkedList import *5from DoublyLinkedList import *6from typing import Optional, Callable7########################################8# Base tests for non-mutating sorts9########################################10class BaseNoMutatingSort:11    """The base class for a suit of tests that work with in place sorting algorithms.12    Inherit from this class and assign an algorithm to be used in the tests.13    """14    algorithm: Callable[[], None] = staticmethod(None)15    def test_unsortedlist(self) -> None:16        """Test algorithm on an unsorted list"""17        test_list = [9, 7, 5, 2, 4, 5, 3, 3, 2, 1, 10, 200]18        actual = self.algorithm(test_list)19        expected = sorted(test_list)20        assert actual == expected21    def test_sortedlist(self) -> None:22        """Test algorithm on a sorted list"""23        test_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]24        actual = self.algorithm(test_list)25        expected = sorted(test_list)26        assert actual == expected27    def test_reversedlist(self) -> None:28        """Test algorithm on a reversed list"""29        test_list = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]30        actual = self.algorithm(test_list)31        expected = sorted(test_list)32        assert actual == expected33    def test_key_reverse(self) -> None:34        """Test algorithm on a list, sort with a reversing key."""35        test_list = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]36        actual = self.algorithm(test_list, (lambda x: -x))37        expected = sorted(test_list, key=(lambda x: -x))38        assert actual == expected39    def test_unsorted_linked_list(self) -> None:40        """Test algorithm on an unsorted list"""41        test_list = LinkedList([9, 7, 5, 2, 4, 5, 3, 3, 2, 1, 10, 200])42        actual = self.algorithm(test_list).to_list()43        expected = sorted(test_list.to_list())44        assert actual == expected45    def test_sorted_linked_list(self) -> None:46        """Test algorithm on a sorted list"""47        test_list = LinkedList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])48        actual = self.algorithm(test_list).to_list()49        expected = sorted(test_list.to_list())50        assert actual == expected51    def test_reversed_linked_list(self) -> None:52        """Test algorithm on a reversed list"""53        test_list = LinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])54        actual = self.algorithm(test_list).to_list()55        expected = sorted(test_list.to_list())56        assert actual == expected57    def test_key_reverse_linked_list(self) -> None:58        """Test algorithm on a list, sort with a reversing key."""59        test_list = LinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])60        actual = self.algorithm(test_list, (lambda x: -x)).to_list()61        expected = sorted(test_list.to_list(), key=(lambda x: -x))62        assert actual == expected63    def test_unsorted_doubly_linked_list(self) -> None:64        """Test algorithm on an unsorted list"""65        test_list = DoublyLinkedList([9, 7, 5, 2, 4, 5, 3, 3, 2, 1, 10, 200])66        actual = self.algorithm(test_list).to_list()67        expected = sorted(test_list.to_list())68        assert actual == expected69    def test_sorted_doubly_linked_list(self) -> None:70        """Test algorithm on a sorted list"""71        test_list = DoublyLinkedList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])72        actual = self.algorithm(test_list).to_list()73        expected = sorted(test_list.to_list())74        assert actual == expected75    def test_reversed_doubly_linked_list(self) -> None:76        """Test algorithm on a reversed list"""77        test_list = DoublyLinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])78        actual = self.algorithm(test_list).to_list()79        expected = sorted(test_list.to_list())80        assert actual == expected81    def test_key_reverse_doubly_linked_list(self) -> None:82        """Test algorithm on a list, sort with a reversing key."""83        test_list = DoublyLinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])84        actual = self.algorithm(test_list, (lambda x: -x)).to_list()85        expected = sorted(test_list.to_list(), key=(lambda x: -x))86        assert actual == expected87########################################88# Base tests for mutating sorts89########################################90class BaseInPlaceSort:91    """The base class for a suit of tests that work with in place sorting algorithms.92    Inherit from this class and assign an algorithm to be used in the tests.93    """94    algorithm: Callable[[], None] = staticmethod(None)95    def test_unsortedlist(self) -> None:96        """Test algorithm on an unsorted list"""97        test_list = [9, 7, 5, 2, 4, 5, 3, 3, 2, 1, 10, 200]98        expected = sorted(test_list.copy())99        self.algorithm(test_list)100        actual = test_list.copy()101        assert actual == expected102    def test_sortedlist(self) -> None:103        """Test algorithm on an sorted list"""104        test_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]105        expected = sorted(test_list.copy())106        self.algorithm(test_list)107        actual = test_list.copy()108        assert actual == expected109    def test_reversedlist(self) -> None:110        """Test algorithm on a reversed list"""111        test_list = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]112        expected = sorted(test_list.copy())113        self.algorithm(test_list)114        actual = test_list.copy()115        assert actual == expected116    def test_key_reverse(self) -> None:117        """Test algorithm on a list, sort with a reversing key."""118        test_list = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]119        self.algorithm(test_list, (lambda x: -x))120        actual = test_list.copy()121        expected = sorted(test_list.copy(), key=(lambda x: -x))122        assert actual == expected123    def test_unsorted_linked_list(self) -> None:124        """Test algorithm on an unsorted list"""125        test_list = LinkedList([9, 7, 5, 2, 4, 5, 3, 3, 2, 1, 10, 200])126        expected = sorted(test_list.to_list())127        self.algorithm(test_list)128        actual = test_list.to_list()129        assert actual == expected130    def test_sorted_linked_list(self) -> None:131        """Test algorithm on an sorted list"""132        test_list = LinkedList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])133        expected = sorted(test_list.to_list())134        self.algorithm(test_list)135        actual = test_list.to_list()136        assert actual == expected137    def test_reversed_linked_list(self) -> None:138        """Test algorithm on a reversed list"""139        test_list = LinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])140        expected = sorted(test_list.to_list())141        self.algorithm(test_list)142        actual = test_list.to_list()143        assert actual == expected144    def test_key_reverse_linked_list(self) -> None:145        """Test algorithm on a list, sort with a reversing key."""146        test_list = LinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])147        self.algorithm(test_list, (lambda x: -x))148        actual = test_list.to_list()149        expected = sorted(test_list.to_list(), key=(lambda x: -x))150        assert actual == expected151    def test_unsorted_doubly_linked_list(self) -> None:152        """Test algorithm on an unsorted list"""153        test_list = DoublyLinkedList([9, 7, 5, 2, 4, 5, 3, 3, 2, 1, 10, 200])154        expected = sorted(test_list.to_list())155        self.algorithm(test_list)156        actual = test_list.to_list()157        assert actual == expected158    def test_sorted_doubly_linked_list(self) -> None:159        """Test algorithm on an sorted list"""160        test_list = DoublyLinkedList([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])161        expected = sorted(test_list.to_list())162        self.algorithm(test_list)163        actual = test_list.to_list()164        assert actual == expected165    def test_reversed_doubly_linked_list(self) -> None:166        """Test algorithm on a reversed list"""167        test_list = DoublyLinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])168        expected = sorted(test_list.to_list())169        self.algorithm(test_list)170        actual = test_list.to_list()171        assert actual == expected172    def test_key_reverse_doubly_linked_list(self) -> None:173        """Test algorithm on a list, sort with a reversing key."""174        test_list = DoublyLinkedList([10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0])175        self.algorithm(test_list, (lambda x: -x))176        actual = test_list.to_list()177        expected = sorted(test_list.to_list(), key=(lambda x: -x))178        assert actual == expected179class TestNoMutatingMergesort(BaseNoMutatingSort):180    """Test the non-mutating mergesort algorithm"""181    algorithm: Optional[tuple[Callable[[list], None]]] = staticmethod(no_mut_mergesort)182class TestInPlaceMergesort(BaseInPlaceSort):183    """Test the mutating mergesort algorithm"""184    algorithm: Optional[tuple[Callable[[list], None]]] = staticmethod(mergesort)185class TestInPlaceQuicksort(BaseInPlaceSort):186    """Test the mutating quicksort algorithm"""187    algorithm: Optional[tuple[Callable[[list], None]]] = staticmethod(quicksort)188class TestNoMutatingQuicksort(BaseNoMutatingSort):189    """Test the non-mutating quicksort algorithm"""190    algorithm: Optional[tuple[Callable[[list], None]]] = staticmethod(no_mut_quicksort)191class TestInPlaceInsertionSort(BaseInPlaceSort):192    """Test the mutating insertionsort algorithm"""193    algorithm: Optional[tuple[Callable[[list], None]]] = staticmethod(insertion_sort)194class TestInPlaceSelectionSort(BaseInPlaceSort):195    """Test the mutating selection sort algorithm"""...sort_summary.py
Source:sort_summary.py  
1import copy2import random3# region äº¤æ¢æåº4# åæ³¡æåº 稳å®5def sort_bubble(test_list):6    if test_list is None:7        return -18    len_list = len(test_list)9    if len_list <= 0:10        return test_list11    border = len_list - 112    index_tmp = -113    for _ in range(len_list):14        is_sorted = True15        for j in range(border):16            if test_list[j] > test_list[j + 1]:17                test_list[j], test_list[j + 1] = test_list[j + 1], test_list[j]18                is_sorted = False19                index_tmp = j20        if border != index_tmp:21            border = index_tmp22        if is_sorted:23            break24    return test_list25# å¿«éæåº26def sort_quick(test_list, start, end):27    if start > end:28        return29    key = get_pivot(test_list, start, end)30    sort_quick(test_list, start, key - 1)31    sort_quick(test_list, key + 1, end)32    return test_list33def get_pivot(unsorted_list, left_index, right_index):34    border, tmp = left_index, unsorted_list[left_index]35    for i in range(left_index, right_index + 1):36        if unsorted_list[i] < tmp:37            border += 138            unsorted_list[border], unsorted_list[i] = unsorted_list[i], unsorted_list[border]39    if border != left_index:40        unsorted_list[border], unsorted_list[left_index] = unsorted_list[left_index], unsorted_list[border]41    return border42def sort_quick_uo_recurse(test_list):43    index_dic = {'left': 0, 'right': len(test_list) - 1}44    stack = [index_dic]45    while len(stack):46        tmp = stack.pop()47        key = get_pivot(test_list, tmp['left'], tmp['right'])48        if key - 1 > tmp['left']:49            l_part = {'left': tmp['left'], 'right': key - 1}50            stack.append(l_part)51        if key + 1 < tmp['right']:52            r_part = {'left': key + 1, 'right': tmp['right']}53            stack.append(r_part)54    return test_list55# endregion56# region æå
¥æåº57# æå
¥æåº58def sort_insert(test_list):59    len_list = len(test_list)60    for i in range(len_list):61        cur_index = i62        while cur_index >= 1 and test_list[cur_index] < test_list[cur_index - 1]:63            test_list[cur_index], test_list[cur_index - 1] = test_list[cur_index - 1], test_list[cur_index]64            cur_index -= 165    return test_list66# å¸å°æåº67def sort_shell(test_list):68    len_list = len(test_list)69    gap = len_list // 270    while gap:71        for i in range(gap, len_list):72            j = i73            while j > 0 and test_list[j - gap] > test_list[j]:74                test_list[j - gap], test_list[j] = test_list[j], test_list[j - gap]75                j -= gap76        gap //= 277    return test_list78# endregion79# region éæ©æåº80# éæ©æåº81def sort_select(test_list):82    len_list = len(test_list)83    for i in range(len_list):84        min_index = i85        for j in range(i + 1, len_list):86            if test_list[j] < test_list[min_index]:87                min_index = j88        if min_index != i:89            test_list[min_index], test_list[i] = test_list[i], test_list[min_index]90    return test_list91# å æåº92def heap_build(test_list):93    len_list = len(test_list)94    for i in range(len_list // 2)[::-1]:95        heap_adjust(test_list, i, len_list)96def heap_adjust(test_list, cur_index, border):97    l_leaf = 2 * cur_index + 198    r_leaf = 2 * cur_index + 299    tmp_index = cur_index100    if l_leaf < border and test_list[l_leaf] > test_list[tmp_index]:101        tmp_index = l_leaf102    if r_leaf < border and test_list[r_leaf] > test_list[tmp_index]:103        tmp_index = r_leaf104    if tmp_index != cur_index:105        test_list[tmp_index], test_list[cur_index] = test_list[cur_index], test_list[tmp_index]106        heap_adjust(test_list, tmp_index, border)107def sort_heap(test_list):108    len_list = len(test_list)109    heap_build(test_list)110    for i in range(len_list)[::-1]:111        test_list[0], test_list[i] = test_list[i], test_list[0]112        heap_adjust(test_list, 0, i)113    return test_list114# endregion115# region å½å¹¶æåº116# å½å¹¶æåº117def merge_core(list_a, list_b):118    res = []119    while len(list_a) and len(list_b):120        if list_a[0] < list_b[0]:121            res.append(list_a.pop(0))122        else:123            res.append(list_b.pop(0))124    if len(list_a):125        res.extend(list_a)126    if len(list_b):127        res.extend(list_b)128    return res129def sort_merge(test_list):130    if len(test_list) <= 1:131        return test_list132    mid_index = len(test_list) // 2133    l_part = sort_merge(test_list[:mid_index])134    r_part = sort_merge(test_list[mid_index:])135    return merge_core(l_part, r_part)136# endregion137# region åºæ°æåº138# è®¡æ°æåº139def sort_count(test_list):140    max_value = test_list[0]141    min_value = test_list[0]142    for i in test_list:143        if max_value < i:144            max_value = i145        if min_value > i:146            min_value = i147    gap = max_value - min_value148    tmp_list = [0 for _ in range(gap + 1)]149    for i in test_list:150        tmp_list[i - min_value] += 1151    for i in range(1, gap + 1):152        tmp_list[i] += tmp_list[i - 1]153    result_list = [0 for _ in range(len(test_list))]154    for i in range(len(test_list)):155        result_list[tmp_list[test_list[i] - min_value] - 1] = test_list[i]156        tmp_list[test_list[i] - min_value] -= 1157    return result_list158# æ¡¶æåº159def sort_bucket(test_list):160    bucket_num = len(test_list)161    min_value = test_list[0]162    max_value = test_list[0]163    for i in test_list:164        if i > max_value:165            max_value = i166        if i < min_value:167            min_value = i168    gap = max_value - min_value169    buckets = [[] for _ in range(bucket_num)]170    for i in range(bucket_num):171        index = (test_list[i] - min_value) * (bucket_num - 1) // gap172        buckets[index].append(test_list[i])173    for bucket in buckets:174        sorted(bucket)175    return [i for j in buckets for i in j]176# endregion177# region æµè¯178def sort_test(test):179    bucket_num = len(test)180    max_value = test[0]181    min_value = test[0]182    for i in test:183        if max_value < i:184            max_value = i185        if min_value > i:186            min_value = i187    gap = max_value - min_value188    buckets = [[] for _ in range(bucket_num)]189    for i in range(bucket_num):190        index = (test[i] - min_value) * (bucket_num - 1) // gap191        buckets[index].append(test[i])192    for bucket in buckets:193        sorted(bucket)194    return [j for i in buckets for j in i]195# endregion196if __name__ == '__main__':197    arr_list = [i for i in range(10)]198    random.shuffle(arr_list)199    print(arr_list)...6-max_integer_test.py
Source:6-max_integer_test.py  
1#!/usr/bin/python32"""Unittest for max_integer([..])3"""4import unittest5max_integer = __import__("6-max_integer").max_integer6class TestMaxInteger(unittest.TestCase):7    """Class for unittest of max_integer program"""8    def test_documentation(self):9        self.assertTrue(len(__import__("6-max_integer").__doc__) > 0)10        self.assertTrue(len(max_integer.__doc__) > 0)11    def test_positives(self):12        """Testing positive numbers"""13        test_list = [1, 2, 3, 4]14        self.assertEqual(max_integer(test_list), 4)15        test_list = [1, 2, 4, 3]16        self.assertEqual(max_integer(test_list), 4)17        test_list = [4, 4, 4, 4]18        self.assertEqual(max_integer(test_list), 4)19        test_list = [1, 2, 4, 4]20        self.assertEqual(max_integer(test_list), 4)21        test_list = [1.1, 2.2, 3.3, 4.4]22        self.assertEqual(max_integer(test_list), 4.4)23        test_list = [4, 4.1, 4.12, 4.22]24        self.assertEqual(max_integer(test_list), 4.22)25        test_list = [1000, 1, 2, 3]26        self.assertEqual(max_integer(test_list), 1000)27        test_list = [1, 1000, 2, 3]28        self.assertEqual(max_integer(test_list), 1000)29        test_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]30        self.assertEqual(max_integer(test_list), 15)31        test_list = [15, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]32        self.assertEqual(max_integer(test_list), 15)33        test_list = [15]34        self.assertEqual(max_integer(test_list), 15)35        test_list = [[1, 2, 3, 4], [4, 3, 2, 1]]36        self.assertEqual(max_integer(test_list), [4, 3, 2, 1])37        test_list = (1, 2, 3, 4)38        self.assertEqual(max_integer(test_list), 4)39        test_list = ((1, 2, 3, 4), (4, 3, 2, 1))40        self.assertEqual(max_integer(test_list), (4, 3, 2, 1))41        test_list = ["Derek", "Kwok"]42        self.assertEqual(max_integer(test_list), "Kwok")43    def test_negatives(self):44        """Testing negative numbers"""45        test_list = [-2, 0, 2, 4]46        self.assertEqual(max_integer(test_list), 4)47        test_list = [-7, -6, -5, -4]48        self.assertEqual(max_integer(test_list), -4)49        test_list = [-4.22, -4.12, -4.10, -4.08]50        self.assertEqual(max_integer(test_list), -4.08)51    def test_none_and_zero(self):52        """Testing None and zeros"""53        test_list = []54        self.assertEqual(max_integer(test_list), None)55        test_list = [0, 0, 0, 0]56        self.assertEqual(max_integer(test_list), 0)57        self.assertEqual(max_integer(), None)58        test_list = {}59        self.assertEqual(max_integer(test_list), None)60        test_list = ()61        self.assertEqual(max_integer(test_list), None)62        self.assertEqual(max_integer(), None)63    def test_not_list(self):64        """Testing incorrect data types"""65        test_list = [1, 2, "Derek", 4]66        self.assertRaises(TypeError)67        test_list = [1, 2, [1, 2, 3], 4]68        self.assertRaises(TypeError)69        test_list = [1, 2, (1, 2, 3), 4]70        self.assertRaises(TypeError)71        test_list = 572        self.assertRaises(TypeError)73        test_list = 5.574        self.assertRaises(TypeError)75        test_list = (1, 2, 3, 4)76        self.assertEqual(max_integer(test_list), 4)77        test_list = "Derek"78        self.assertEqual(max_integer(test_list), 'r')79        test_list = 'D'80        self.assertEqual(max_integer(test_list), 'D')81        test_list = None82        self.assertRaises(TypeError)83        test_list = {1, 2, 3, 4}84        self.assertRaises(TypeError)85if __name__ == '__main__':86    unittest.main()...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
