| <!DOCTYPE html> |
| <!-- |
| Copyright 2016 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/tracing/value/csv_builder.html"> |
| |
| <script> |
| 'use strict'; |
| |
| tr.b.unittest.testSuite(function() { |
| test('csvBuilder', function() { |
| const hist0 = new tr.v.Histogram('hist0', tr.b.Unit.byName.sizeInBytes, |
| tr.v.HistogramBinBoundaries.createLinear(0, 1e3, 10)); |
| hist0.customizeSummaryOptions({ |
| nans: true, |
| percentile: [0.1, 0.9], |
| }); |
| hist0.diagnostics.set(tr.v.d.RESERVED_NAMES.BENCHMARKS, |
| new tr.v.d.GenericSet(['benchmark A'])); |
| hist0.diagnostics.set(tr.v.d.RESERVED_NAMES.LABELS, |
| new tr.v.d.GenericSet(['label A'])); |
| hist0.diagnostics.set(tr.v.d.RESERVED_NAMES.STORIES, |
| new tr.v.d.GenericSet(['story A'])); |
| hist0.diagnostics.set(tr.v.d.RESERVED_NAMES.TRACE_URLS, |
| new tr.v.d.GenericSet(['file://a/b.html'])); |
| hist0.diagnostics.set(tr.v.d.RESERVED_NAMES.BENCHMARK_START, |
| new tr.v.d.DateRange(0)); |
| hist0.diagnostics.set(tr.v.d.RESERVED_NAMES.STORYSET_REPEATS, |
| new tr.v.d.GenericSet([0])); |
| for (let i = 0; i <= 1e3; i += 10) { |
| hist0.addSample(i); |
| } |
| hist0.addSample(NaN); |
| |
| const hist1 = new tr.v.Histogram('hist1', tr.b.Unit.byName.sigma); |
| hist0.customizeSummaryOptions({ |
| std: false, |
| count: false, |
| sum: false, |
| min: false, |
| max: false, |
| }); |
| |
| const hist2 = new tr.v.Histogram('hist2', tr.b.Unit.byName.count); |
| hist2.diagnostics.set(tr.v.d.RESERVED_NAMES.BENCHMARKS, |
| new tr.v.d.GenericSet(['benchmark A'])); |
| hist0.diagnostics.set(tr.v.d.RESERVED_NAMES.BENCHMARK_START, |
| new tr.v.d.DateRange(1499726648646)); |
| |
| const histograms = new tr.v.HistogramSet([hist0, hist1, hist2]); |
| let csv = new tr.v.CSVBuilder(histograms); |
| csv.build(); |
| csv = csv.toString().split('\n'); |
| assert.lengthOf(csv, histograms.length + 2); |
| assert.strictEqual(csv[0], |
| 'name,unit,avg,count,max,min,nans,pct_010,pct_090,std,sum,' + |
| 'architectures,benchmarks,benchmarkStart,bots,builds,deviceIds,' + |
| 'displayLabel,masters,memoryAmounts,osNames,osVersions,' + |
| 'productVersions,stories,storysetRepeats,traceStart,traceUrls'); |
| assert.strictEqual(csv[1], |
| 'hist0,B,500,101,1000,0,1,150,950,293.00170647967224,50500,,' + |
| 'benchmark A,2017-07-10 22:44:08,,,,label A,,,,,,story A,0,,' + |
| 'file://a/b.html'); |
| assert.strictEqual(csv[2], |
| 'hist1,σ,,0,-Infinity,Infinity,0,,,,0,,,,,,,Value,,,,,,,,,'); |
| assert.strictEqual(csv[3], |
| 'hist2,,,0,-Infinity,Infinity,0,,,,0,,benchmark A,,,,,' + |
| 'benchmark A,,,,,,,,,'); |
| assert.strictEqual(csv[4], ''); |
| }); |
| }); |
| </script> |