def test_region_from_object(self): test_region = Region([10] * 3, [50] * 3) objects = [] objects.append({"lower": [10] * 3, "upper": [50] * 3}) objects.append({"dimension": 3, "lower": 10, "upper": [50] * 3}) objects.append({"dimension": 3, "lower": 10, "upper": 50}) objects.append({"dimension": 3, "lower": [10] * 3, "upper": 50}) objects.append({"dimension": 3, "interval": [10, 50]}) objects.append({"dimension": 3, "interval": (10, 50)}) objects.append({ "dimension": 3, "interval": { "lower": 10, "upper": 50 } }) objects.append({"dimensions": [[10, 50]] * 3}) objects.append({"dimensions": [(10, 50)] * 3}) objects.append({"dimensions": [{"lower": 10, "upper": 50}] * 3}) objects.append([[10, 50]] * 3) objects.append([(10, 50)] * 3) objects.append([{"lower": 10, "upper": 50}] * 3) objects.append((3, [10, 50])) objects.append((3, (10, 50))) objects.append((3, {"lower": 10, "upper": 50})) for object in objects: #print(f'{object}') self.assertEqual(test_region, Region.from_object(object))
def generate(cls, output: FileIO, kind: str, nregions: int, dimension: int, **kwargs): """ Randomly generate a new collection or intersection graph of Regions. \f Args: output: The file to save the newly generated set or intersection graph of Regions. kind: The output object type. nregions: The number of Regions to be generated. dimension: The number of dimensions for each Region. kwargs: Additional arguments. Keyword Args: id: The unique identifier for the output. bounds: The minimum + maximum bounding value for each dimension that all Region must be enclosed within. sizepc: The minimum + maximum size of each Region as a percent of the bounding Region that all Region must be enclosed within. precision: The number of digits after the decimal pt in each Region's lower + upper values. colored: Boolean flag for whether to color code the connected Regions and save the associated colors in each Region's data properties. """ kwargs['bounds'] = Region.from_object((dimension, kwargs['bounds'])) kwargs['sizepc'] = Region.from_object((dimension, kwargs['sizepc'])) colored = kwargs.pop('colored', False) regions = RegionSet.from_random(nregions, **kwargs) bundle = cls.bundle(regions) if colored: cls.colorize_components(bundle) cls.write(output, cls.unbundle(bundle, kind))