def METHOD_NAME(self):
    v = variable()
    s = sos([v], weights=[1])
    self.assertEqual(len(s), 1)
    self.assertIs(s.variables[0], v)
    self.assertTrue(v in s)
    self.assertEqual(s.weights[0], 1)
    self.assertEqual(s.level, 1)
    self.assertEqual(s.parent, None)
    sup = pickle.loads(pickle.dumps(s))
    self.assertEqual(len(sup), 1)
    self.assertIsNot(sup.variables[0], v)
    self.assertFalse(v in sup)
    self.assertEqual(sup.weights[0], 1)
    self.assertEqual(sup.level, 1)
    self.assertEqual(sup.parent, None)
    b = block()
    b.v = v
    self.assertIs(v.parent, b)
    b.s = s
    self.assertIs(s.parent, b)
    bup = pickle.loads(pickle.dumps(b))
    sup = bup.s
    self.assertEqual(len(sup), 1)
    self.assertIs(sup.variables[0], bup.v)
    self.assertTrue(bup.v in sup)
    self.assertEqual(sup.weights[0], 1)
    self.assertEqual(sup.level, 1)
    self.assertIs(sup.parent, bup)