@@ -1453,4 +1453,54 @@ def are_pairwise_disjoint(*real_set_collection):
14531453 return False
14541454 return True
14551455
1456-
1456+ def _sage_input_ (self , sib , coerced ):
1457+ """
1458+ Produce an expression which will reproduce this value when evaluated.
1459+
1460+ TESTS::
1461+
1462+ sage: sage_input(RealSet())
1463+ RealSet()
1464+ sage: sage_input(RealSet.open(-oo, +oo))
1465+ RealSet(-oo, oo)
1466+ sage: sage_input(RealSet.point(77))
1467+ RealSet.point(77)
1468+ sage: sage_input(RealSet.closed_open(0, +oo))
1469+ RealSet.closed_open(0, oo)
1470+ sage: sage_input(RealSet.open_closed(-oo, 0))
1471+ RealSet.open_closed(-oo, 0)
1472+ sage: sage_input(RealSet.open_closed(-1, 0))
1473+ RealSet.open_closed(-1, 0)
1474+ sage: sage_input(RealSet.closed_open(-1, 0))
1475+ RealSet.closed_open(-1, 0)
1476+ sage: sage_input(RealSet.closed(0, 1))
1477+ RealSet.closed(0, 1)
1478+ sage: sage_input(RealSet.open(0, 1))
1479+ RealSet.open(0, 1)
1480+ sage: sage_input(RealSet.open(0, 1) + RealSet.open(1, 2))
1481+ RealSet.open(0, 1) + RealSet.open(1, 2)
1482+ """
1483+
1484+ def interval_input (i ):
1485+ lower , upper = i .lower (), i .upper ()
1486+ if i .is_point ():
1487+ return sib .name ('RealSet.point' )(lower )
1488+ elif lower == minus_infinity and upper == infinity :
1489+ return sib .name ('RealSet' )(sib (minus_infinity ), sib (infinity ))
1490+ else :
1491+ if i .lower_closed ():
1492+ if i .upper_closed ():
1493+ t = 'RealSet.closed'
1494+ else :
1495+ t = 'RealSet.closed_open'
1496+ else :
1497+ if i .upper_closed ():
1498+ t = 'RealSet.open_closed'
1499+ else :
1500+ t = 'RealSet.open'
1501+ return sib .name (t )(sib (lower ), sib (upper ))
1502+
1503+ if self .is_empty ():
1504+ return sib .name ('RealSet' )()
1505+ else :
1506+ return sib .sum (interval_input (i ) for i in self )
0 commit comments