| OLD | NEW |
| 1 var DeltaBlue = dart.defineLibrary(DeltaBlue, {}); | 1 var DeltaBlue = dart.defineLibrary(DeltaBlue, {}); |
| 2 var BenchmarkBase = dart.import(BenchmarkBase); | 2 var BenchmarkBase = dart.import(BenchmarkBase); |
| 3 var core = dart.import(core); | 3 var core = dart.import(core); |
| 4 (function(exports, BenchmarkBase, core) { | 4 (function(exports, BenchmarkBase, core) { |
| 5 'use strict'; | 5 'use strict'; |
| 6 function main() { | 6 function main() { |
| 7 new DeltaBlue().report(); | 7 new DeltaBlue().report(); |
| 8 } | 8 } |
| 9 dart.fn(main); | 9 dart.fn(main); |
| 10 class DeltaBlue extends BenchmarkBase.BenchmarkBase { | 10 class DeltaBlue extends BenchmarkBase.BenchmarkBase { |
| 11 DeltaBlue() { | 11 DeltaBlue() { |
| 12 super.BenchmarkBase("DeltaBlue"); | 12 super.BenchmarkBase("DeltaBlue"); |
| 13 } | 13 } |
| 14 run() { | 14 run() { |
| 15 chainTest(100); | 15 chainTest(100); |
| 16 projectionTest(100); | 16 projectionTest(100); |
| 17 } | 17 } |
| 18 } | 18 } |
| 19 dart.setSignature(DeltaBlue, { | 19 dart.setSignature(DeltaBlue, { |
| 20 constructors: () => ({DeltaBlue: [DeltaBlue, []]}) | 20 constructors: () => ({DeltaBlue: [DeltaBlue, []]}) |
| 21 }); | 21 }); |
| 22 class Strength extends core.Object { | 22 class Strength extends core.Object { |
| 23 Strength(value, name) { | 23 Strength(value, name) { |
| 24 this.value = value; | 24 this.value = value; |
| 25 this.name = name; | 25 this.name = name; |
| 26 } | 26 } |
| 27 nextWeaker() { | 27 nextWeaker() { |
| 28 return dart.const(dart.setType([STRONG_PREFERRED, PREFERRED, STRONG_DEFAUL
T, NORMAL, WEAK_DEFAULT, WEAKEST], core.List$(Strength)))[core.$get](this.value)
; | 28 return dart.const(dart.list([STRONG_PREFERRED, PREFERRED, STRONG_DEFAULT,
NORMAL, WEAK_DEFAULT, WEAKEST], Strength))[dartx.get](this.value); |
| 29 } | 29 } |
| 30 static stronger(s1, s2) { | 30 static stronger(s1, s2) { |
| 31 return dart.notNull(s1.value) < dart.notNull(s2.value); | 31 return dart.notNull(s1.value) < dart.notNull(s2.value); |
| 32 } | 32 } |
| 33 static weaker(s1, s2) { | 33 static weaker(s1, s2) { |
| 34 return dart.notNull(s1.value) > dart.notNull(s2.value); | 34 return dart.notNull(s1.value) > dart.notNull(s2.value); |
| 35 } | 35 } |
| 36 static weakest(s1, s2) { | 36 static weakest(s1, s2) { |
| 37 return Strength.weaker(s1, s2) ? s1 : s2; | 37 return Strength.weaker(s1, s2) ? s1 : s2; |
| 38 } | 38 } |
| (...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 execute() { | 305 execute() { |
| 306 this.output().value = this.input().value; | 306 this.output().value = this.input().value; |
| 307 } | 307 } |
| 308 } | 308 } |
| 309 dart.setSignature(EqualityConstraint, { | 309 dart.setSignature(EqualityConstraint, { |
| 310 constructors: () => ({EqualityConstraint: [EqualityConstraint, [Variable, Va
riable, Strength]]}), | 310 constructors: () => ({EqualityConstraint: [EqualityConstraint, [Variable, Va
riable, Strength]]}), |
| 311 methods: () => ({execute: [dart.void, []]}) | 311 methods: () => ({execute: [dart.void, []]}) |
| 312 }); | 312 }); |
| 313 class Variable extends core.Object { | 313 class Variable extends core.Object { |
| 314 Variable(name, value) { | 314 Variable(name, value) { |
| 315 this.constraints = dart.setType([], core.List$(Constraint)); | 315 this.constraints = dart.list([], Constraint); |
| 316 this.name = name; | 316 this.name = name; |
| 317 this.value = value; | 317 this.value = value; |
| 318 this.determinedBy = null; | 318 this.determinedBy = null; |
| 319 this.mark = 0; | 319 this.mark = 0; |
| 320 this.walkStrength = WEAKEST; | 320 this.walkStrength = WEAKEST; |
| 321 this.stay = true; | 321 this.stay = true; |
| 322 } | 322 } |
| 323 addConstraint(c) { | 323 addConstraint(c) { |
| 324 this.constraints[core.$add](c); | 324 this.constraints[dartx.add](c); |
| 325 } | 325 } |
| 326 removeConstraint(c) { | 326 removeConstraint(c) { |
| 327 this.constraints[core.$remove](c); | 327 this.constraints[dartx.remove](c); |
| 328 if (dart.equals(this.determinedBy, c)) | 328 if (dart.equals(this.determinedBy, c)) |
| 329 this.determinedBy = null; | 329 this.determinedBy = null; |
| 330 } | 330 } |
| 331 } | 331 } |
| 332 dart.setSignature(Variable, { | 332 dart.setSignature(Variable, { |
| 333 constructors: () => ({Variable: [Variable, [core.String, core.int]]}), | 333 constructors: () => ({Variable: [Variable, [core.String, core.int]]}), |
| 334 methods: () => ({ | 334 methods: () => ({ |
| 335 addConstraint: [dart.void, [Constraint]], | 335 addConstraint: [dart.void, [Constraint]], |
| 336 removeConstraint: [dart.void, [Constraint]] | 336 removeConstraint: [dart.void, [Constraint]] |
| 337 }) | 337 }) |
| 338 }); | 338 }); |
| 339 class Planner extends core.Object { | 339 class Planner extends core.Object { |
| 340 Planner() { | 340 Planner() { |
| 341 this.currentMark = 0; | 341 this.currentMark = 0; |
| 342 } | 342 } |
| 343 incrementalAdd(c) { | 343 incrementalAdd(c) { |
| 344 let mark = this.newMark(); | 344 let mark = this.newMark(); |
| 345 for (let overridden = c.satisfy(mark); overridden != null; overridden = ov
erridden.satisfy(mark)) | 345 for (let overridden = c.satisfy(mark); overridden != null; overridden = ov
erridden.satisfy(mark)) |
| 346 ; | 346 ; |
| 347 } | 347 } |
| 348 incrementalRemove(c) { | 348 incrementalRemove(c) { |
| 349 let out = c.output(); | 349 let out = c.output(); |
| 350 c.markUnsatisfied(); | 350 c.markUnsatisfied(); |
| 351 c.removeFromGraph(); | 351 c.removeFromGraph(); |
| 352 let unsatisfied = this.removePropagateFrom(out); | 352 let unsatisfied = this.removePropagateFrom(out); |
| 353 let strength = REQUIRED; | 353 let strength = REQUIRED; |
| 354 do { | 354 do { |
| 355 for (let i = 0; dart.notNull(i) < dart.notNull(unsatisfied[core.$length]
); i = dart.notNull(i) + 1) { | 355 for (let i = 0; dart.notNull(i) < dart.notNull(unsatisfied.length); i =
dart.notNull(i) + 1) { |
| 356 let u = unsatisfied[core.$get](i); | 356 let u = unsatisfied[dartx.get](i); |
| 357 if (dart.equals(u.strength, strength)) | 357 if (dart.equals(u.strength, strength)) |
| 358 this.incrementalAdd(u); | 358 this.incrementalAdd(u); |
| 359 } | 359 } |
| 360 strength = strength.nextWeaker(); | 360 strength = strength.nextWeaker(); |
| 361 } while (!dart.equals(strength, WEAKEST)); | 361 } while (!dart.equals(strength, WEAKEST)); |
| 362 } | 362 } |
| 363 newMark() { | 363 newMark() { |
| 364 return this.currentMark = dart.notNull(this.currentMark) + 1; | 364 return this.currentMark = dart.notNull(this.currentMark) + 1; |
| 365 } | 365 } |
| 366 makePlan(sources) { | 366 makePlan(sources) { |
| 367 let mark = this.newMark(); | 367 let mark = this.newMark(); |
| 368 let plan = new Plan(); | 368 let plan = new Plan(); |
| 369 let todo = sources; | 369 let todo = sources; |
| 370 while (dart.notNull(todo[core.$length]) > 0) { | 370 while (dart.notNull(todo.length) > 0) { |
| 371 let c = todo[core.$removeLast](); | 371 let c = todo[dartx.removeLast](); |
| 372 if (c.output().mark != mark && dart.notNull(c.inputsKnown(mark))) { | 372 if (c.output().mark != mark && dart.notNull(c.inputsKnown(mark))) { |
| 373 plan.addConstraint(c); | 373 plan.addConstraint(c); |
| 374 c.output().mark = mark; | 374 c.output().mark = mark; |
| 375 this.addConstraintsConsumingTo(c.output(), todo); | 375 this.addConstraintsConsumingTo(c.output(), todo); |
| 376 } | 376 } |
| 377 } | 377 } |
| 378 return plan; | 378 return plan; |
| 379 } | 379 } |
| 380 extractPlanFromConstraints(constraints) { | 380 extractPlanFromConstraints(constraints) { |
| 381 let sources = dart.setType([], core.List$(Constraint)); | 381 let sources = dart.list([], Constraint); |
| 382 for (let i = 0; dart.notNull(i) < dart.notNull(constraints[core.$length]);
i = dart.notNull(i) + 1) { | 382 for (let i = 0; dart.notNull(i) < dart.notNull(constraints.length); i = da
rt.notNull(i) + 1) { |
| 383 let c = constraints[core.$get](i); | 383 let c = constraints[dartx.get](i); |
| 384 if (dart.notNull(c.isInput()) && dart.notNull(c.isSatisfied())) | 384 if (dart.notNull(c.isInput()) && dart.notNull(c.isSatisfied())) |
| 385 sources[core.$add](c); | 385 sources[dartx.add](c); |
| 386 } | 386 } |
| 387 return this.makePlan(sources); | 387 return this.makePlan(sources); |
| 388 } | 388 } |
| 389 addPropagate(c, mark) { | 389 addPropagate(c, mark) { |
| 390 let todo = dart.setType([c], core.List$(Constraint)); | 390 let todo = dart.list([c], Constraint); |
| 391 while (dart.notNull(todo[core.$length]) > 0) { | 391 while (dart.notNull(todo.length) > 0) { |
| 392 let d = todo[core.$removeLast](); | 392 let d = todo[dartx.removeLast](); |
| 393 if (d.output().mark == mark) { | 393 if (d.output().mark == mark) { |
| 394 this.incrementalRemove(c); | 394 this.incrementalRemove(c); |
| 395 return false; | 395 return false; |
| 396 } | 396 } |
| 397 d.recalculate(); | 397 d.recalculate(); |
| 398 this.addConstraintsConsumingTo(d.output(), todo); | 398 this.addConstraintsConsumingTo(d.output(), todo); |
| 399 } | 399 } |
| 400 return true; | 400 return true; |
| 401 } | 401 } |
| 402 removePropagateFrom(out) { | 402 removePropagateFrom(out) { |
| 403 out.determinedBy = null; | 403 out.determinedBy = null; |
| 404 out.walkStrength = WEAKEST; | 404 out.walkStrength = WEAKEST; |
| 405 out.stay = true; | 405 out.stay = true; |
| 406 let unsatisfied = dart.setType([], core.List$(Constraint)); | 406 let unsatisfied = dart.list([], Constraint); |
| 407 let todo = dart.setType([out], core.List$(Variable)); | 407 let todo = dart.list([out], Variable); |
| 408 while (dart.notNull(todo[core.$length]) > 0) { | 408 while (dart.notNull(todo.length) > 0) { |
| 409 let v = todo[core.$removeLast](); | 409 let v = todo[dartx.removeLast](); |
| 410 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints[core.$lengt
h]); i = dart.notNull(i) + 1) { | 410 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i
= dart.notNull(i) + 1) { |
| 411 let c = v.constraints[core.$get](i); | 411 let c = v.constraints[dartx.get](i); |
| 412 if (!dart.notNull(c.isSatisfied())) | 412 if (!dart.notNull(c.isSatisfied())) |
| 413 unsatisfied[core.$add](c); | 413 unsatisfied[dartx.add](c); |
| 414 } | 414 } |
| 415 let determining = v.determinedBy; | 415 let determining = v.determinedBy; |
| 416 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints[core.$lengt
h]); i = dart.notNull(i) + 1) { | 416 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i
= dart.notNull(i) + 1) { |
| 417 let next = v.constraints[core.$get](i); | 417 let next = v.constraints[dartx.get](i); |
| 418 if (dart.notNull(!dart.equals(next, determining)) && dart.notNull(next
.isSatisfied())) { | 418 if (dart.notNull(!dart.equals(next, determining)) && dart.notNull(next
.isSatisfied())) { |
| 419 next.recalculate(); | 419 next.recalculate(); |
| 420 todo[core.$add](next.output()); | 420 todo[dartx.add](next.output()); |
| 421 } | 421 } |
| 422 } | 422 } |
| 423 } | 423 } |
| 424 return unsatisfied; | 424 return unsatisfied; |
| 425 } | 425 } |
| 426 addConstraintsConsumingTo(v, coll) { | 426 addConstraintsConsumingTo(v, coll) { |
| 427 let determining = v.determinedBy; | 427 let determining = v.determinedBy; |
| 428 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints[core.$length]
); i = dart.notNull(i) + 1) { | 428 for (let i = 0; dart.notNull(i) < dart.notNull(v.constraints.length); i =
dart.notNull(i) + 1) { |
| 429 let c = v.constraints[core.$get](i); | 429 let c = v.constraints[dartx.get](i); |
| 430 if (dart.notNull(!dart.equals(c, determining)) && dart.notNull(c.isSatis
fied())) | 430 if (dart.notNull(!dart.equals(c, determining)) && dart.notNull(c.isSatis
fied())) |
| 431 coll[core.$add](c); | 431 coll[dartx.add](c); |
| 432 } | 432 } |
| 433 } | 433 } |
| 434 } | 434 } |
| 435 dart.setSignature(Planner, { | 435 dart.setSignature(Planner, { |
| 436 methods: () => ({ | 436 methods: () => ({ |
| 437 incrementalAdd: [dart.void, [Constraint]], | 437 incrementalAdd: [dart.void, [Constraint]], |
| 438 incrementalRemove: [dart.void, [Constraint]], | 438 incrementalRemove: [dart.void, [Constraint]], |
| 439 newMark: [core.int, []], | 439 newMark: [core.int, []], |
| 440 makePlan: [Plan, [core.List$(Constraint)]], | 440 makePlan: [Plan, [core.List$(Constraint)]], |
| 441 extractPlanFromConstraints: [Plan, [core.List$(Constraint)]], | 441 extractPlanFromConstraints: [Plan, [core.List$(Constraint)]], |
| 442 addPropagate: [core.bool, [Constraint, core.int]], | 442 addPropagate: [core.bool, [Constraint, core.int]], |
| 443 removePropagateFrom: [core.List$(Constraint), [Variable]], | 443 removePropagateFrom: [core.List$(Constraint), [Variable]], |
| 444 addConstraintsConsumingTo: [dart.void, [Variable, core.List$(Constraint)]] | 444 addConstraintsConsumingTo: [dart.void, [Variable, core.List$(Constraint)]] |
| 445 }) | 445 }) |
| 446 }); | 446 }); |
| 447 class Plan extends core.Object { | 447 class Plan extends core.Object { |
| 448 Plan() { | 448 Plan() { |
| 449 this.list = dart.setType([], core.List$(Constraint)); | 449 this.list = dart.list([], Constraint); |
| 450 } | 450 } |
| 451 addConstraint(c) { | 451 addConstraint(c) { |
| 452 this.list[core.$add](c); | 452 this.list[dartx.add](c); |
| 453 } | 453 } |
| 454 size() { | 454 size() { |
| 455 return this.list[core.$length]; | 455 return this.list.length; |
| 456 } | 456 } |
| 457 execute() { | 457 execute() { |
| 458 for (let i = 0; dart.notNull(i) < dart.notNull(this.list[core.$length]); i
= dart.notNull(i) + 1) { | 458 for (let i = 0; dart.notNull(i) < dart.notNull(this.list.length); i = dart
.notNull(i) + 1) { |
| 459 this.list[core.$get](i).execute(); | 459 this.list[dartx.get](i).execute(); |
| 460 } | 460 } |
| 461 } | 461 } |
| 462 } | 462 } |
| 463 dart.setSignature(Plan, { | 463 dart.setSignature(Plan, { |
| 464 methods: () => ({ | 464 methods: () => ({ |
| 465 addConstraint: [dart.void, [Constraint]], | 465 addConstraint: [dart.void, [Constraint]], |
| 466 size: [core.int, []], | 466 size: [core.int, []], |
| 467 execute: [dart.void, []] | 467 execute: [dart.void, []] |
| 468 }) | 468 }) |
| 469 }); | 469 }); |
| 470 function chainTest(n) { | 470 function chainTest(n) { |
| 471 exports.planner = new Planner(); | 471 exports.planner = new Planner(); |
| 472 let prev = null, first = null, last = null; | 472 let prev = null, first = null, last = null; |
| 473 for (let i = 0; dart.notNull(i) <= dart.notNull(n); i = dart.notNull(i) + 1)
{ | 473 for (let i = 0; dart.notNull(i) <= dart.notNull(n); i = dart.notNull(i) + 1)
{ |
| 474 let v = new Variable("v", 0); | 474 let v = new Variable("v", 0); |
| 475 if (prev != null) | 475 if (prev != null) |
| 476 new EqualityConstraint(prev, v, REQUIRED); | 476 new EqualityConstraint(prev, v, REQUIRED); |
| 477 if (i == 0) | 477 if (i == 0) |
| 478 first = v; | 478 first = v; |
| 479 if (i == n) | 479 if (i == n) |
| 480 last = v; | 480 last = v; |
| 481 prev = v; | 481 prev = v; |
| 482 } | 482 } |
| 483 new StayConstraint(last, STRONG_DEFAULT); | 483 new StayConstraint(last, STRONG_DEFAULT); |
| 484 let edit = new EditConstraint(first, PREFERRED); | 484 let edit = new EditConstraint(first, PREFERRED); |
| 485 let plan = exports.planner.extractPlanFromConstraints(dart.setType([edit], c
ore.List$(Constraint))); | 485 let plan = exports.planner.extractPlanFromConstraints(dart.list([edit], Cons
traint)); |
| 486 for (let i = 0; dart.notNull(i) < 100; i = dart.notNull(i) + 1) { | 486 for (let i = 0; dart.notNull(i) < 100; i = dart.notNull(i) + 1) { |
| 487 first.value = i; | 487 first.value = i; |
| 488 plan.execute(); | 488 plan.execute(); |
| 489 if (last.value != i) { | 489 if (last.value != i) { |
| 490 core.print("Chain test failed:"); | 490 core.print("Chain test failed:"); |
| 491 core.print(`Expected last value to be ${i} but it was ${last.value}.`); | 491 core.print(`Expected last value to be ${i} but it was ${last.value}.`); |
| 492 } | 492 } |
| 493 } | 493 } |
| 494 } | 494 } |
| 495 dart.fn(chainTest, dart.void, [core.int]); | 495 dart.fn(chainTest, dart.void, [core.int]); |
| 496 function projectionTest(n) { | 496 function projectionTest(n) { |
| 497 exports.planner = new Planner(); | 497 exports.planner = new Planner(); |
| 498 let scale = new Variable("scale", 10); | 498 let scale = new Variable("scale", 10); |
| 499 let offset = new Variable("offset", 1000); | 499 let offset = new Variable("offset", 1000); |
| 500 let src = null, dst = null; | 500 let src = null, dst = null; |
| 501 let dests = dart.setType([], core.List$(Variable)); | 501 let dests = dart.list([], Variable); |
| 502 for (let i = 0; dart.notNull(i) < dart.notNull(n); i = dart.notNull(i) + 1)
{ | 502 for (let i = 0; dart.notNull(i) < dart.notNull(n); i = dart.notNull(i) + 1)
{ |
| 503 src = new Variable("src", i); | 503 src = new Variable("src", i); |
| 504 dst = new Variable("dst", i); | 504 dst = new Variable("dst", i); |
| 505 dests[core.$add](dst); | 505 dests[dartx.add](dst); |
| 506 new StayConstraint(src, NORMAL); | 506 new StayConstraint(src, NORMAL); |
| 507 new ScaleConstraint(src, scale, offset, dst, REQUIRED); | 507 new ScaleConstraint(src, scale, offset, dst, REQUIRED); |
| 508 } | 508 } |
| 509 change(src, 17); | 509 change(src, 17); |
| 510 if (dst.value != 1170) | 510 if (dst.value != 1170) |
| 511 core.print("Projection 1 failed"); | 511 core.print("Projection 1 failed"); |
| 512 change(dst, 1050); | 512 change(dst, 1050); |
| 513 if (src.value != 5) | 513 if (src.value != 5) |
| 514 core.print("Projection 2 failed"); | 514 core.print("Projection 2 failed"); |
| 515 change(scale, 5); | 515 change(scale, 5); |
| 516 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { | 516 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { |
| 517 if (dests[core.$get](i).value != dart.notNull(i) * 5 + 1000) | 517 if (dests[dartx.get](i).value != dart.notNull(i) * 5 + 1000) |
| 518 core.print("Projection 3 failed"); | 518 core.print("Projection 3 failed"); |
| 519 } | 519 } |
| 520 change(offset, 2000); | 520 change(offset, 2000); |
| 521 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { | 521 for (let i = 0; dart.notNull(i) < dart.notNull(n) - 1; i = dart.notNull(i) +
1) { |
| 522 if (dests[core.$get](i).value != dart.notNull(i) * 5 + 2000) | 522 if (dests[dartx.get](i).value != dart.notNull(i) * 5 + 2000) |
| 523 core.print("Projection 4 failed"); | 523 core.print("Projection 4 failed"); |
| 524 } | 524 } |
| 525 } | 525 } |
| 526 dart.fn(projectionTest, dart.void, [core.int]); | 526 dart.fn(projectionTest, dart.void, [core.int]); |
| 527 function change(v, newValue) { | 527 function change(v, newValue) { |
| 528 let edit = new EditConstraint(v, PREFERRED); | 528 let edit = new EditConstraint(v, PREFERRED); |
| 529 let plan = exports.planner.extractPlanFromConstraints(dart.setType([edit], c
ore.List$(EditConstraint))); | 529 let plan = exports.planner.extractPlanFromConstraints(dart.list([edit], Edit
Constraint)); |
| 530 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) { | 530 for (let i = 0; dart.notNull(i) < 10; i = dart.notNull(i) + 1) { |
| 531 v.value = newValue; | 531 v.value = newValue; |
| 532 plan.execute(); | 532 plan.execute(); |
| 533 } | 533 } |
| 534 edit.destroyConstraint(); | 534 edit.destroyConstraint(); |
| 535 } | 535 } |
| 536 dart.fn(change, dart.void, [Variable, core.int]); | 536 dart.fn(change, dart.void, [Variable, core.int]); |
| 537 exports.planner = null; | 537 exports.planner = null; |
| 538 // Exports: | 538 // Exports: |
| 539 exports.main = main; | 539 exports.main = main; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 556 exports.BinaryConstraint = BinaryConstraint; | 556 exports.BinaryConstraint = BinaryConstraint; |
| 557 exports.ScaleConstraint = ScaleConstraint; | 557 exports.ScaleConstraint = ScaleConstraint; |
| 558 exports.EqualityConstraint = EqualityConstraint; | 558 exports.EqualityConstraint = EqualityConstraint; |
| 559 exports.Variable = Variable; | 559 exports.Variable = Variable; |
| 560 exports.Planner = Planner; | 560 exports.Planner = Planner; |
| 561 exports.Plan = Plan; | 561 exports.Plan = Plan; |
| 562 exports.chainTest = chainTest; | 562 exports.chainTest = chainTest; |
| 563 exports.projectionTest = projectionTest; | 563 exports.projectionTest = projectionTest; |
| 564 exports.change = change; | 564 exports.change = change; |
| 565 })(DeltaBlue, BenchmarkBase, core); | 565 })(DeltaBlue, BenchmarkBase, core); |
| OLD | NEW |