UNPKG

benchpress

Version:

Benchpress - a framework for e2e performance tests

32 lines 4.61 kB
import { ListWrapper } from 'angular2/src/facade/collection'; import { bind, provide, OpaqueToken } from 'angular2/src/core/di'; import { Validator } from '../validator'; /** * A validator that waits for the sample to have a certain size. */ export class SizeValidator extends Validator { constructor(size) { super(); this._sampleSize = size; } // TODO(tbosch): use static values when our transpiler supports them static get BINDINGS() { return _PROVIDERS; } // TODO(tbosch): use static values when our transpiler supports them static get SAMPLE_SIZE() { return _SAMPLE_SIZE; } describe() { return { 'sampleSize': this._sampleSize }; } validate(completeSample) { if (completeSample.length >= this._sampleSize) { return ListWrapper.slice(completeSample, completeSample.length - this._sampleSize, completeSample.length); } else { return null; } } } var _SAMPLE_SIZE = new OpaqueToken('SizeValidator.sampleSize'); var _PROVIDERS = [ bind(SizeValidator) .toFactory((size) => new SizeValidator(size), [_SAMPLE_SIZE]), provide(_SAMPLE_SIZE, { useValue: 10 }) ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZV92YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkaWZmaW5nX3BsdWdpbl93cmFwcGVyLW91dHB1dF9wYXRoLXhCTElCclZSLnRtcC9iZW5jaHByZXNzL3NyYy92YWxpZGF0b3Ivc2l6ZV92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ik9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQ0FBZ0M7T0FDbkQsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFZLFdBQVcsRUFBQyxNQUFNLHNCQUFzQjtPQUVsRSxFQUFDLFNBQVMsRUFBQyxNQUFNLGNBQWM7QUFHdEM7O0dBRUc7QUFDSCxtQ0FBbUMsU0FBUztJQVExQyxZQUFZLElBQUk7UUFDZCxPQUFPLENBQUM7UUFDUixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBVkQsb0VBQW9FO0lBQ3BFLFdBQVcsUUFBUSxLQUFpQixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUN4RCxvRUFBb0U7SUFDcEUsV0FBVyxXQUFXLEtBQUssTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7SUFTakQsUUFBUSxLQUEyQixNQUFNLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUU3RSxRQUFRLENBQUMsY0FBK0I7UUFDdEMsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUM5QyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsY0FBYyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUN4RCxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEQsQ0FBQztRQUFDLElBQUksQ0FBQyxDQUFDO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELElBQUksWUFBWSxHQUFHLElBQUksV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUM7QUFDL0QsSUFBSSxVQUFVLEdBQUc7SUFDZixJQUFJLENBQUMsYUFBYSxDQUFDO1NBQ2QsU0FBUyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDakUsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUMsQ0FBQztDQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMaXN0V3JhcHBlcn0gZnJvbSAnYW5ndWxhcjIvc3JjL2ZhY2FkZS9jb2xsZWN0aW9uJztcbmltcG9ydCB7YmluZCwgcHJvdmlkZSwgUHJvdmlkZXIsIE9wYXF1ZVRva2VufSBmcm9tICdhbmd1bGFyMi9zcmMvY29yZS9kaSc7XG5cbmltcG9ydCB7VmFsaWRhdG9yfSBmcm9tICcuLi92YWxpZGF0b3InO1xuaW1wb3J0IHtNZWFzdXJlVmFsdWVzfSBmcm9tICcuLi9tZWFzdXJlX3ZhbHVlcyc7XG5cbi8qKlxuICogQSB2YWxpZGF0b3IgdGhhdCB3YWl0cyBmb3IgdGhlIHNhbXBsZSB0byBoYXZlIGEgY2VydGFpbiBzaXplLlxuICovXG5leHBvcnQgY2xhc3MgU2l6ZVZhbGlkYXRvciBleHRlbmRzIFZhbGlkYXRvciB7XG4gIC8vIFRPRE8odGJvc2NoKTogdXNlIHN0YXRpYyB2YWx1ZXMgd2hlbiBvdXIgdHJhbnNwaWxlciBzdXBwb3J0cyB0aGVtXG4gIHN0YXRpYyBnZXQgQklORElOR1MoKTogUHJvdmlkZXJbXSB7IHJldHVybiBfUFJPVklERVJTOyB9XG4gIC8vIFRPRE8odGJvc2NoKTogdXNlIHN0YXRpYyB2YWx1ZXMgd2hlbiBvdXIgdHJhbnNwaWxlciBzdXBwb3J0cyB0aGVtXG4gIHN0YXRpYyBnZXQgU0FNUExFX1NJWkUoKSB7IHJldHVybiBfU0FNUExFX1NJWkU7IH1cblxuICBfc2FtcGxlU2l6ZTogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHNpemUpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3NhbXBsZVNpemUgPSBzaXplO1xuICB9XG5cbiAgZGVzY3JpYmUoKToge1trZXk6IHN0cmluZ106IGFueX0geyByZXR1cm4geydzYW1wbGVTaXplJzogdGhpcy5fc2FtcGxlU2l6ZX07IH1cblxuICB2YWxpZGF0ZShjb21wbGV0ZVNhbXBsZTogTWVhc3VyZVZhbHVlc1tdKTogTWVhc3VyZVZhbHVlc1tdIHtcbiAgICBpZiAoY29tcGxldGVTYW1wbGUubGVuZ3RoID49IHRoaXMuX3NhbXBsZVNpemUpIHtcbiAgICAgIHJldHVybiBMaXN0V3JhcHBlci5zbGljZShjb21wbGV0ZVNhbXBsZSwgY29tcGxldGVTYW1wbGUubGVuZ3RoIC0gdGhpcy5fc2FtcGxlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZVNhbXBsZS5sZW5ndGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxudmFyIF9TQU1QTEVfU0laRSA9IG5ldyBPcGFxdWVUb2tlbignU2l6ZVZhbGlkYXRvci5zYW1wbGVTaXplJyk7XG52YXIgX1BST1ZJREVSUyA9IFtcbiAgYmluZChTaXplVmFsaWRhdG9yKVxuICAgICAgLnRvRmFjdG9yeSgoc2l6ZSkgPT4gbmV3IFNpemVWYWxpZGF0b3Ioc2l6ZSksIFtfU0FNUExFX1NJWkVdKSxcbiAgcHJvdmlkZShfU0FNUExFX1NJWkUsIHt1c2VWYWx1ZTogMTB9KVxuXTtcbiJdfQ==