def __init__(self, environment): """ :param environment: :type environment: core.environment.Environment """ self.env = environment locs = np.random.rand(self.env.segment_count, 2) * self.env.grid_height self.segments = [segment.Segment(nd) for nd in locs] for i, seg in enumerate(self.segments): seg.segment_id = i self.clusters = []
def __init__(self, environment): """ :param environment: :type environment: core.environment.Environment """ self.env = environment locs = np.random.rand(self.env.segment_count, 2) * self.env.grid_height self.segments = [segment.Segment(nd) for nd in locs] self._center = linalg.centroid(locs) # Create the centroid cluster self.centroid = ToCSCentroid(self.env) self.clusters = list() # type: typing.List[ToCSCluster] self._length_threshold = 0.5
def __init__(self, environment): """ :param environment: :type environment: core.environment.Environment """ self.env = environment locs = np.random.rand(self.env.segment_count, 2) * self.env.grid_height self.segments = [segment.Segment(loc) for loc in locs] self.grid = grid.Grid(self.segments, self.env) self.cells = list(self.grid.cells()) segment_centroid = np.mean(locs, axis=0) logger.debug("Centroid located at %s", segment_centroid) self.damaged = self.grid.closest_cell(segment_centroid) self.energy_model = LOAFEnergyModel(self, self.env) self.virtual_clusters = list() # type: List[LoafVirtualCluster] self.clusters = list() # type: List[LoafCluster] # Create a virtual cell to represent the center of the damaged area virtual_center_cell = self.damaged self.virtual_hub = LoafVirtualHub(self.env) self.virtual_hub.add(virtual_center_cell) self.virtual_hub.cluster_id = self.env.mdc_count - 1 self.hub = LoafHub(self.env) self.hub.add(virtual_center_cell) self.hub.cluster_id = self.env.mdc_count - 1 self.em_is_large = False self.ec_is_large = False
def test_segments_have_unique_ids(): segments = [segment.Segment([0, 0]) for _ in range(10)] segment_ids_list = [s.segment_id for s in segments] segments_ids_set = set(segment_ids_list) assert len(segment_ids_list) == len(segments_ids_set)
def test_segments_have_arbitrary_cluster_ids(): seg = segment.Segment(np.array([0, 0])) seg.cluster_id = 88 assert seg.cluster_id == 88
def test_segments_can_be_used_for_drawing_lines(): segment_1 = segment.Segment(np.array([0, -1])) segment_2 = segment.Segment(np.array([0, 1])) assert segment_1.location.distance(segment_2.location) == 2
def __init__(self, environment): """ :param environment: :type environment: core.environment.Environment """ ### Debugs for paper #### S0 = np.array([9.0,13.0]) S1 = np.array([4.0,12.0]) S2 = np.array([2.0,9.0]) S3 = np.array([7.0,9.0]) S4 = np.array([12.0,9.0]) S5 = np.array([17.0,9.0]) S6 = np.array([17.0,4.0]) S7 = np.array([14.0,0.0]) S8 = np.array([11.0,4.0]) S9 = np.array([5.0,0.0]) S10 = np.array([5.0,6.0]) S11 = np.array([0.0,4.0]) # Data Volume Table S0_DataVol = np.array([0, 34]) S1_DataVol = np.array([1,31]) S2_DataVol = np.array([2,29]) S3_DataVol = np.array([3,50]) S4_DataVol = np.array([4,17]) S5_DataVol = np.array([5,13]) S6_DataVol = np.array([6,1]) S7_DataVol = np.array([7,2]) S8_DataVol = np.array([8,7]) S9_DataVol = np.array([9,1]) S10_DataVol = np.array([10,22]) S11_DataVol = np.array([11,1]) # List of initial clusters and data volumes self.dataVol = list() self.dataVol.append(S0_DataVol) self.dataVol.append(S1_DataVol) self.dataVol.append(S2_DataVol) self.dataVol.append(S3_DataVol) self.dataVol.append(S4_DataVol) self.dataVol.append(S5_DataVol) self.dataVol.append(S6_DataVol) self.dataVol.append(S7_DataVol) self.dataVol.append(S8_DataVol) self.dataVol.append(S9_DataVol) self.dataVol.append(S10_DataVol) self.dataVol.append(S11_DataVol) self.env = environment #locs = np.random.rand(self.env.segment_count, 2) * self.env.grid_height locs = list() locs.append(S0) locs.append(S1) locs.append(S2) locs.append(S3) locs.append(S4) locs.append(S5) locs.append(S6) locs.append(S7) locs.append(S8) locs.append(S9) locs.append(S10) locs.append(S11) locs = np.array(locs) # For the node within self.segments = [segment.Segment(loc) for loc in locs] self.grid = grid.Grid(self.segments, self.env) self.cells = list(self.grid.cells()) # segment_centroid = np.mean(locs, axis=0) # setting to S3 for testing segment_centroid = np.array(S3) logger.debug("Centroid located at %s", segment_centroid) self.damaged = self.grid.closest_cell(segment_centroid) self.energy_model = LOAFEnergyModel(self, self.env) self.virtual_clusters = list() # type: List[LoafVirtualCluster] self.clusters = list() # type: List[LoafCluster] # Create a virtual cell to represent the center of the damaged area virtual_center_cell = self.damaged self.virtual_hub = LoafVirtualHub(self.env) self.virtual_hub.add(virtual_center_cell) self.virtual_hub.cluster_id = self.env.mdc_count - 1 self.hub = LoafHub(self.env) self.hub.add(virtual_center_cell) self.hub.cluster_id = self.env.mdc_count - 1 self.em_is_large = False self.ec_is_large = False