Index: test/codegen/expect/BenchmarkBase.js |
diff --git a/test/codegen/expect/BenchmarkBase.js b/test/codegen/expect/BenchmarkBase.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9270d2e817ac16e3de7026e27cca9fc304afa8f4 |
--- /dev/null |
+++ b/test/codegen/expect/BenchmarkBase.js |
@@ -0,0 +1,96 @@ |
+dart_library.library('BenchmarkBase', null, /* Imports */[ |
+ 'dart_sdk' |
+], function load__BenchmarkBase(exports, dart_sdk) { |
+ 'use strict'; |
+ const core = dart_sdk.core; |
+ const dart = dart_sdk.dart; |
+ const dartx = dart_sdk.dartx; |
+ const BenchmarkBase$ = Object.create(null); |
+ let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))(); |
+ BenchmarkBase$.Expect = class Expect extends core.Object { |
+ static equals(expected, actual) { |
+ if (!dart.equals(expected, actual)) { |
+ dart.throw(dart.str`Values not equal: ${expected} vs ${actual}`); |
+ } |
+ } |
+ static listEquals(expected, actual) { |
+ if (expected[dartx.length] != actual[dartx.length]) { |
+ dart.throw(dart.str`Lists have different lengths: ${expected[dartx.length]} vs ${actual[dartx.length]}`); |
+ } |
+ for (let i = 0; i < dart.notNull(actual[dartx.length]); i++) { |
+ BenchmarkBase$.Expect.equals(expected[dartx.get](i), actual[dartx.get](i)); |
+ } |
+ } |
+ fail(message) { |
+ dart.throw(message); |
+ } |
+ }; |
+ dart.setSignature(BenchmarkBase$.Expect, { |
+ methods: () => ({fail: dart.definiteFunctionType(dart.dynamic, [dart.dynamic])}), |
+ statics: () => ({ |
+ equals: dart.definiteFunctionType(dart.void, [dart.dynamic, dart.dynamic]), |
+ listEquals: dart.definiteFunctionType(dart.void, [core.List, core.List]) |
+ }), |
+ names: ['equals', 'listEquals'] |
+ }); |
+ BenchmarkBase$.BenchmarkBase = class BenchmarkBase extends core.Object { |
+ new(name) { |
+ this.name = name; |
+ } |
+ run() {} |
+ warmup() { |
+ this.run(); |
+ } |
+ exercise() { |
+ for (let i = 0; i < 10; i++) { |
+ this.run(); |
+ } |
+ } |
+ setup() {} |
+ teardown() {} |
+ static measureFor(f, timeMinimum) { |
+ let time = 0; |
+ let iter = 0; |
+ let watch = new core.Stopwatch(); |
+ watch.start(); |
+ let elapsed = 0; |
+ while (dart.notNull(elapsed) < dart.notNull(timeMinimum)) { |
+ dart.dcall(f); |
+ elapsed = watch.elapsedMilliseconds; |
+ iter++; |
+ } |
+ return 1000.0 * dart.notNull(elapsed) / iter; |
+ } |
+ measure() { |
+ this.setup(); |
+ BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => { |
+ this.warmup(); |
+ }, VoidTodynamic()), 100); |
+ let result = BenchmarkBase$.BenchmarkBase.measureFor(dart.fn(() => { |
+ this.exercise(); |
+ }, VoidTodynamic()), 2000); |
+ this.teardown(); |
+ return result; |
+ } |
+ report() { |
+ let score = this.measure(); |
+ core.print(dart.str`${this.name}(RunTime): ${score} us.`); |
+ } |
+ }; |
+ dart.setSignature(BenchmarkBase$.BenchmarkBase, { |
+ constructors: () => ({new: dart.definiteFunctionType(BenchmarkBase$.BenchmarkBase, [core.String])}), |
+ methods: () => ({ |
+ run: dart.definiteFunctionType(dart.void, []), |
+ warmup: dart.definiteFunctionType(dart.void, []), |
+ exercise: dart.definiteFunctionType(dart.void, []), |
+ setup: dart.definiteFunctionType(dart.void, []), |
+ teardown: dart.definiteFunctionType(dart.void, []), |
+ measure: dart.definiteFunctionType(core.double, []), |
+ report: dart.definiteFunctionType(dart.void, []) |
+ }), |
+ statics: () => ({measureFor: dart.definiteFunctionType(core.double, [core.Function, core.int])}), |
+ names: ['measureFor'] |
+ }); |
+ // Exports: |
+ exports.BenchmarkBase = BenchmarkBase$; |
+}); |