feat(benchmarks): add static tree benchmark

This commit is contained in:
Tobias Bosch
2016-09-01 10:29:35 -07:00
committed by Martin Probst
parent 4287f1716d
commit eef4c22e87
8 changed files with 120 additions and 371 deletions

View File

@ -0,0 +1,40 @@
import {Component, Input, NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {TreeNode, emptyTree, maxDepth} from '../util';
function createTreeComponent(level: number, isLeaf: boolean) {
const nextTreeEl = `tree${level+1}`;
const template = isLeaf ?
`<span> {{data.value}} </span>` :
`<span> {{data.value}} <span><${nextTreeEl} [data]='data.right'></${nextTreeEl}></span><span><${nextTreeEl} [data]='data.left'></${nextTreeEl}></span></span>`;
@Component({selector: `tree${level}`, template: template})
class TreeComponent {
@Input()
data: TreeNode;
}
return TreeComponent;
}
@Component({selector: 'tree', template: `<tree0 *ngIf="data.left != null" [data]='data'></tree0>`})
export class RootTreeComponent {
@Input()
data: TreeNode = emptyTree;
}
function createModule(): any {
const components: any[] = [RootTreeComponent];
for (var i = 0; i <= maxDepth; i++) {
components.push(createTreeComponent(i, i === maxDepth));
}
@NgModule({imports: [BrowserModule], bootstrap: [RootTreeComponent], declarations: [components]})
class AppModule {
}
return AppModule;
}
export const AppModule = createModule();