Example #1
0
 def _MergeLikeValues(cls, values, page, name, grouping_keys):
     v0 = values[0]
     merged_values = []
     list_of_samples = []
     none_value_reason = None
     pooled_std = None
     for v in values:
         if v.values is None:
             merged_values = None
             merged_none_values = [v for v in values if v.values is None]
             none_value_reason = (
                 none_values.MERGE_FAILURE_REASON +
                 ' None values: %s' % repr(merged_none_values))
             break
         merged_values.extend(v.values)
         list_of_samples.append(v.values)
     if merged_values and page is None:
         # Pooled standard deviation is only used when merging values comming from
         # different pages. Otherwise, fall back to the default computation done
         # in the cosntructor of ListOfScalarValues.
         pooled_std = PooledStandardDeviation(
             list_of_samples,
             list_of_variances=[v.variance for v in values])
     return ListOfScalarValues(
         page,
         name,
         v0.units,
         merged_values,
         important=v0.important,
         description=v0.description,
         tir_label=value_module.MergedTirLabel(values),
         std=pooled_std,
         none_value_reason=none_value_reason,
         improvement_direction=v0.improvement_direction,
         grouping_keys=grouping_keys)
Example #2
0
 def MergeLikeValuesFromSamePage(cls, values):
   assert len(values) > 0
   v0 = values[0]
   return HistogramValue(
       v0.page, v0.name, v0.units,
       raw_value_json=histogram_util.AddHistograms(
           [v.ToJSONString() for v in values]),
       description=v0.description,
       important=v0.important, tir_label=value_module.MergedTirLabel(values),
       improvement_direction=v0.improvement_direction,
       grouping_keys=v0.grouping_keys)
Example #3
0
  def _MergeLikeValues(cls, values, page, name, grouping_keys):
    v0 = values[0]

    merged_value = [v.value for v in values]
    none_value_reason = None
    if None in merged_value:
      merged_value = None
      merged_none_values = [v for v in values if v.value is None]
      none_value_reason = (
          none_values.MERGE_FAILURE_REASON +
          ' None values: %s' % repr(merged_none_values))
    return list_of_scalar_values.ListOfScalarValues(
        page, name, v0.units, merged_value, important=v0.important,
        description=v0.description,
        tir_label=value_module.MergedTirLabel(values),
        none_value_reason=none_value_reason,
        improvement_direction=v0.improvement_direction,
        grouping_keys=grouping_keys)
Example #4
0
    def testMergedTirLabelForDifferentLabels(self):
        v0 = ValueForTest(None, 'foo', 'ms', False, 'd', 'bar', {})
        v1 = ValueForTest(None, 'foo', 'ms', False, 'd', 'baz', {})

        tir_label = value.MergedTirLabel([v0, v1])
        self.assertIsNone(tir_label)
Example #5
0
    def testMergedTirLabelForSameLabel(self):
        v = ValueForTest(None, 'foo', 'ms', False, 'd', 'bar', {})

        tir_label = value.MergedTirLabel([v, v])
        self.assertEquals(tir_label, 'bar')