~teamproject/sisepeu/main

« back to all changes in this revision

Viewing changes to env/lib/python3.6/site-packages/pandas/tests/indexes/test_frozen.py

  • Committer: riveramarlon113 at gmail
  • Date: 2023-06-04 02:19:28 UTC
  • Revision ID: riveramarlon113@gmail.com-20230604021928-rbt05g3480tfhxxj
Correcion de cosas pequeñas

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
import re
2
 
 
3
 
import pytest
4
 
 
5
 
from pandas.core.indexes.frozen import FrozenList
6
 
 
7
 
 
8
 
class TestFrozenList:
9
 
 
10
 
    unicode_container = FrozenList(["\u05d0", "\u05d1", "c"])
11
 
 
12
 
    def setup_method(self, _):
13
 
        self.lst = [1, 2, 3, 4, 5]
14
 
        self.container = FrozenList(self.lst)
15
 
 
16
 
    def check_mutable_error(self, *args, **kwargs):
17
 
        # Pass whatever function you normally would to pytest.raises
18
 
        # (after the Exception kind).
19
 
        mutable_regex = re.compile("does not support mutable operations")
20
 
        msg = "'(_s)?re.(SRE_)?Pattern' object is not callable"
21
 
        with pytest.raises(TypeError, match=msg):
22
 
            mutable_regex(*args, **kwargs)
23
 
 
24
 
    def test_no_mutable_funcs(self):
25
 
        def setitem():
26
 
            self.container[0] = 5
27
 
 
28
 
        self.check_mutable_error(setitem)
29
 
 
30
 
        def setslice():
31
 
            self.container[1:2] = 3
32
 
 
33
 
        self.check_mutable_error(setslice)
34
 
 
35
 
        def delitem():
36
 
            del self.container[0]
37
 
 
38
 
        self.check_mutable_error(delitem)
39
 
 
40
 
        def delslice():
41
 
            del self.container[0:3]
42
 
 
43
 
        self.check_mutable_error(delslice)
44
 
 
45
 
        mutable_methods = ("extend", "pop", "remove", "insert")
46
 
 
47
 
        for meth in mutable_methods:
48
 
            self.check_mutable_error(getattr(self.container, meth))
49
 
 
50
 
    def test_slicing_maintains_type(self):
51
 
        result = self.container[1:2]
52
 
        expected = self.lst[1:2]
53
 
        self.check_result(result, expected)
54
 
 
55
 
    def check_result(self, result, expected):
56
 
        assert isinstance(result, FrozenList)
57
 
        assert result == expected
58
 
 
59
 
    def test_string_methods_dont_fail(self):
60
 
        repr(self.container)
61
 
        str(self.container)
62
 
        bytes(self.container)
63
 
 
64
 
    def test_tricky_container(self):
65
 
        repr(self.unicode_container)
66
 
        str(self.unicode_container)
67
 
 
68
 
    def test_add(self):
69
 
        result = self.container + (1, 2, 3)
70
 
        expected = FrozenList(self.lst + [1, 2, 3])
71
 
        self.check_result(result, expected)
72
 
 
73
 
        result = (1, 2, 3) + self.container
74
 
        expected = FrozenList([1, 2, 3] + self.lst)
75
 
        self.check_result(result, expected)
76
 
 
77
 
    def test_iadd(self):
78
 
        q = r = self.container
79
 
 
80
 
        q += [5]
81
 
        self.check_result(q, self.lst + [5])
82
 
 
83
 
        # Other shouldn't be mutated.
84
 
        self.check_result(r, self.lst)
85
 
 
86
 
    def test_union(self):
87
 
        result = self.container.union((1, 2, 3))
88
 
        expected = FrozenList(self.lst + [1, 2, 3])
89
 
        self.check_result(result, expected)
90
 
 
91
 
    def test_difference(self):
92
 
        result = self.container.difference([2])
93
 
        expected = FrozenList([1, 3, 4, 5])
94
 
        self.check_result(result, expected)
95
 
 
96
 
    def test_difference_dupe(self):
97
 
        result = FrozenList([1, 2, 3, 2]).difference([2])
98
 
        expected = FrozenList([1, 3])
99
 
        self.check_result(result, expected)
100
 
 
101
 
    def test_tricky_container_to_bytes_raises(self):
102
 
        # GH 26447
103
 
        msg = "^'str' object cannot be interpreted as an integer$"
104
 
        with pytest.raises(TypeError, match=msg):
105
 
            bytes(self.unicode_container)