fix: migrate to modern dependencies, prepare to release 1.0.5 (#36)
diff --git a/.gitignore b/.gitignore
index b30294d..2afa93d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,4 @@
-.children
-.project
-.DS_Store
-packages
+.dart_tool
+.packages
+.pub
pubspec.lock
-*.sublime-workspace
-*.sublime-project
diff --git a/changelog.md b/changelog.md
new file mode 100644
index 0000000..75f765c
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,3 @@
+### 1.0.5
+
+* Updates to support Dart 2.
diff --git a/example/DeltaBlue.dart b/example/DeltaBlue.dart
index 152a3dd..f234f74 100644
--- a/example/DeltaBlue.dart
+++ b/example/DeltaBlue.dart
@@ -40,10 +40,8 @@
new DeltaBlue().report();
}
-
/// Benchmark class required to report results.
class DeltaBlue extends BenchmarkBase {
-
const DeltaBlue() : super("DeltaBlue");
void run() {
@@ -52,7 +50,6 @@
}
}
-
/**
* Strengths are used to measure the relative importance of constraints.
* New strengths may be inserted in the strength hierarchy without
@@ -60,15 +57,19 @@
* this class, so == can be used for value comparison.
*/
class Strength {
-
final int value;
final String name;
const Strength(this.value, this.name);
- Strength nextWeaker() =>
- const <Strength>[WEAKEST, WEAK_DEFAULT, NORMAL, STRONG_DEFAULT,
- PREFERRED, STRONG_REFERRED][value];
+ Strength nextWeaker() => const <Strength>[
+ WEAKEST,
+ WEAK_DEFAULT,
+ NORMAL,
+ STRONG_DEFAULT,
+ PREFERRED,
+ STRONG_REFERRED
+ ][value];
static bool stronger(Strength s1, Strength s2) {
return s1.value < s2.value;
@@ -87,19 +88,16 @@
}
}
-
// Compile time computed constants.
-const REQUIRED = const Strength(0, "required");
+const REQUIRED = const Strength(0, "required");
const STRONG_REFERRED = const Strength(1, "strongPreferred");
-const PREFERRED = const Strength(2, "preferred");
-const STRONG_DEFAULT = const Strength(3, "strongDefault");
-const NORMAL = const Strength(4, "normal");
-const WEAK_DEFAULT = const Strength(5, "weakDefault");
-const WEAKEST = const Strength(6, "weakest");
-
+const PREFERRED = const Strength(2, "preferred");
+const STRONG_DEFAULT = const Strength(3, "strongDefault");
+const NORMAL = const Strength(4, "normal");
+const WEAK_DEFAULT = const Strength(5, "weakDefault");
+const WEAKEST = const Strength(6, "weakest");
abstract class Constraint {
-
final Strength strength;
const Constraint(this.strength);
@@ -163,7 +161,6 @@
* Abstract superclass for constraints having a single possible output variable.
*/
abstract class UnaryConstraint extends Constraint {
-
final Variable myOutput;
bool satisfied = false;
@@ -179,8 +176,8 @@
/// Decides if this constraint can be satisfied and records that decision.
void chooseMethod(int mark) {
- satisfied = (myOutput.mark != mark)
- && Strength.stronger(strength, myOutput.walkStrength);
+ satisfied = (myOutput.mark != mark) &&
+ Strength.stronger(strength, myOutput.walkStrength);
}
/// Returns true if this constraint is satisfied in the current solution.
@@ -217,7 +214,6 @@
}
}
-
/**
* Variables that should, with some level of preference, stay the same.
* Planners may exploit the fact that instances, if satisfied, will not
@@ -225,7 +221,6 @@
* optimization".
*/
class StayConstraint extends UnaryConstraint {
-
StayConstraint(Variable v, Strength str) : super(v, str);
void execute() {
@@ -233,13 +228,11 @@
}
}
-
/**
* A unary input constraint used to mark a variable that the client
* wishes to change.
*/
class EditConstraint extends UnaryConstraint {
-
EditConstraint(Variable v, Strength str) : super(v, str);
/// Edits indicate that a variable is to be changed by imperative code.
@@ -250,19 +243,16 @@
}
}
-
// Directions.
const int NONE = 1;
const int FORWARD = 2;
const int BACKWARD = 0;
-
/**
* Abstract superclass for constraints having two possible output
* variables.
*/
abstract class BinaryConstraint extends Constraint {
-
Variable v1;
Variable v2;
int direction = NONE;
@@ -278,21 +268,23 @@
*/
void chooseMethod(int mark) {
if (v1.mark == mark) {
- direction = (v2.mark != mark &&
- Strength.stronger(strength, v2.walkStrength))
- ? FORWARD : NONE;
+ direction =
+ (v2.mark != mark && Strength.stronger(strength, v2.walkStrength))
+ ? FORWARD
+ : NONE;
}
if (v2.mark == mark) {
- direction = (v1.mark != mark &&
- Strength.stronger(strength, v1.walkStrength))
- ? BACKWARD : NONE;
+ direction =
+ (v1.mark != mark && Strength.stronger(strength, v1.walkStrength))
+ ? BACKWARD
+ : NONE;
}
if (Strength.weaker(v1.walkStrength, v2.walkStrength)) {
- direction = Strength.stronger(strength, v1.walkStrength)
- ? BACKWARD : NONE;
+ direction =
+ Strength.stronger(strength, v1.walkStrength) ? BACKWARD : NONE;
} else {
- direction = Strength.stronger(strength, v2.walkStrength)
- ? FORWARD : BACKWARD;
+ direction =
+ Strength.stronger(strength, v2.walkStrength) ? FORWARD : BACKWARD;
}
}
@@ -346,7 +338,6 @@
}
}
-
/**
* Relates two variables by the linear scaling relationship: "v2 =
* (v1 * scale) + offset". Either v1 or v2 may be changed to maintain
@@ -355,13 +346,12 @@
*/
class ScaleConstraint extends BinaryConstraint {
-
final Variable scale;
final Variable offset;
- ScaleConstraint(Variable src, this.scale, this.offset,
- Variable dest, Strength strength)
- : super(src, dest, strength);
+ ScaleConstraint(
+ Variable src, this.scale, this.offset, Variable dest, Strength strength)
+ : super(src, dest, strength);
/// Adds this constraint to the constraint graph.
void addToGraph() {
@@ -401,17 +391,14 @@
out.stay = ihn.stay && scale.stay && offset.stay;
if (out.stay) execute();
}
-
}
-
/**
* Constrains two variables to have the same value.
*/
class EqualityConstraint extends BinaryConstraint {
-
EqualityConstraint(Variable v1, Variable v2, Strength strength)
- : super(v1, v2, strength);
+ : super(v1, v2, strength);
/// Enforce this constraint. Assume that it is satisfied.
void execute() {
@@ -419,7 +406,6 @@
}
}
-
/**
* A constrained variable. In addition to its value, it maintain the
* structure of the constraint graph, the current dataflow graph, and
@@ -427,7 +413,6 @@
* constraint solver.
**/
class Variable {
-
List<Constraint> constraints = <Constraint>[];
Constraint determinedBy;
int mark = 0;
@@ -453,9 +438,7 @@
}
}
-
class Planner {
-
int currentMark = 0;
/**
@@ -474,7 +457,7 @@
*/
void incrementalAdd(Constraint c) {
int mark = newMark();
- for(Constraint overridden = c.satisfy(mark);
+ for (Constraint overridden = c.satisfy(mark);
overridden != null;
overridden = overridden.satisfy(mark));
}
@@ -621,7 +604,6 @@
}
}
-
/**
* A Plan is an ordered list of constraints to be executed in sequence
* to resatisfy all currently satisfiable constraints in the face of
@@ -643,7 +625,6 @@
}
}
-
/**
* This is the standard DeltaBlue benchmark. A long chain of equality
* constraints is constructed with a stay constraint on one end. An
diff --git a/example/FluidMotion/dart/FluidMotion.dart b/example/FluidMotion/dart/FluidMotion.dart
index b4e887b..69e3ccb 100644
--- a/example/FluidMotion/dart/FluidMotion.dart
+++ b/example/FluidMotion/dart/FluidMotion.dart
@@ -47,7 +47,7 @@
framesTillAddingPoints = 0;
framesBetweenAddingPoints = 5;
solver = new FluidField.create(null, 128, 128, 20);
- solver.setDisplayFunction((a){});
+ solver.setDisplayFunction((a) {});
solver.setUICallback(prepareFrame);
}
@@ -96,7 +96,6 @@
}
}
-
// Code from Oliver Hunt (http://nerget.com/fluidSim/pressure.js) starts here.
class FluidField {
@@ -114,7 +113,7 @@
static FluidField _lastCreated;
static bool approxEquals(double a, double b) => (a - b).abs() < 0.000001;
-
+
validate(expectedDens, expectedU, expectedV) {
var sumDens = 0.0;
var sumU = 0.0;
@@ -124,14 +123,13 @@
sumU += u[i];
sumV += v[i];
}
-
+
if (!approxEquals(sumDens, expectedDens) ||
!approxEquals(sumU, expectedU) ||
!approxEquals(sumV, expectedV)) {
throw "Incorrect result";
}
}
-
// Allocates a new FluidField or return previously allocated field if the
// size is too large.
@@ -143,16 +141,15 @@
_lastCreated = new FluidField(canvas, 64, 64, iterations);
}
assert((canvas == _lastCreated.canvas) &&
- (iterations == _lastCreated.iterations));
+ (iterations == _lastCreated.iterations));
return _lastCreated;
}
-
- FluidField(this.canvas, int hRes, int wRes, this.iterations) :
- width = wRes,
- height = hRes,
- rowSize = (wRes + 2),
- size = (wRes + 2) * (hRes + 2) {
+ FluidField(this.canvas, int hRes, int wRes, this.iterations)
+ : width = wRes,
+ height = hRes,
+ rowSize = (wRes + 2),
+ size = (wRes + 2) * (hRes + 2) {
reset();
}
@@ -167,15 +164,15 @@
}
void addFields(Float64List x, Float64List s, double dt) {
- for (var i=0; i< size ; i++) x[i] += dt*s[i];
+ for (var i = 0; i < size; i++) x[i] += dt * s[i];
}
void set_bnd(int b, Float64List x) {
- if (b==1) {
+ if (b == 1) {
var i = 1;
for (; i <= width; i++) {
- x[i] = x[i + rowSize];
- x[i + (height+1) *rowSize] = x[i + height * rowSize];
+ x[i] = x[i + rowSize];
+ x[i + (height + 1) * rowSize] = x[i + height * rowSize];
}
for (var j = 1; j <= height; j++) {
@@ -189,31 +186,31 @@
}
for (var j = 1; j <= height; j++) {
- x[j * rowSize] = x[1 + j * rowSize];
- x[(width + 1) + j * rowSize] = x[width + j * rowSize];
+ x[j * rowSize] = x[1 + j * rowSize];
+ x[(width + 1) + j * rowSize] = x[width + j * rowSize];
}
} else {
for (var i = 1; i <= width; i++) {
- x[i] = x[i + rowSize];
+ x[i] = x[i + rowSize];
x[i + (height + 1) * rowSize] = x[i + height * rowSize];
}
for (var j = 1; j <= height; j++) {
- x[j * rowSize] = x[1 + j * rowSize];
- x[(width + 1) + j * rowSize] = x[width + j * rowSize];
+ x[j * rowSize] = x[1 + j * rowSize];
+ x[(width + 1) + j * rowSize] = x[width + j * rowSize];
}
}
var maxEdge = (height + 1) * rowSize;
- x[0] = 0.5 * (x[1] + x[rowSize]);
- x[maxEdge] = 0.5 * (x[1 + maxEdge] + x[height * rowSize]);
- x[(width+1)] = 0.5 * (x[width] + x[(width + 1) + rowSize]);
- x[(width+1)+maxEdge] = 0.5 * (x[width + maxEdge] + x[(width + 1) +
- height * rowSize]);
+ x[0] = 0.5 * (x[1] + x[rowSize]);
+ x[maxEdge] = 0.5 * (x[1 + maxEdge] + x[height * rowSize]);
+ x[(width + 1)] = 0.5 * (x[width] + x[(width + 1) + rowSize]);
+ x[(width + 1) + maxEdge] =
+ 0.5 * (x[width + maxEdge] + x[(width + 1) + height * rowSize]);
}
void lin_solve(int b, Float64List x, Float64List x0, int a, int c) {
if (a == 0 && c == 1) {
- for (var j=1 ; j<=height; j++) {
+ for (var j = 1; j <= height; j++) {
var currentRow = j * rowSize;
++currentRow;
for (var i = 0; i < width; i++) {
@@ -224,16 +221,21 @@
set_bnd(b, x);
} else {
var invC = 1 / c;
- for (var k=0 ; k<iterations; k++) {
- for (var j=1 ; j<=height; j++) {
+ for (var k = 0; k < iterations; k++) {
+ for (var j = 1; j <= height; j++) {
var lastRow = (j - 1) * rowSize;
var currentRow = j * rowSize;
var nextRow = (j + 1) * rowSize;
var lastX = x[currentRow];
++currentRow;
- for (var i=1; i<=width; i++)
+ for (var i = 1; i <= width; i++)
lastX = x[currentRow] = (x0[currentRow] +
- a*(lastX+x[++currentRow]+x[++lastRow]+x[++nextRow])) * invC;
+ a *
+ (lastX +
+ x[++currentRow] +
+ x[++lastRow] +
+ x[++nextRow])) *
+ invC;
}
set_bnd(b, x);
}
@@ -242,13 +244,13 @@
void diffuse(int b, Float64List x, Float64List x0, double dt) {
var a = 0;
- lin_solve(b, x, x0, a, 1 + 4*a);
+ lin_solve(b, x, x0, a, 1 + 4 * a);
}
- void lin_solve2(Float64List x, Float64List x0,
- Float64List y, Float64List y0, int a, int c) {
+ void lin_solve2(Float64List x, Float64List x0, Float64List y, Float64List y0,
+ int a, int c) {
if (a == 0 && c == 1) {
- for (var j=1 ; j <= height; j++) {
+ for (var j = 1; j <= height; j++) {
var currentRow = j * rowSize;
++currentRow;
for (var i = 0; i < width; i++) {
@@ -260,9 +262,9 @@
set_bnd(1, x);
set_bnd(2, y);
} else {
- var invC = 1/c;
- for (var k=0 ; k<iterations; k++) {
- for (var j=1 ; j <= height; j++) {
+ var invC = 1 / c;
+ for (var k = 0; k < iterations; k++) {
+ for (var j = 1; j <= height; j++) {
var lastRow = (j - 1) * rowSize;
var currentRow = j * rowSize;
var nextRow = (j + 1) * rowSize;
@@ -270,10 +272,16 @@
var lastY = y[currentRow];
++currentRow;
for (var i = 1; i <= width; i++) {
- lastX = x[currentRow] = (x0[currentRow] + a *
- (lastX + x[currentRow] + x[lastRow] + x[nextRow])) * invC;
- lastY = y[currentRow] = (y0[currentRow] + a *
- (lastY + y[++currentRow] + y[++lastRow] + y[++nextRow])) * invC;
+ lastX = x[currentRow] = (x0[currentRow] +
+ a * (lastX + x[currentRow] + x[lastRow] + x[nextRow])) *
+ invC;
+ lastY = y[currentRow] = (y0[currentRow] +
+ a *
+ (lastY +
+ y[++currentRow] +
+ y[++lastRow] +
+ y[++nextRow])) *
+ invC;
}
}
set_bnd(1, x);
@@ -282,33 +290,30 @@
}
}
- void diffuse2(Float64List x, Float64List x0, y,
- Float64List y0, double dt) {
+ void diffuse2(Float64List x, Float64List x0, y, Float64List y0, double dt) {
var a = 0;
lin_solve2(x, x0, y, y0, a, 1 + 4 * a);
}
- void advect(int b, Float64List d, Float64List d0,
- Float64List u, Float64List v, double dt) {
+ void advect(int b, Float64List d, Float64List d0, Float64List u,
+ Float64List v, double dt) {
var Wdt0 = dt * width;
var Hdt0 = dt * height;
var Wp5 = width + 0.5;
var Hp5 = height + 0.5;
- for (var j = 1; j<= height; j++) {
+ for (var j = 1; j <= height; j++) {
var pos = j * rowSize;
for (var i = 1; i <= width; i++) {
var x = i - Wdt0 * u[++pos];
var y = j - Hdt0 * v[pos];
if (x < 0.5)
x = 0.5;
- else if (x > Wp5)
- x = Wp5;
+ else if (x > Wp5) x = Wp5;
var i0 = x.toInt();
var i1 = i0 + 1;
if (y < 0.5)
y = 0.5;
- else if (y > Hp5)
- y = Hp5;
+ else if (y > Hp5) y = Hp5;
var j0 = y.toInt();
var j1 = j0 + 1;
var s1 = x - i0;
@@ -324,70 +329,75 @@
set_bnd(b, d);
}
- void project(Float64List u, Float64List v,
- Float64List p, Float64List div) {
+ void project(Float64List u, Float64List v, Float64List p, Float64List div) {
var h = -0.5 / sqrt(width * height);
- for (var j = 1 ; j <= height; j++ ) {
+ for (var j = 1; j <= height; j++) {
var row = j * rowSize;
var previousRow = (j - 1) * rowSize;
var prevValue = row - 1;
var currentRow = row;
var nextValue = row + 1;
var nextRow = (j + 1) * rowSize;
- for (var i = 1; i <= width; i++ ) {
- div[++currentRow] = h * (u[++nextValue] - u[++prevValue] +
- v[++nextRow] - v[++previousRow]);
+ for (var i = 1; i <= width; i++) {
+ div[++currentRow] = h *
+ (u[++nextValue] - u[++prevValue] + v[++nextRow] - v[++previousRow]);
p[currentRow] = 0.0;
}
}
set_bnd(0, div);
set_bnd(0, p);
- lin_solve(0, p, div, 1, 4 );
+ lin_solve(0, p, div, 1, 4);
var wScale = 0.5 * width;
var hScale = 0.5 * height;
- for (var j = 1; j<= height; j++ ) {
+ for (var j = 1; j <= height; j++) {
var prevPos = j * rowSize - 1;
var currentPos = j * rowSize;
var nextPos = j * rowSize + 1;
var prevRow = (j - 1) * rowSize;
- var currentRow = j * rowSize;
var nextRow = (j + 1) * rowSize;
- for (var i = 1; i<= width; i++) {
+ for (var i = 1; i <= width; i++) {
u[++currentPos] -= wScale * (p[++nextPos] - p[++prevPos]);
- v[currentPos] -= hScale * (p[++nextRow] - p[++prevRow]);
+ v[currentPos] -= hScale * (p[++nextRow] - p[++prevRow]);
}
}
set_bnd(1, u);
set_bnd(2, v);
}
- void dens_step(Float64List x, Float64List x0,
- Float64List u, Float64List v, double dt) {
+ void dens_step(
+ Float64List x, Float64List x0, Float64List u, Float64List v, double dt) {
addFields(x, x0, dt);
- diffuse(0, x0, x, dt );
- advect(0, x, x0, u, v, dt );
+ diffuse(0, x0, x, dt);
+ advect(0, x, x0, u, v, dt);
}
- void vel_step(Float64List u, Float64List v,
- Float64List u0, Float64List v0, double dt) {
- addFields(u, u0, dt );
- addFields(v, v0, dt );
- var temp = u0; u0 = u; u = temp;
- temp = v0; v0 = v; v = temp;
- diffuse2(u,u0,v,v0, dt);
+ void vel_step(
+ Float64List u, Float64List v, Float64List u0, Float64List v0, double dt) {
+ addFields(u, u0, dt);
+ addFields(v, v0, dt);
+ var temp = u0;
+ u0 = u;
+ u = temp;
+ temp = v0;
+ v0 = v;
+ v = temp;
+ diffuse2(u, u0, v, v0, dt);
project(u, v, u0, v0);
- temp = u0; u0 = u; u = temp;
- temp = v0; v0 = v; v = temp;
+ temp = u0;
+ u0 = u;
+ u = temp;
+ temp = v0;
+ v0 = v;
+ v = temp;
advect(1, u, u0, u0, v0, dt);
advect(2, v, v0, u0, v0, dt);
- project(u, v, u0, v0 );
+ project(u, v, u0, v0);
}
var uiCallback;
-
void setDisplayFunction(func) {
displayFunc = func;
}
@@ -424,7 +434,7 @@
}
double getDensity(int x, int y) {
- return dens[(x + 1) + (y + 1) * rowSize]; // rowSize from FluidField?
+ return dens[(x + 1) + (y + 1) * rowSize]; // rowSize from FluidField?
}
void setVelocity(int x, int y, double xv, double yv) {
diff --git a/example/Richards.dart b/example/Richards.dart
index 89af958..0659bac 100644
--- a/example/Richards.dart
+++ b/example/Richards.dart
@@ -36,17 +36,14 @@
import 'package:benchmark_harness/benchmark_harness.dart';
-
main() {
new Richards().report();
}
-
/**
* Richards imulates the task dispatcher of an operating system.
**/
class Richards extends BenchmarkBase {
-
const Richards() : super("Richards");
void run() {
@@ -76,7 +73,7 @@
if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
scheduler.holdCount != EXPECTED_HOLD_COUNT) {
print("Error during execution: queueCount = ${scheduler.queueCount}"
- ", holdCount = ${scheduler.holdCount}.");
+ ", holdCount = ${scheduler.holdCount}.");
}
if (EXPECTED_QUEUE_COUNT != scheduler.queueCount) {
throw "bad scheduler queue-count";
@@ -111,21 +108,19 @@
static const int KIND_WORK = 1;
}
-
/**
* A scheduler can be used to schedule a set of tasks based on their relative
* priorities. Scheduling is done by maintaining a list of task control blocks
* which holds tasks and the data queue they are processing.
*/
class Scheduler {
-
int queueCount = 0;
int holdCount = 0;
TaskControlBlock currentTcb;
int currentId;
TaskControlBlock list;
List<TaskControlBlock> blocks =
- new List<TaskControlBlock>(Richards.NUMBER_OF_IDS);
+ new List<TaskControlBlock>(Richards.NUMBER_OF_IDS);
/// Add an idle task to this scheduler.
void addIdleTask(int id, int priority, Packet queue, int count) {
@@ -134,10 +129,8 @@
/// Add a work task to this scheduler.
void addWorkerTask(int id, int priority, Packet queue) {
- addTask(id,
- priority,
- queue,
- new WorkerTask(this, Richards.ID_HANDLER_A, 0));
+ addTask(
+ id, priority, queue, new WorkerTask(this, Richards.ID_HANDLER_A, 0));
}
/// Add a handler task to this scheduler.
@@ -221,15 +214,13 @@
}
}
-
/**
* A task control block manages a task and the queue of work packages associated
* with it.
*/
class TaskControlBlock {
-
TaskControlBlock link;
- int id; // The id of this block.
+ int id; // The id of this block.
int priority; // The priority of this block.
Packet queue; // The queue of packages to be processed by the task.
Task task;
@@ -270,8 +261,7 @@
}
bool isHeldOrSuspended() {
- return (state & STATE_HELD) != 0 ||
- (state == STATE_SUSPENDED);
+ return (state & STATE_HELD) != 0 || (state == STATE_SUSPENDED);
}
void markAsSuspended() {
@@ -318,7 +308,6 @@
* Abstract task that manipulates work packets.
*/
abstract class Task {
-
Scheduler scheduler; // The scheduler that manages this task.
Task(this.scheduler);
@@ -331,8 +320,7 @@
* device tasks.
*/
class IdleTask extends Task {
-
- int v1; // A seed value that controls how the device tasks are scheduled.
+ int v1; // A seed value that controls how the device tasks are scheduled.
int count; // The number of times this task should be scheduled.
IdleTask(Scheduler scheduler, this.v1, this.count) : super(scheduler);
@@ -351,13 +339,11 @@
String toString() => "IdleTask";
}
-
/**
* A task that suspends itself after each time it has been run to simulate
* waiting for data from an external device.
*/
class DeviceTask extends Task {
-
Packet v1;
DeviceTask(Scheduler scheduler) : super(scheduler);
@@ -376,12 +362,10 @@
String toString() => "DeviceTask";
}
-
/**
* A task that manipulates work packets.
*/
class WorkerTask extends Task {
-
int v1; // A seed used to specify how work packets are manipulated.
int v2; // Another seed used to specify how work packets are manipulated.
@@ -409,12 +393,10 @@
String toString() => "WorkerTask";
}
-
/**
* A task that manipulates work packets and then suspends itself.
*/
class HandlerTask extends Task {
-
Packet v1;
Packet v2;
@@ -451,7 +433,6 @@
String toString() => "HandlerTask";
}
-
/**
* A simple package of data that is manipulated by the tasks. The exact layout
* of the payload data carried by a packet is not importaint, and neither is the
@@ -460,10 +441,9 @@
* data and worklists.
*/
class Packet {
-
Packet link; // The tail of the linked list of packets.
- int id; // An ID for this packet.
- int kind; // The type of this packet.
+ int id; // An ID for this packet.
+ int kind; // The type of this packet.
int a1 = 0;
List<int> a2 = new List(Richards.DATA_SIZE);
diff --git a/example/Template.dart b/example/Template.dart
index f6a62f1..b930809 100644
--- a/example/Template.dart
+++ b/example/Template.dart
@@ -12,14 +12,13 @@
}
// The benchmark code.
- void run() {
- }
+ void run() {}
// Not measured setup code executed prior to the benchmark runs.
- void setup() { }
+ void setup() {}
// Not measures teardown code executed after the benchark runs.
- void teardown() { }
+ void teardown() {}
}
main() {
diff --git a/example/Tracer/dart/Tracer.dart b/example/Tracer/dart/Tracer.dart
index 7a4f5f3..4c7bd14 100644
--- a/example/Tracer/dart/Tracer.dart
+++ b/example/Tracer/dart/Tracer.dart
@@ -7,6 +7,7 @@
library ray_trace;
+import 'dart:html';
import 'dart:math';
import 'package:benchmark_harness/benchmark_harness.dart';
diff --git a/example/Tracer/dart/app.dart b/example/Tracer/dart/app.dart
index f07f077..28c9cb5 100644
--- a/example/Tracer/dart/app.dart
+++ b/example/Tracer/dart/app.dart
@@ -15,15 +15,17 @@
var checkNumber;
main() {
- var button = query('#render');
- var canvas = query('#canvas');
- var time = query('#time');
+ var button = querySelector('#render');
+ var canvas = querySelector('#canvas') as CanvasElement;
+ var time = querySelector('#time');
button.onClick.listen((e) {
- canvas.width = int.parse(query('#imageWidth').value);
- canvas.height = int.parse(query('#imageHeight').value);
+ canvas.width =
+ int.parse((querySelector('#imageWidth') as InputElement).value);
+ canvas.height =
+ int.parse((querySelector('#imageHeight') as InputElement).value);
var sw = new Stopwatch()..start();
renderScene(e);
sw.stop();
time.text = sw.elapsedMilliseconds.toString();
});
-}
\ No newline at end of file
+}
diff --git a/example/Tracer/dart/color.dart b/example/Tracer/dart/color.dart
index d71b295..ca2a63e 100644
--- a/example/Tracer/dart/color.dart
+++ b/example/Tracer/dart/color.dart
@@ -15,17 +15,16 @@
void limit() {
this.red = (this.red > 0.0) ? ((this.red > 1.0) ? 1.0 : this.red) : 0.0;
- this.green = (this.green > 0.0) ?
- ((this.green > 1.0) ? 1.0 : this.green) : 0.0;
- this.blue = (this.blue > 0.0) ?
- ((this.blue > 1.0) ? 1.0 : this.blue) : 0.0;
+ this.green =
+ (this.green > 0.0) ? ((this.green > 1.0) ? 1.0 : this.green) : 0.0;
+ this.blue = (this.blue > 0.0) ? ((this.blue > 1.0) ? 1.0 : this.blue) : 0.0;
}
Color operator +(Color c2) {
return new Color(red + c2.red, green + c2.green, blue + c2.blue);
}
- Color addScalar(double s){
+ Color addScalar(double s) {
var result = new Color(red + s, green + s, blue + s);
result.limit();
return result;
diff --git a/example/Tracer/dart/engine.dart b/example/Tracer/dart/engine.dart
index 9e53724..2696059 100644
--- a/example/Tracer/dart/engine.dart
+++ b/example/Tracer/dart/engine.dart
@@ -18,7 +18,6 @@
String toString() => 'Intersection [$position]';
}
-
class Engine {
int canvasWidth;
int canvasHeight;
@@ -27,16 +26,21 @@
int rayDepth;
var canvas;
- Engine({this.canvasWidth : 100, this.canvasHeight : 100,
- this.pixelWidth : 2, this.pixelHeight : 2,
- this.renderDiffuse : false, this.renderShadows : false,
- this.renderHighlights : false, this.renderReflections : false,
- this.rayDepth : 2}) {
+ Engine(
+ {this.canvasWidth: 100,
+ this.canvasHeight: 100,
+ this.pixelWidth: 2,
+ this.pixelHeight: 2,
+ this.renderDiffuse: false,
+ this.renderShadows: false,
+ this.renderHighlights: false,
+ this.renderReflections: false,
+ this.rayDepth: 2}) {
canvasHeight = canvasHeight ~/ pixelHeight;
canvasWidth = canvasWidth ~/ pixelWidth;
}
- void setPixel(int x, int y, Color color){
+ void setPixel(int x, int y, Color color) {
var pxW, pxH;
pxW = this.pixelWidth;
pxH = this.pixelHeight;
@@ -60,8 +64,8 @@
var canvasHeight = this.canvasHeight;
var canvasWidth = this.canvasWidth;
- for(var y = 0; y < canvasHeight; y++){
- for(var x = 0; x < canvasWidth; x++){
+ for (var y = 0; y < canvasHeight; y++) {
+ for (var x = 0; x < canvasWidth; x++) {
var yp = y * 1.0 / canvasHeight * 2 - 1;
var xp = x * 1.0 / canvasWidth * 2 - 1;
@@ -75,9 +79,9 @@
}
}
- Color getPixelColor(Ray ray, Scene scene){
+ Color getPixelColor(Ray ray, Scene scene) {
var info = this.testIntersection(ray, scene, null);
- if(info.isHit){
+ if (info.isHit) {
var color = this.rayTrace(info, ray, scene, 0);
return color;
}
@@ -89,14 +93,14 @@
IntersectionInfo best = new IntersectionInfo();
best.distance = 2000;
- for(var i=0; i < scene.shapes.length; i++){
+ for (var i = 0; i < scene.shapes.length; i++) {
var shape = scene.shapes[i];
- if(shape != exclude){
+ if (shape != exclude) {
IntersectionInfo info = shape.intersect(ray);
if (info.isHit &&
(info.distance >= 0) &&
- (info.distance < best.distance)){
+ (info.distance < best.distance)) {
best = info;
hits++;
}
@@ -106,19 +110,18 @@
return best;
}
- Ray getReflectionRay(Vector P, Vector N, Vector V){
+ Ray getReflectionRay(Vector P, Vector N, Vector V) {
var c1 = -N.dot(V);
- var R1 = N.multiplyScalar(2*c1) + V;
+ var R1 = N.multiplyScalar(2 * c1) + V;
return new Ray(P, R1);
}
Color rayTrace(IntersectionInfo info, Ray ray, Scene scene, int depth) {
// Calc ambient
Color color = info.color.multiplyScalar(scene.background.ambience);
- var oldColor = color;
var shininess = pow(10, info.shape.material.gloss + 1);
- for(var i = 0; i < scene.lights.length; i++) {
+ for (var i = 0; i < scene.lights.length; i++) {
var light = scene.lights[i];
// Calc diffuse lighting
@@ -136,12 +139,11 @@
if (depth <= this.rayDepth) {
// calculate reflection ray
if (this.renderReflections && info.shape.material.reflection > 0) {
- var reflectionRay = this.getReflectionRay(info.position,
- info.normal,
- ray.direction);
+ var reflectionRay =
+ this.getReflectionRay(info.position, info.normal, ray.direction);
var refl = this.testIntersection(reflectionRay, scene, info.shape);
- if (refl.isHit && refl.distance > 0){
+ if (refl.isHit && refl.distance > 0) {
refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
} else {
refl.color = scene.background.color;
@@ -160,8 +162,7 @@
var shadowRay = new Ray(info.position, v);
shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
- if (shadowInfo.isHit &&
- shadowInfo.shape != info.shape
+ if (shadowInfo.isHit && shadowInfo.shape != info.shape
/*&& shadowInfo.shape.type != 'PLANE'*/) {
var vA = color.multiplyScalar(0.5);
var dB = (0.5 * pow(shadowInfo.shape.material.transparency, 0.5));
diff --git a/example/Tracer/dart/index.html b/example/Tracer/dart/index.html
index 3d62186..dba6329 100644
--- a/example/Tracer/dart/index.html
+++ b/example/Tracer/dart/index.html
@@ -33,8 +33,6 @@
<div>
Time (ms): <span id="time"></span>
</div>
- <script type="application/dart" src="app.dart"></script>
- <!-- for this next line to work, your pubspec.yaml file must have a dependency on 'browser' -->
- <script src="packages/browser/dart.js"></script>
+ <script defer src="app.dart.js"></script>
</body>
</html>
diff --git a/example/Tracer/dart/materials.dart b/example/Tracer/dart/materials.dart
index 51a43cd..e05df23 100644
--- a/example/Tracer/dart/materials.dart
+++ b/example/Tracer/dart/materials.dart
@@ -7,9 +7,9 @@
part of ray_trace;
abstract class Materials {
- final gloss; // [0...infinity] 0 = matt
- final transparency; // 0=opaque
- final reflection; // [0...infinity] 0 = no reflection
+ final gloss; // [0...infinity] 0 = matt
+ final transparency; // 0=opaque
+ final reflection; // [0...infinity] 0 = no reflection
var refraction = 0.50;
var hasTexture = false;
@@ -19,22 +19,18 @@
wrapUp(t) {
t = t % 2.0;
- if(t < -1) t += 2.0;
- if(t >= 1) t -= 2.0;
+ if (t < -1) t += 2.0;
+ if (t >= 1) t -= 2.0;
return t;
}
}
-
class Chessboard extends Materials {
var colorEven, colorOdd, density;
- Chessboard(this.colorEven,
- this.colorOdd,
- reflection,
- transparency,
- gloss,
- this.density) : super(reflection, transparency, gloss) {
+ Chessboard(this.colorEven, this.colorOdd, reflection, transparency, gloss,
+ this.density)
+ : super(reflection, transparency, gloss) {
this.hasTexture = true;
}
@@ -49,7 +45,6 @@
}
}
-
class Solid extends Materials {
var color;
diff --git a/example/Tracer/dart/readme.md b/example/Tracer/dart/readme.md
new file mode 100644
index 0000000..dc3b17d
--- /dev/null
+++ b/example/Tracer/dart/readme.md
@@ -0,0 +1,4 @@
+To run:
+
+ 1) `pub run build_runner serve example` from the root
+ 2) Navigate to http://localhost:8080/Tracer/dart/
diff --git a/example/Tracer/dart/renderscene.dart b/example/Tracer/dart/renderscene.dart
index 49324aa..e995741 100644
--- a/example/Tracer/dart/renderscene.dart
+++ b/example/Tracer/dart/renderscene.dart
@@ -14,66 +14,33 @@
Light(this.position, this.color, [this.intensity = 10.0]);
}
-
// 'event' null means that we are benchmarking
void renderScene(event) {
var scene = new Scene();
scene.camera = new Camera(new Vector(0.0, 0.0, -15.0),
- new Vector(-0.2, 0.0, 5.0),
- new Vector(0.0, 1.0, 0.0));
+ new Vector(-0.2, 0.0, 5.0), new Vector(0.0, 1.0, 0.0));
scene.background = new Background(new Color(0.5, 0.5, 0.5), 0.4);
- var sphere = new Sphere(
- new Vector(-1.5, 1.5, 2.0),
- 1.5,
- new Solid(
- new Color(0.0, 0.5, 0.5),
- 0.3,
- 0.0,
- 0.0,
- 2.0
- )
- );
+ var sphere = new Sphere(new Vector(-1.5, 1.5, 2.0), 1.5,
+ new Solid(new Color(0.0, 0.5, 0.5), 0.3, 0.0, 0.0, 2.0));
- var sphere1 = new Sphere(
- new Vector(1.0, 0.25, 1.0),
- 0.5,
- new Solid(
- new Color(0.9,0.9,0.9),
- 0.1,
- 0.0,
- 0.0,
- 1.5
- )
- );
+ var sphere1 = new Sphere(new Vector(1.0, 0.25, 1.0), 0.5,
+ new Solid(new Color(0.9, 0.9, 0.9), 0.1, 0.0, 0.0, 1.5));
var plane = new Plane(
new Vector(0.1, 0.9, -0.5).normalize(),
1.2,
- new Chessboard(
- new Color(1.0, 1.0, 1.0),
- new Color(0.0, 0.0, 0.0),
- 0.2,
- 0.0,
- 1.0,
- 0.7
- )
- );
+ new Chessboard(new Color(1.0, 1.0, 1.0), new Color(0.0, 0.0, 0.0), 0.2,
+ 0.0, 1.0, 0.7));
scene.shapes.add(plane);
scene.shapes.add(sphere);
scene.shapes.add(sphere1);
- var light = new Light(
- new Vector(5.0, 10.0, -1.0),
- new Color(0.8, 0.8, 0.8)
- );
+ var light = new Light(new Vector(5.0, 10.0, -1.0), new Color(0.8, 0.8, 0.8));
- var light1 = new Light(
- new Vector(-3.0, 5.0, -15.0),
- new Color(0.8, 0.8, 0.8),
- 100.0
- );
+ var light1 =
+ new Light(new Vector(-3.0, 5.0, -15.0), new Color(0.8, 0.8, 0.8), 100.0);
scene.lights.add(light);
scene.lights.add(light1);
@@ -91,27 +58,34 @@
renderReflections = true;
canvas = null;
} else {
- imageWidth = int.parse(query('#imageWidth').value);
- imageHeight = int.parse(query('#imageHeight').value);
- pixelSize = int.parse(query('#pixelSize').value.split(',')[0]);
- renderDiffuse = query('#renderDiffuse').checked;
- renderShadows = query('#renderShadows').checked;
- renderHighlights = query('#renderHighlights').checked;
- renderReflections = query('#renderReflections').checked;
- canvas = query("#canvas");
+ imageWidth =
+ int.parse((querySelector('#imageWidth') as InputElement).value);
+ imageHeight =
+ int.parse((querySelector('#imageHeight') as InputElement).value);
+ pixelSize = int.parse(
+ (querySelector('#pixelSize') as InputElement).value.split(',')[0]);
+ renderDiffuse =
+ (querySelector('#renderDiffuse') as CheckboxInputElement).checked;
+ renderShadows =
+ (querySelector('#renderShadows') as CheckboxInputElement).checked;
+ renderHighlights =
+ (querySelector('#renderHighlights') as CheckboxInputElement).checked;
+ renderReflections =
+ (querySelector('#renderReflections') as CheckboxInputElement).checked;
+ canvas = querySelector("#canvas");
}
int rayDepth = 2;
- var raytracer = new Engine(canvasWidth:imageWidth,
- canvasHeight:imageHeight,
- pixelWidth: pixelSize,
- pixelHeight: pixelSize,
- renderDiffuse: renderDiffuse,
- renderShadows: renderShadows,
- renderReflections: renderReflections,
- renderHighlights: renderHighlights,
- rayDepth: rayDepth
- );
+ var raytracer = new Engine(
+ canvasWidth: imageWidth,
+ canvasHeight: imageHeight,
+ pixelWidth: pixelSize,
+ pixelHeight: pixelSize,
+ renderDiffuse: renderDiffuse,
+ renderShadows: renderShadows,
+ renderReflections: renderReflections,
+ renderHighlights: renderHighlights,
+ rayDepth: rayDepth);
raytracer.renderScene(scene, canvas);
}
diff --git a/example/Tracer/dart/scene.dart b/example/Tracer/dart/scene.dart
index 4c9674f..499ec84 100644
--- a/example/Tracer/dart/scene.dart
+++ b/example/Tracer/dart/scene.dart
@@ -16,7 +16,6 @@
}
}
-
class Camera {
final position;
final lookAt;
@@ -29,8 +28,8 @@
}
Ray getRay(double vx, double vy) {
- var pos = screen -
- (this.equator.multiplyScalar(vx) - this.up.multiplyScalar(vy));
+ var pos =
+ screen - (this.equator.multiplyScalar(vx) - this.up.multiplyScalar(vy));
pos.y = pos.y * -1.0;
var dir = pos - this.position;
var ray = new Ray(pos, dir.normalize());
@@ -42,7 +41,6 @@
}
}
-
class Background {
final Color color;
final double ambience;
@@ -50,16 +48,14 @@
Background(this.color, this.ambience);
}
-
class Scene {
var camera;
var shapes;
var lights;
var background;
Scene() {
- camera = new Camera(new Vector(0.0, 0.0, -0.5),
- new Vector(0.0, 0.0, 1.0),
- new Vector(0.0, 1.0, 0.0));
+ camera = new Camera(new Vector(0.0, 0.0, -0.5), new Vector(0.0, 0.0, 1.0),
+ new Vector(0.0, 1.0, 0.0));
shapes = new List();
lights = new List();
background = new Background(new Color(0.0, 0.0, 0.5), 0.2);
diff --git a/example/Tracer/dart/shapes.dart b/example/Tracer/dart/shapes.dart
index 9dc9923..254ece8 100644
--- a/example/Tracer/dart/shapes.dart
+++ b/example/Tracer/dart/shapes.dart
@@ -17,7 +17,6 @@
}
}
-
class Plane extends BaseShape {
final d;
@@ -38,14 +37,14 @@
info.normal = this.position;
info.distance = t;
- if(this.material.hasTexture){
+ if (this.material.hasTexture) {
var vU = new Vector(this.position.y, this.position.z, -this.position.x);
var vV = vU.cross(this.position);
var u = info.position.dot(vU);
var v = info.position.dot(vV);
- info.color = this.material.getColor(u,v);
+ info.color = this.material.getColor(u, v);
} else {
- info.color = this.material.getColor(0,0);
+ info.color = this.material.getColor(0, 0);
}
return info;
@@ -56,12 +55,11 @@
}
}
-
class Sphere extends BaseShape {
var radius;
- Sphere(pos, radius, material) : super(pos, material), this.radius = radius;
+ Sphere(pos, this.radius, material) : super(pos, material);
- IntersectionInfo intersect(Ray ray){
+ IntersectionInfo intersect(Ray ray) {
var info = new IntersectionInfo();
info.shape = this;
@@ -71,14 +69,15 @@
var C = dst.dot(dst) - (this.radius * this.radius);
var D = (B * B) - C;
- if (D > 0) { // intersection!
+ if (D > 0) {
+ // intersection!
info.isHit = true;
info.distance = (-B) - sqrt(D);
- info.position = ray.position +
- ray.direction.multiplyScalar(info.distance);
+ info.position =
+ ray.position + ray.direction.multiplyScalar(info.distance);
info.normal = (info.position - this.position).normalize();
- info.color = this.material.getColor(0,0);
+ info.color = this.material.getColor(0, 0);
} else {
info.isHit = false;
}
@@ -89,4 +88,3 @@
return 'Sphere [position=$position, radius=$radius]';
}
}
-
diff --git a/example/Tracer/dart/vector.dart b/example/Tracer/dart/vector.dart
index ab3495b..4763fad 100644
--- a/example/Tracer/dart/vector.dart
+++ b/example/Tracer/dart/vector.dart
@@ -26,9 +26,8 @@
}
Vector cross(Vector w) {
- return new Vector(-this.z * w.y + this.y * w.z,
- this.z * w.x - this.x * w.z,
- -this.y * w.x + this.x * w.y);
+ return new Vector(-this.z * w.y + this.y * w.z, this.z * w.x - this.x * w.z,
+ -this.y * w.x + this.x * w.y);
}
double dot(Vector w) {
diff --git a/lib/src/benchmark_base.dart b/lib/src/benchmark_base.dart
index c72b330..9273ebf 100644
--- a/lib/src/benchmark_base.dart
+++ b/lib/src/benchmark_base.dart
@@ -7,14 +7,13 @@
final ScoreEmitter emitter;
// Empty constructor.
- const BenchmarkBase(String name,
- { ScoreEmitter emitter: const PrintEmitter() })
+ const BenchmarkBase(String name, {ScoreEmitter emitter: const PrintEmitter()})
: this.name = name,
this.emitter = emitter;
// The benchmark code.
// This function is not used, if both [warmup] and [exercise] are overwritten.
- void run() { }
+ void run() {}
// Runs a short version of the benchmark. By default invokes [run] once.
void warmup() {
@@ -29,10 +28,10 @@
}
// Not measured setup code executed prior to the benchmark runs.
- void setup() { }
+ void setup() {}
// Not measures teardown code executed after the benchark runs.
- void teardown() { }
+ void teardown() {}
// Measures the score for this benchmark by executing it repeately until
// time minimum has been reached.
@@ -54,9 +53,13 @@
double measure() {
setup();
// Warmup for at least 100ms. Discard result.
- measureFor(() { this.warmup(); }, 100);
+ measureFor(() {
+ this.warmup();
+ }, 100);
// Run the benchmark for at least 2000ms.
- double result = measureFor(() { this.exercise(); }, 2000);
+ double result = measureFor(() {
+ this.exercise();
+ }, 2000);
teardown();
return result;
}
@@ -64,5 +67,4 @@
void report() {
emitter.emit(name, measure());
}
-
}
diff --git a/pubspec.yaml b/pubspec.yaml
index 600ef22..fab6326 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,13 +1,15 @@
name: benchmark_harness
-version: 1.0.5-dev
+version: 1.0.5
author: Dart Team <misc@dartlang.org>
description: The official Dart project benchmark harness.
homepage: https://github.com/dart-lang/benchmark_harness
-dependencies:
- browser: '>=0.10.0+2 <0.11.0'
+
+environment:
+ sdk: ">=2.0.0-dev <3.0.0"
+
dev_dependencies:
- hop: '>=0.30.3 <0.32.0'
- hop_unittest: any
- mock: '>=0.11.0 <0.12.0'
- path: '>=1.1.0 <2.0.0'
- unittest: '>=0.10.0 <0.12.0'
+ build_runner: ^0.9.0
+ build_web_compilers: ^0.4.0
+ mockito: ^3.0.0
+ path: ^1.1.0
+ test: ^1.0.0
diff --git a/test/benchmark_harness_test.dart b/test/benchmark_harness_test.dart
index ae06e7a..c1b287f 100644
--- a/test/benchmark_harness_test.dart
+++ b/test/benchmark_harness_test.dart
@@ -5,7 +5,7 @@
library benchmark_harness_test;
import 'package:benchmark_harness/benchmark_harness.dart';
-import 'package:unittest/unittest.dart';
+import 'package:test/test.dart';
void main() {
group('benchmark_harness', () {
diff --git a/test/drone.sh b/test/drone.sh
deleted file mode 100755
index 2568f38..0000000
--- a/test/drone.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-# get the packages
-pub install
-
-# analyze the code
-dart tool/hop_runner.dart analyze_all
-
-# run the tests
-dart tool/hop_runner.dart test
diff --git a/test/fixed-unittest.dart b/test/fixed-unittest.dart
deleted file mode 100644
index 4f8951c..0000000
--- a/test/fixed-unittest.dart
+++ /dev/null
@@ -1,9 +0,0 @@
-library fixed_unittest;
-
-import 'package:unittest/unittest.dart';
-
-export 'package:unittest/unittest.dart';
-
-// Jasmine-like syntax for unittest.
-void describe(String spec, TestFunction body) => group(spec, body);
-void it(String spec, TestFunction body) => test(spec, body);
diff --git a/test/result_emitter_test.dart b/test/result_emitter_test.dart
index ef4b61a..82c45a7 100644
--- a/test/result_emitter_test.dart
+++ b/test/result_emitter_test.dart
@@ -1,38 +1,26 @@
library result_emitter_test;
import 'package:benchmark_harness/benchmark_harness.dart';
-import 'package:mock/mock.dart';
+import 'package:mockito/mockito.dart';
-import 'fixed-unittest.dart';
+import 'package:test/test.dart';
void main() {
benchmarkHarnessTest();
}
-class MockResultEmitter extends Mock implements ScoreEmitter {
- var hasEmitted = false;
-
- MockResultEmitter() {
- when(callsTo('emit')).alwaysCall(fakeEmit);
- }
-
- void fakeEmit(String name, double value) {
- hasEmitted = true;
- }
-
- // Added to quiet an analyzer warning.
- noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
-}
+class MockResultEmitter extends Mock implements ScoreEmitter {}
// Create a new benchmark which has an emitter.
class BenchmarkWithResultEmitter extends BenchmarkBase {
- const BenchmarkWithResultEmitter(ScoreEmitter emitter) : super("Template", emitter: emitter);
+ const BenchmarkWithResultEmitter(ScoreEmitter emitter)
+ : super("Template", emitter: emitter);
- void run() { }
+ void run() {}
- void setup() { }
+ void setup() {}
- void teardown() { }
+ void teardown() {}
}
benchmarkHarnessTest() {
@@ -41,12 +29,13 @@
return emitter;
}
- describe('ResultEmitter', () {
- it('should be called when emitter is provided', () {
+ group('ResultEmitter', () {
+ test('should be called when emitter is provided', () {
MockResultEmitter emitter = createMockEmitter();
var testBenchmark = new BenchmarkWithResultEmitter(emitter);
testBenchmark.report();
- emitter.getLogs(callsTo('emit')).verify(happenedOnce);
+
+ verify(emitter.emit(any, any)).called(1);
});
});
}
diff --git a/tool/hop_runner.dart b/tool/hop_runner.dart
deleted file mode 100755
index 30df07a..0000000
--- a/tool/hop_runner.dart
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/usr/bin/env dart
-library hop_runner;
-
-import 'dart:async';
-import 'dart:io';
-
-import 'package:hop/hop.dart';
-import 'package:hop/hop_tasks.dart';
-import 'package:hop_unittest/hop_unittest.dart';
-
-import 'package:path/path.dart' as path;
-
-import '../test/benchmark_harness_test.dart' as benchmark_harness_test;
-import '../test/result_emitter_test.dart' as result_emitter_test;
-
-void main(List<String> args) {
- addTask('analyze_libs', createAnalyzerTask(_getDartFiles('lib')));
- addTask('analyze_examples', createAnalyzerTask(_getDartFiles('example')));
- addTask('analyze_tests', createAnalyzerTask(_getDartFiles('test')));
-
- addChainedTask('analyze_all',
- ['analyze_libs', 'analyze_examples', 'analyze_tests']);
-
- addTask('test', createUnitTestTask((){
- benchmark_harness_test.main();
- result_emitter_test.main();
- }));
-
- runHop(args);
-}
-
-Future<List<String>> _getDartFiles(String directory) =>
- new Directory(directory)
- .list()
- .where((FileSystemEntity fse) => fse is File)
- .map((File file) => file.path)
- .where((String filePath) => path.extension(filePath) == '.dart')
- .toList();