def setUp(self): self.m1 = Message(1, 'sdf', 'A project to cluster high-dimensional streams.', test_time - timedelta(seconds=60)) self.m1.vector = Vector({1: 1., 2: 3.}) self.stream = Stream(1, self.m1) self.cluster = StreamCluster(self.stream) self.crowd = Crowd(self.cluster, test_time)
def constructCrowdDataStructures(dataIterator): for currentTime, cluster in dataIterator(): crowdId, newCrowdAdded = None, False cluster.currentTime = currentTime AnalyzeData.clusterMap[cluster.clusterId]=cluster for clusterId in cluster.mergedClustersList: if clusterId in AnalyzeData.clusterIdToCrowdIdMap: crowdId=AnalyzeData.clusterIdToCrowdIdMap[clusterId]; break if crowdId==None: crowdId=cluster.mergedClustersList[0] AnalyzeData.crowdMap[crowdId]=Crowd(cluster, currentTime) # cluster.mergedClustersList=cluster.mergedClustersList[1:] newCrowdAdded = True else: AnalyzeData.crowdMap[crowdId].append(cluster, currentTime) if crowdId==None: raise Exception('Crowd id cannot be None.') AnalyzeData.clusterIdToCrowdIdMap[cluster.clusterId]=crowdId if not newCrowdAdded: mergedClustersList = cluster.mergedClustersList[:] else: mergedClustersList = cluster.mergedClustersList[1:][:] for clusterId in mergedClustersList: if clusterId in AnalyzeData.clusterIdToCrowdIdMap: AnalyzeData.crowdMap[AnalyzeData.clusterIdToCrowdIdMap[clusterId]].updateOutGoingCrowd(crowdId), AnalyzeData.crowdMap[crowdId].updateInComingCrowd(AnalyzeData.clusterIdToCrowdIdMap[clusterId]) AnalyzeData.constructCrowdIdToClusterIdMap()