@@ -114,6 +114,105 @@ def _run() -> None:
114
114
repr (md .keys ())
115
115
116
116
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
+
117
216
def test_items_view_repr (benchmark : BenchmarkFixture , any_multidict_class : Type [MultiDict [str ]]) -> None :
118
217
md : MultiDict [str ] = any_multidict_class ({str (i ): str (i ) for i in range (100 )})
119
218
0 commit comments