def get_result(self): metric_result = MetricResult() metric_result.name = self.name metric_result.started = self.started # FIXME remove metric_result.finished = self.finished # FIXME remove # check if user result is set if self.metric_result != None and not (self.metric_result.groundtruth_result == False\ and self.metric_result.groundtruth_error_message == ""\ and self.metric_result.groundtruth == 0.0\ and self.metric_result.groundtruth_epsilon == 0.0): #print "groundtruth data is set from user within atf application for testblock %s. Skipping groundtruth evaluation from test_config"%self.testblock_name # use data from user result metric_result = self.metric_result return metric_result metric_result.data = None metric_result.groundtruth = self.groundtruth metric_result.groundtruth_epsilon = self.groundtruth_epsilon # assign default value metric_result.groundtruth_result = None metric_result.groundtruth_error_message = None if metric_result.started and metric_result.finished: # we check if the testblock was ever started and stopped # calculate metric data if self.metric_result == None: print "ERROR user result for testblock %s not set" % self.testblock_name metric_result.data = None else: metric_result.data = self.metric_result.data # fill details as KeyValue messages metric_result.details = self.metric_result.details # evaluate metric data if metric_result.data != None and metric_result.groundtruth != None and metric_result.groundtruth_epsilon != None: if math.fabs(metric_result.groundtruth - metric_result.data.data ) <= metric_result.groundtruth_epsilon: metric_result.groundtruth_result = True metric_result.groundtruth_error_message = "all OK" else: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "groundtruth missmatch: %f not within %f+-%f" % ( metric_result.data.data, metric_result.groundtruth, metric_result.groundtruth_epsilon) if metric_result.data == None: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "no result" return metric_result
def get_result(self): metric_result = MetricResult() metric_result.name = self.name metric_result.started = self.started # FIXME remove metric_result.finished = self.finished # FIXME remove metric_result.series = [] metric_result.data = None metric_result.groundtruth = self.groundtruth metric_result.groundtruth_epsilon = self.groundtruth_epsilon # assign default value metric_result.groundtruth_result = None metric_result.groundtruth_error_message = None if metric_result.started and metric_result.finished: # we check if the testblock was ever started and stopped # calculate metric data if self.series_mode != None: metric_result.series = self.series metric_result.data = self.series[ -1] # take last element from self.series metric_result.min = metrics_helper.get_min(self.series) metric_result.max = metrics_helper.get_max(self.series) metric_result.mean = metrics_helper.get_mean(self.series) metric_result.std = metrics_helper.get_std(self.series) # fill details as KeyValue messages details = [] details.append(KeyValue("root_frame", self.root_frame)) details.append(KeyValue("measured_frame", self.measured_frame)) metric_result.details = details # evaluate metric data if metric_result.data != None and metric_result.groundtruth != None and metric_result.groundtruth_epsilon != None: if math.fabs(metric_result.groundtruth - metric_result.data.data ) <= metric_result.groundtruth_epsilon: metric_result.groundtruth_result = True metric_result.groundtruth_error_message = "all OK" else: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "groundtruth missmatch: %f not within %f+-%f" % ( metric_result.data.data, metric_result.groundtruth, metric_result.groundtruth_epsilon) if metric_result.data == None: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "no result" return metric_result
def get_result(self): interface_data, interface_details = self.calculate_data_and_details() groundtruth_result = None # interface metric not usable without groundtruth groundtruth = 100 # this is the max score groundtruth_epsilon = 0 # no deviation from max score allowed metric_result = MetricResult() metric_result.name = "interface" metric_result.started = self.started # FIXME remove metric_result.finished = self.finished # FIXME remove metric_result.data = None metric_result.groundtruth = self.groundtruth metric_result.groundtruth_epsilon = self.groundtruth_epsilon # assign default value metric_result.groundtruth_result = None metric_result.groundtruth_error_message = None if metric_result.started and metric_result.finished: # we check if the testblock was ever started and stopped # calculate metric data metric_result.data = interface_data # fill details as KeyValue messages details = [] details.append(KeyValue("api_status", interface_details)) metric_result.details = details # evaluate metric data if metric_result.data != None and metric_result.groundtruth != None and metric_result.groundtruth_epsilon != None: if math.fabs(metric_result.groundtruth - metric_result.data ) <= metric_result.groundtruth_epsilon: metric_result.groundtruth_result = True metric_result.groundtruth_error_message = "all OK" else: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "groundtruth missmatch: %f not within %f+-%f" % ( metric_result.data, metric_result.groundtruth, metric_result.groundtruth_epsilon) #print metric_result.groundtruth_error_message if metric_result.data == None: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "no result" #print "\nmetric_result:\n", metric_result return metric_result
def get_result(self): metric_result = MetricResult() metric_result.name = "publish_rate" metric_result.started = self.started # FIXME remove metric_result.finished = self.finished # FIXME remove metric_result.data = None metric_result.groundtruth = self.groundtruth metric_result.groundtruth_epsilon = self.groundtruth_epsilon # assign default value metric_result.groundtruth_result = None metric_result.groundtruth_error_message = None if metric_result.started and metric_result.finished: # we check if the testblock was ever started and stopped # calculate metric data metric_result.data = round( self.counter / (self.stop_time - self.start_time).to_sec(), 3) # fill details as KeyValue messages details = [] details.append(KeyValue("topic", self.topic)) metric_result.details = details # evaluate metric data if metric_result.data != None and metric_result.groundtruth != None and metric_result.groundtruth_epsilon != None: if math.fabs(metric_result.groundtruth - metric_result.data ) <= metric_result.groundtruth_epsilon: metric_result.groundtruth_result = True metric_result.groundtruth_error_message = "all OK" else: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "groundtruth missmatch: %f not within %f+-%f" % ( metric_result.data, metric_result.groundtruth, metric_result.groundtruth_epsilon) #print metric_result.groundtruth_error_message if metric_result.data == None: metric_result.groundtruth_result = False metric_result.groundtruth_error_message = "no result" #print "\nmetric_result:\n", metric_result return metric_result