def testFactories(self): impl = superposition.BaseSuperposition.impl_for_type( typedesc=types.TypeFactory(str)) self.assertEqual(impl, superposition.HashableSuperposition) self.assertIsInstance( impl.merge_values(("foo", "bar"), types.TypeFactory(str)), superposition.HashableSuperposition)
def testList(self): impl = superposition.ListSuperposition s1 = impl.merge_values(variants=(["foo"], ["bar"], ["bar"]), typedesc=types.TypeFactory(list)) self.assertTrue(["bar"] in s1) self.assertEqual(len(s1), 2) self.assertEqual(sorted(s1), [["bar"], ["foo"]])
def __init__(self, name, typedesc, docstring, component=None, hidden=False, width=20, style="compact"): self.name = name self.typedesc = types.TypeFactory(typedesc) self.docstring = docstring self.component = component self.hidden = hidden self.width = width self.style = style
def testHashable(self): impl = superposition.HashableSuperposition s1 = impl.merge_values(variants=("foo", "bar", "foo"), typedesc=types.TypeFactory(str)) self.assertEqual(sorted(s1), ["bar", "foo"]) self.assertEqual(len(s1), 2) self.assertTrue("foo" in s1) self.assertFalse("FOO" in s1) self.assertFalse(5 in s1) s1.add(5) s1.add(5) self.assertTrue("5" in s1) self.assertEqual(sorted(s1), ["5", "bar", "foo"]) s2 = impl(variants=("foo", ), typedesc=types.TypeFactory(str)) self.assertTrue(s1.issuperset(s2)) s2.add("baz") self.assertFalse(s1.issuperset(s2))
def __init__(self, typedesc, variants): self.typedesc = types.TypeFactory(typedesc) self._backing_container = self._make_container(variants)