Question: need def region_bounding_box(self): and def rectangle_random_point(self): import string class Rectangle(object): def init _(self, *intervals, name=None): A rectangle is initialized with a list, whose elements are
need def region_bounding_box(self): and def rectangle_random_point(self):




import string class Rectangle(object): def init _(self, *intervals, name=None): """A rectangle is initialized with a list, whose elements are either Interval, or a pair of numbers. It would be perhaps cleaner to accept only list of intervals, but specifying rectangles via a list of pairs, with each pair defining an interval, makes for a concise shorthand that will be useful in tests. Every rectangle has a name, used to depict it. If no name is provided, we invent a random one. self.intervals = [] for i in intervals: self.intervals.append(i if type(i) == Interval else Interval(*i)) # I want each rectangle to have a name. if name is None: self.name '.join( random.choices (string.ascii_letters + string.digits, k=8)) else: self.name = name def repr (self): """Function used to print a rectangle.' s = "Rectangle + self.name + ": s += repr([(i.x0, i.xl) for i in self.intervals]) return s def clone (self, name=None): "Returns a clone of itself, with a given name. name or self.name + "" return Rectangle(*self.intervals, name=name) name = def len_(self): """Returns the number of dimensions of the rectangle (not the length of the edges). This is used with getitem below, to get the interval along a dimension."" return len(self.intervals) def getitem_(self, n): "Returns the interval along the n-th dimension" return self.intervals[n] def setitem (self, n, i): "Sets the interval along the n-th dimension to be i""" self.intervals[n] = i @property def ndims (self): "Returns the number of dimensions of the interval. return len(self.intervals) 11 11 11 @property def volume (self): return np.prod([i.length for i in self.intervals]) ### Compute the bounding box of a region def region_bounding_box(self): """Returns the bounding box of the region, as a rectangle. This returns None if the region does not contain any rectangle. if len (self.rectangles) 0: return None ### YOUR CODE HERE == Region.bounding_box = property(region_bounding_box) # 10 points: tests for bounding boxes reg = Region (Rectangle((0, 2), (1, 3)), Rectangle((4, 6), (5, 8))) assert reg.bounding_box Rectangle( (0, 6), (1, 8)) == reg = Region Rectangle((0, 5), (4, 5), (1, 9)), Rectangle((4, 20), (-2, 3), (4, 21)), Rectangle((7, 99), (3, 7), (2, 3)) ) assert reg. bounding_box Rectangle( (0, 99), (-2, 7), (1, 21)) == def rectangle_random_point(self): ### YOUR CODE HERE Rectangle.random_point = rectangle_random_point # 3 points: random point of a rectangle. r = Rectangle((0, 2), (1, 3)) for i in range(5): p = r.random_point() assert isinstance(p, tuple) assert len(p) == 2 assert p in r print(p) # 3 points: random point of a rectangle. import numpy as np r = Rectangle((1, 2), (1, 6)) xs, ys = [], [] for in range (10000): p = r.random_point() assert p in r xs.append(p[0]) ys.append(p[1]) assert np.std(xs) * 4.9
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
