return Domain._fromislset(islset, dims)
def sample(self):
- from .polyhedra import Polyhedron
islset = self._toislset(self.polyhedra, self.symbols)
islpoint = libisl.isl_set_sample_point(islset)
+ if bool(libisl.isl_point_is_void(islpoint)):
+ libisl.isl_point_free(islpoint)
+ raise ValueError('domain must be non-empty')
point = {}
for index, symbol in enumerate(self.symbols):
coordinate = libisl.isl_point_get_coordinate_val(islpoint,
libisl.isl_dim_set, index)
coordinate = islhelper.isl_val_to_int(coordinate)
point[symbol] = coordinate
- if bool(libisl.isl_point_is_void(islpoint)):
- point = None
libisl.isl_point_free(islpoint)
return point
def test_sample(self):
self.assertEqual(self.square6.sample(), {Symbol('x'): 1, Symbol('y'): 3})
- self.assertEqual(self.empty.sample(), None)
+ with self.assertRaises(ValueError):
+ self.empty.sample()
self.assertEqual(self.universe.sample(), {})
def test_intersection(self):