benchpress
Version:
Benchpress - a framework for e2e performance tests
32 lines • 4.61 kB
JavaScript
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==