Code Duplication    Length = 19-19 lines in 3 locations

tests/type/test_category.py 3 locations

@@ 251-269 (lines=19) @@
248
        with self.assertRaises(TypeError):
249
            _ = color1.issubset(125)
250
251
    def test_issuperset(self):
252
        Color = imprecise_category('Color', ['R', 'G', 'B'])
253
        color1 = Color(['B'])
254
        color2 = Color(['R', 'G'])
255
        color3 = Color(['R', 'B'])
256
        self.assertFalse(
257
            color1.issuperset(color2),
258
            "['B'] is not a superset of ['R', 'G']"
259
        )
260
        self.assertTrue(
261
            color3.issuperset(color1),
262
            "['R', 'B'] is a superset of ['B']"
263
        )
264
        self.assertTrue(
265
            color3.issuperset(['R']),
266
            "['R', 'B'] is a superset of ['R']"
267
        )
268
        with self.assertRaises(TypeError):
269
            _ = color1.issuperset(125)
270
271
    def test_union(self):
272
        Color = imprecise_category('Color', ['R', 'G', 'B'])
@@ 231-249 (lines=19) @@
228
        with self.assertRaises(TypeError):
229
            _ = color1.isdisjoint(125)
230
231
    def test_issubset(self):
232
        Color = imprecise_category('Color', ['R', 'G', 'B'])
233
        color1 = Color(['B'])
234
        color2 = Color(['R', 'G'])
235
        color3 = Color(['R', 'B'])
236
        self.assertFalse(
237
            color1.issubset(color2),
238
            "['B'] is not a subset of ['R', 'G']"
239
        )
240
        self.assertTrue(
241
            color1.issubset(color3),
242
            "['B'] is a subset of ['R', 'B']"
243
        )
244
        self.assertTrue(
245
            color1.issubset(['B', 'G']),
246
            "['B'] is a subset of ['B', 'G']"
247
        )
248
        with self.assertRaises(TypeError):
249
            _ = color1.issubset(125)
250
251
    def test_issuperset(self):
252
        Color = imprecise_category('Color', ['R', 'G', 'B'])
@@ 211-229 (lines=19) @@
208
        with self.assertRaises(TypeError):
209
            _ = color1 ^ 'dummy'
210
211
    def test_isdisjoint(self):
212
        Color = imprecise_category('Color', ['R', 'G', 'B'])
213
        color1 = Color(['B'])
214
        color2 = Color(['R', 'G'])
215
        color3 = Color(['R', 'B'])
216
        self.assertTrue(
217
            color1.isdisjoint(color2),
218
            "bool(['B'] & ['R', 'G']) = True"
219
        )
220
        self.assertFalse(
221
            color1.isdisjoint(color3),
222
            "bool(['B'] & ['R', 'B']) = False"
223
        )
224
        self.assertTrue(
225
            color1.isdisjoint(['R', 'G']),
226
            "bool(['B'] & ['R', 'G']) = True"
227
        )
228
        with self.assertRaises(TypeError):
229
            _ = color1.isdisjoint(125)
230
231
    def test_issubset(self):
232
        Color = imprecise_category('Color', ['R', 'G', 'B'])