Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Coord:
- def __init__(self, array, coord, check= True):
- self._array= array
- self._list= coord
- assert(len(self) == len(self.array.dimension_list()))
- assert(check and array.min() <= self)
- assert(check and self < array.max())
- def __len__(self):
- return len(self._list)
- def __str__(self):
- return ','.join(map(str, self._list))
- def __iter__(self):
- return iter(self._list)
- def __lt__(self, right):
- return all([left < right for (left, right) in zip(self._coord, right._coord)])
- def __le__(self, right):
- return all([left <= right for (left, right) in zip(self._coord, right._coord)])
- def __eq__(self, right):
- return all([left == right for (left, right) in zip(self._coord, right._coord)])
- def __gt__(self, right):
- return all([left > right for (left, right) in zip(self._coord, right._coord)])
- def __ge__(self, right):
- return all([left >= right for (left, right) in zip(self._coord, right._coord)])
- def __add__(self, right):
- return Coord(self._array, [ (left + right) for (left,right) in zip(self._coord, right.coord) ])
- def __sub__(self, right):
- return Coord(self._array, [ (left - right) for (left,right) in zip(self._coord, right.coord) ])
- class Value:
- def __init__(self, array, attribute_value_list):
- self._list= attribute_value_list
- assert(len(array.attribute_list()) == len(attribute_value_list))
- def __str__(self):
- return ','.join(map(str, self._list))
- class Box:
- def __init__(self, array, begin, end):
- self._begin= begin
- self._end= end
- assert(begin < end)
- def begin(self):
- return self._begin
- def end(self):
- return self._end
- def include(self, coord):
- return self._begin <= coord and coord < self._end
- def __len__(self):
- return self.end() - self.begin()
- def __iter__(self):
- return itertools.iproduct(xrange(minimum, maximum - minimum) for (minimum, maximum) itertools.izip(self.begin(), self.end()))
Advertisement
Add Comment
Please, Sign In to add comment