| 
									
										
										
										
											2016-08-03 15:00:07 -07:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @license | 
					
						
							|  |  |  |  * Copyright Google Inc. All Rights Reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Use of this source code is governed by an MIT-style license that can be | 
					
						
							|  |  |  |  * found in the LICENSE file at https://angular.io/license
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-10 18:13:11 -08:00
										 |  |  | import {$, browser} from 'protractor'; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-12 14:08:58 +01:00
										 |  |  | const benchpress = require('../../index.js'); | 
					
						
							|  |  |  | const runner = new benchpress.Runner([ | 
					
						
							| 
									
										
										
										
											2015-06-08 13:51:10 -07:00
										 |  |  |   // use protractor as Webdriver client
 | 
					
						
							| 
									
										
										
										
											2016-08-26 16:34:08 -07:00
										 |  |  |   benchpress.SeleniumWebDriverAdapter.PROTRACTOR_PROVIDERS, | 
					
						
							| 
									
										
										
										
											2015-06-08 13:51:10 -07:00
										 |  |  |   // use RegressionSlopeValidator to validate samples
 | 
					
						
							|  |  |  |   benchpress.Validator.bindTo(benchpress.RegressionSlopeValidator), | 
					
						
							|  |  |  |   // use 10 samples to calculate slope regression
 | 
					
						
							|  |  |  |   benchpress.bind(benchpress.RegressionSlopeValidator.SAMPLE_SIZE).toValue(20), | 
					
						
							|  |  |  |   // use the script metric to calculate slope regression
 | 
					
						
							|  |  |  |   benchpress.bind(benchpress.RegressionSlopeValidator.METRIC).toValue('scriptTime'), | 
					
						
							|  |  |  |   benchpress.bind(benchpress.Options.FORCE_GC).toValue(true) | 
					
						
							|  |  |  | ]); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe('deep tree baseline', function() { | 
					
						
							|  |  |  |   it('should be fast!', function(done) { | 
					
						
							|  |  |  |     browser.ignoreSynchronization = true; | 
					
						
							| 
									
										
										
										
											2015-10-10 00:25:17 +02:00
										 |  |  |     browser.get('http://localhost:8001/playground/src/benchpress/'); | 
					
						
							| 
									
										
										
										
											2015-06-08 13:51:10 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     /* | 
					
						
							|  |  |  |      * Tell benchpress to click the buttons to destroy and re-create the tree for each sample. | 
					
						
							|  |  |  |      * Benchpress will log the collected metrics after each sample is collected, and will stop | 
					
						
							|  |  |  |      * sampling as soon as the calculated regression slope for last 20 samples is stable. | 
					
						
							|  |  |  |      */ | 
					
						
							| 
									
										
										
										
											2016-08-03 15:00:07 -07:00
										 |  |  |     runner | 
					
						
							|  |  |  |         .sample({ | 
					
						
							|  |  |  |           id: 'baseline', | 
					
						
							|  |  |  |           execute: function() { $('button').click(); }, | 
					
						
							|  |  |  |           providers: [benchpress.bind(benchpress.Options.SAMPLE_DESCRIPTION).toValue({depth: 9})] | 
					
						
							|  |  |  |         }) | 
					
						
							| 
									
										
										
										
											2015-06-08 13:51:10 -07:00
										 |  |  |         .then(done, done.fail); | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | }); |