Update master benchmark with SVG test
[WebKit-https.git] / PerformanceTests / Animometer / resources / debug-runner / tests.js
1 Utilities.extendObject(Strings.text, {
2     samples: "Samples",
3     complexity: "Time Complexity",
4     frameRate: "FPS",
5     confidenceInterval: "95% Confidence Interval",
6     mergedRawComplexity: "Raw Complexity",
7     graph: "Graph"
8 });
9
10
11 Utilities.extendObject(Headers, {
12     details: [
13         {
14             title: Strings.text.graph
15         },
16         {
17             title: Strings.text.confidenceInterval,
18             children:
19             [
20                 {
21                     text: function(data) {
22                         return data[Strings.json.complexity][Strings.json.bootstrap].confidenceLow.toFixed(2);
23                     },
24                     className: "right pad-left pad-right"
25                 },
26                 {
27                     text: function(data) {
28                         return " - " + data[Strings.json.complexity][Strings.json.bootstrap].confidenceHigh.toFixed(2);
29                     },
30                     className: "left"
31                 },
32                 {
33                     text: function(data) {
34                         var bootstrap = data[Strings.json.complexity][Strings.json.bootstrap];
35                         return (100 * (bootstrap.confidenceLow / bootstrap.median - 1)).toFixed(2) + "%";
36                     },
37                     className: "left pad-left small"
38                 },
39                 {
40                     text: function(data) {
41                         var bootstrap = data[Strings.json.complexity][Strings.json.bootstrap];
42                         return "+" + (100 * (bootstrap.confidenceHigh / bootstrap.median - 1)).toFixed(2) + "%";
43                     },
44                     className: "left pad-left small"
45                 }
46             ]
47         },
48         {
49             title: Strings.text.complexity,
50             children:
51             [
52                 {
53                     text: function(data) {
54                         return data[Strings.json.controller][Strings.json.measurements.average].toFixed(2);
55                     },
56                     className: "average"
57                 },
58                 {
59                     text: function(data) {
60                         return [
61                             "± ",
62                             data[Strings.json.controller][Strings.json.measurements.percent].toFixed(2),
63                             "%"
64                         ].join("");
65                     },
66                     className: function(data) {
67                         var className = "stdev";
68
69                         if (data[Strings.json.controller][Strings.json.measurements.percent] >= 10)
70                             className += " noisy-results";
71                         return className;
72                     }
73                 }
74             ]
75         },
76         {
77             title: Strings.text.frameRate,
78             children:
79             [
80                 {
81                     text: function(data) {
82                         return data[Strings.json.frameLength][Strings.json.measurements.average].toFixed(2);
83                     },
84                     className: function(data, options) {
85                         var className = "average";
86                         if (Math.abs(data[Strings.json.frameLength][Strings.json.measurements.average] - options["frame-rate"]) >= 2)
87                             className += " noisy-results";
88                         return className;
89                     }
90                 },
91                 {
92                     text: function(data) {
93                         var frameRateData = data[Strings.json.frameLength];
94                         return [
95                             "± ",
96                             frameRateData[Strings.json.measurements.percent].toFixed(2),
97                             "%"
98                         ].join("");
99                     },
100                     className: function(data) {
101                         var className = "stdev";
102
103                         if (data[Strings.json.frameLength][Strings.json.measurements.percent] >= 10)
104                             className += " noisy-results";
105                         return className;
106                     }
107                 }
108             ]
109         },
110         {
111             title: Strings.text.mergedRawComplexity,
112             children:
113             [
114                 {
115                     text: function(data) {
116                         return data[Strings.json.complexity][Strings.json.complexity].toFixed(2);
117                     },
118                     className: "average"
119                 },
120                 {
121                     text: function(data) {
122                         return [
123                             "± ",
124                             data[Strings.json.complexity][Strings.json.measurements.stdev].toFixed(2),
125                             "ms"
126                         ].join("");
127                     },
128                     className: "stdev"
129                 }
130             ]
131         }
132     ]
133 })
134
135 ///////////
136 // Suites
137
138 Suites.push(new Suite("HTML suite",
139     [
140         {
141             url: "bouncing-particles/bouncing-css-shapes.html?particleWidth=12&particleHeight=12&shape=circle",
142             name: "CSS bouncing circles"
143         },
144         {
145             url: "bouncing-particles/bouncing-css-shapes.html?particleWidth=40&particleHeight=40&shape=rect&clip=star",
146             name: "CSS bouncing clipped rects"
147         },
148         {
149             url: "bouncing-particles/bouncing-css-shapes.html?particleWidth=50&particleHeight=50&shape=circle&fill=gradient",
150             name: "CSS bouncing gradient circles"
151         },
152         {
153             url: "bouncing-particles/bouncing-css-shapes.html?particleWidth=80&particleHeight=80&shape=circle&blend",
154             name: "CSS bouncing blend circles"
155         },
156         {
157             url: "bouncing-particles/bouncing-css-shapes.html?particleWidth=80&particleHeight=80&shape=circle&filter",
158             name: "CSS bouncing filter circles"
159         },
160         {
161             url: "bouncing-particles/bouncing-css-images.html?particleWidth=80&particleHeight=80&imageSrc=../resources/yin-yang.svg",
162             name: "CSS bouncing SVG images"
163         },
164         {
165             url: "bouncing-particles/bouncing-tagged-images.html?particleWidth=100&particleHeight=100",
166             name: "CSS bouncing tagged images"
167         },
168         {
169             url: "dom/leaves.html",
170             name: "Leaves 2.0"
171         },
172         {
173             url: "dom/particles.html",
174             name: "DOM particles, SVG masks"
175         },
176         {
177             url: "dom/compositing-transforms.html?particleWidth=50&particleHeight=50&filters=yes&imageSrc=../resources/yin-yang.svg",
178             name: "Composited Transforms"
179         }
180     ]
181 ));
182
183 Suites.push(new Suite("Canvas suite",
184     [
185         {
186             url: "bouncing-particles/bouncing-canvas-shapes.html?particleWidth=40&particleHeight=40&shape=rect&clip=star",
187             name: "canvas bouncing clipped rects"
188         },
189         {
190             url: "bouncing-particles/bouncing-canvas-shapes.html?particleWidth=50&particleHeight=50&shape=circle&fill=gradient",
191             name: "canvas bouncing gradient circles"
192         },
193         {
194             url: "bouncing-particles/bouncing-canvas-images.html?particleWidth=80&particleHeight=80&imageSrc=../resources/yin-yang.svg",
195             name: "canvas bouncing SVG images"
196         },
197         {
198             url: "bouncing-particles/bouncing-canvas-images.html?particleWidth=80&particleHeight=80&imageSrc=../resources/yin-yang.png",
199             name: "canvas bouncing PNG images"
200         },
201         {
202             url: "simple/simple-canvas-paths.html?pathType=strokes",
203             name: "Stroke shapes"
204         },
205         {
206             url: "simple/simple-canvas-paths.html?pathType=fills",
207             name: "Fill shapes"
208         },
209         {
210             url: "simple/tiled-canvas-image.html",
211             name: "Canvas put/get image data"
212         },
213     ]
214 ));
215
216 Suites.push(new Suite("SVG suite",
217     [
218         {
219             url: "bouncing-particles/bouncing-svg-shapes.html?particleWidth=12&particleHeight=12&shape=circle",
220             name: "SVG bouncing circles",
221         },
222         {
223             url: "bouncing-particles/bouncing-svg-shapes.html?particleWidth=40&particleHeight=40&shape=rect&clip=star",
224             name: "SVG bouncing clipped rects",
225         },
226         {
227             url: "bouncing-particles/bouncing-svg-shapes.html?particleWidth=50&particleHeight=50&shape=circle&fill=gradient",
228             name: "SVG bouncing gradient circles"
229         },
230         {
231             url: "bouncing-particles/bouncing-svg-images.html?particleWidth=80&particleHeight=80&imageSrc=../resources/yin-yang.svg",
232             name: "SVG bouncing SVG images"
233         },
234         {
235             url: "bouncing-particles/bouncing-svg-images.html?particleWidth=80&particleHeight=80&imageSrc=../resources/yin-yang.png",
236             name: "SVG bouncing PNG images"
237         },
238     ]
239 ));
240
241 Suites.push(new Suite("3D Graphics",
242     [
243         {
244             url: "3d/webgl.html",
245             name: "WebGL"
246         },
247     ]
248 ));
249
250 Suites.push(new Suite("Basic canvas path suite",
251     [
252         {
253             url: "simple/simple-canvas-paths.html?pathType=line&lineCap=butt",
254             name: "Canvas line segments, butt caps"
255         },
256         {
257             url: "simple/simple-canvas-paths.html?pathType=line&lineCap=round",
258             name: "Canvas line segments, round caps"
259         },
260         {
261             url: "simple/simple-canvas-paths.html?pathType=line&lineCap=square",
262             name: "Canvas line segments, square caps"
263         },
264         {
265             url: "simple/simple-canvas-paths.html?pathType=linePath&lineJoin=bevel",
266             name: "Canvas line path, bevel join"
267         },
268         {
269             url: "simple/simple-canvas-paths.html?pathType=linePath&lineJoin=round",
270             name: "Canvas line path, round join"
271         },
272         {
273             url: "simple/simple-canvas-paths.html?pathType=linePath&lineJoin=miter",
274             name: "Canvas line path, miter join"
275         },
276         {
277             url: "simple/simple-canvas-paths.html?pathType=linePath&lineDash=1",
278             name: "Canvas line path with dash pattern"
279         },
280         {
281             url: "simple/simple-canvas-paths.html?pathType=quadratic",
282             name: "Canvas quadratic segments"
283         },
284         {
285             url: "simple/simple-canvas-paths.html?pathType=quadraticPath",
286             name: "Canvas quadratic path"
287         },
288         {
289             url: "simple/simple-canvas-paths.html?pathType=bezier",
290             name: "Canvas bezier segments"
291         },
292         {
293             url: "simple/simple-canvas-paths.html?pathType=bezierPath",
294             name: "Canvas bezier path"
295         },
296         {
297             url: "simple/simple-canvas-paths.html?&pathType=arcTo",
298             name: "Canvas arcTo segments"
299         },
300         {
301             url: "simple/simple-canvas-paths.html?pathType=arc",
302             name: "Canvas arc segments"
303         },
304         {
305             url: "simple/simple-canvas-paths.html?pathType=rect",
306             name: "Canvas rects"
307         },
308         {
309             url: "simple/simple-canvas-paths.html?pathType=ellipse",
310             name: "Canvas ellipses"
311         },
312         {
313             url: "simple/simple-canvas-paths.html?pathType=lineFill",
314             name: "Canvas line path, fill"
315         },
316         {
317             url: "simple/simple-canvas-paths.html?pathType=quadraticFill",
318             name: "Canvas quadratic path, fill"
319         },
320         {
321             url: "simple/simple-canvas-paths.html?pathType=bezierFill",
322             name: "Canvas bezier path, fill"
323         },
324         {
325             url: "simple/simple-canvas-paths.html?&pathType=arcToFill",
326             name: "Canvas arcTo segments, fill"
327         },
328         {
329             url: "simple/simple-canvas-paths.html?pathType=arcFill",
330             name: "Canvas arc segments, fill"
331         },
332         {
333             url: "simple/simple-canvas-paths.html?pathType=rectFill",
334             name: "Canvas rects, fill"
335         },
336         {
337             url: "simple/simple-canvas-paths.html?pathType=ellipseFill",
338             name: "Canvas ellipses, fill"
339         }
340     ]
341 ));