def generate(self, workingDir, oFile, strBuffer): init, end = SimTimeRange.getTimeRange(self.__timeRange, self.__finishTime, self.__discardTime) strBuffer.writeln('') strBuffer.writeln('************* %s ****************' % self.__behaviorName) strBuffer.writeln('* Frequency: %.2f searches/s' % self.__searchFreq) strBuffer.writeln('* Generated: %d sets of searches' % self.getSearches()) strBuffer.writeln('* Time range: [%s, %s] s' % (init, end)) strBuffer.writeln("* Simultaneous searches: %.2f" % (self.getSimultaneous())) strBuffer.writeln("* Total searches: %d" % int(self.getSimultaneous() * self.getSearches())) strBuffer.writeln("* Search duration: %d s" % self.__searchDuration) strBuffer.writeln("* Invalid searches ratio: %.2f" % self.__invalidSearches) strBuffer.writeln("* Generating %d invalid searches" % int(self.getInvalidSearches())) self.printInfo(strBuffer) startTime = time() if self.__searchPeriod > 0.0: #Create search events each specified period of time during specified time range currentTime = init + DELTA_TIME while (currentTime < end + DELTA_TIME): self.perform(currentTime, oFile) #Increment time currentTime += self.__searchPeriod if self.__searchDuration > 0: self.finishSearches(self.__searchDuration, oFile) strBuffer.writeln('* Behavior generation time: %s ' % TimeFormatter.formatTime(time() - startTime)) strBuffer.writeln('**********************************************************')
def getSearches(self): init, end = SimTimeRange.getTimeRange(self.__timeRange, self.__finishTime, self.__discardTime) return int(math.ceil(self.__searchFreq * (end - init)))