Skip to content

Commit 675c4ae

Browse files
asvetlovbdraco
andauthored
Benchmarks for ItemsView (#1108)
Co-authored-by: J. Nick Koston <[email protected]>
1 parent b5d9bd1 commit 675c4ae

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

tests/test_views_benchmarks.py

+99
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,105 @@ def _run() -> None:
114114
repr(md.keys())
115115

116116

117+
def test_items_view_equals(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
118+
md1: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
119+
md2: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
120+
121+
@benchmark
122+
def _run() -> None:
123+
assert md1.items() == md2.items()
124+
125+
126+
def test_items_view_not_equals(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
127+
md1: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
128+
md2: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(20, 120)})
129+
130+
@benchmark
131+
def _run() -> None:
132+
assert md1.items() != md2.items()
133+
134+
135+
def test_items_view_more(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
136+
md: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
137+
s = {(str(i), str(i)) for i in range(50)}
138+
139+
@benchmark
140+
def _run() -> None:
141+
assert md.items() > s
142+
143+
144+
def test_items_view_more_or_equal(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
145+
md: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
146+
s = {(str(i), str(i)) for i in range(100)}
147+
148+
@benchmark
149+
def _run() -> None:
150+
assert md.items() >= s
151+
152+
153+
def test_items_view_less(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
154+
md: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
155+
s = {(str(i), str(i)) for i in range(150)}
156+
157+
@benchmark
158+
def _run() -> None:
159+
assert md.items() < s
160+
161+
162+
def test_items_view_less_or_equal(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
163+
md: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
164+
s = {(str(i), str(i)) for i in range(100)}
165+
166+
@benchmark
167+
def _run() -> None:
168+
assert md.items() <= s
169+
170+
171+
def test_items_view_and(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
172+
md1: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
173+
md2: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(50, 150)})
174+
175+
@benchmark
176+
def _run() -> None:
177+
assert len(md1.items() & md2.items()) == 50
178+
179+
180+
def test_items_view_or(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
181+
md1: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
182+
md2: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(50, 150)})
183+
184+
@benchmark
185+
def _run() -> None:
186+
assert len(md1.items() | md2.items()) == 150
187+
188+
189+
def test_items_view_sub(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
190+
md1: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
191+
md2: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(50, 150)})
192+
193+
@benchmark
194+
def _run() -> None:
195+
assert len(md1.items() - md2.items()) == 50
196+
197+
198+
def test_items_view_xor(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
199+
md1: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
200+
md2: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(50, 150)})
201+
202+
@benchmark
203+
def _run() -> None:
204+
assert len(md1.items() ^ md2.items()) == 100
205+
206+
207+
def test_items_view_is_disjoint(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
208+
md1: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
209+
md2: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100, 200)})
210+
211+
@benchmark
212+
def _run() -> None:
213+
assert md1.items().isdisjoint(md2.items())
214+
215+
117216
def test_items_view_repr(benchmark: BenchmarkFixture, any_multidict_class: Type[MultiDict[str]]) -> None:
118217
md: MultiDict[str] = any_multidict_class({str(i): str(i) for i in range(100)})
119218

0 commit comments

Comments
 (0)