Beispiel #1
0
 def Deserialize(self, data):
     for hist in histogram_deserializer.Deserialize(data):
         self.AddHistogram(hist)
    def testDeserialize(self):
        hists = histogram_deserializer.Deserialize(
            [[
                'aaa',
                [1, [1, 1000, 20]],
                'a:c',
                'a:d',
                'ccc',
                'ddd',
                [4, 5],
                'ggg',
                'avg',
                'count',
                'max',
                'min',
                'std',
                'sum',
                'lorem ipsum',
                '',
            ], {
                'Breakdown': {
                    'bbb': {
                        4: [15, 6, 11, 31]
                    }
                },
                'GenericSet': {
                    'hhh': {
                        1: 7
                    },
                    'statisticsNames': {
                        2: [8, 9, 10, 11, 12, 13]
                    },
                    'description': {
                        3: 14
                    },
                },
                'RelatedEventSet': {
                    'eee': {
                        5: [['fff', 7, 3, 4]]
                    }
                },
                'RelatedNameMap': {
                    'bbb': {
                        0: [6, 2, 3]
                    }
                },
            },
             [
                 0,
                 'count+',
                 1,
                 [0, 1, 2, 3],
                 [1, 0, None, 0, 0, 0, 0],
                 {
                     0: [1, [None, 4, 5]]
                 },
                 0,
             ]])
        self.assertEqual(1, len(hists))
        hist = list(hists)[0]
        self.assertIsInstance(hist, histogram.Histogram)
        self.assertEqual('aaa', hist.name)
        self.assertEqual('lorem ipsum', hist.description)
        self.assertEqual('count+', hist.unit)
        self.assertEqual(0, hist.average)
        self.assertEqual(1, hist.num_values)
        self.assertEqual(0, hist.standard_deviation)
        self.assertEqual(0, hist.sum)
        self.assertEqual(0, hist.running.min)
        self.assertEqual(0, hist.running.max)

        names = hist.diagnostics.get('bbb')
        self.assertIsInstance(names, related_name_map.RelatedNameMap)
        self.assertEqual(names.Get('ccc'), 'a:c')
        self.assertEqual(names.Get('ddd'), 'a:d')

        hhh = hist.diagnostics.get('hhh')
        self.assertIsInstance(hhh, generic_set.GenericSet)
        self.assertEqual('ggg', list(hhh)[0])

        self.assertEqual(len(hist.bins), 22)
        b = hist.bins[0]
        self.assertEqual(len(b.diagnostic_maps), 1)
        dm = b.diagnostic_maps[0]
        self.assertEqual(len(dm), 2)
        bd = dm.get('bbb')
        self.assertIsInstance(bd, breakdown.Breakdown)
        self.assertEqual('', bd.color_scheme)
        self.assertEqual(len(bd), 2)
        self.assertEqual(11, bd.Get('ccc'))
        self.assertEqual(31, bd.Get('ddd'))