diff --git a/perf/micro/current-thread-scheduler/operators/switchmapto-resultselector.js b/perf/micro/current-thread-scheduler/operators/switchmapto-resultselector.js new file mode 100644 index 0000000000..9a117ce204 --- /dev/null +++ b/perf/micro/current-thread-scheduler/operators/switchmapto-resultselector.js @@ -0,0 +1,21 @@ +var RxOld = require('rx'); +var RxNew = require('../../../../index'); + +module.exports = function (suite) { + var resultSelector = function (x, y, ix, iy) { return x + y + ix + iy; }; + var oldSwitchMapToWithCurrentThreadScheduler = RxOld.Observable.range(0, 25, RxOld.Scheduler.currentThread) + .flatMapLatest(RxOld.Observable.range(0, 10, RxOld.Scheduler.currentThread), resultSelector); + var newSwitchMapToWithCurrentThreadScheduler = RxNew.Observable.range(0, 25, RxNew.Scheduler.queue) + .switchMapTo(RxNew.Observable.range(0, 10, RxNew.Scheduler.queue), resultSelector); + + function _next(x) { } + function _error(e) { } + function _complete() { } + return suite + .add('old switchMapTo with resultSelector and current thread scheduler', function () { + oldSwitchMapToWithCurrentThreadScheduler.subscribe(_next, _error, _complete); + }) + .add('new switchMapTo with resultSelector and current thread scheduler', function () { + newSwitchMapToWithCurrentThreadScheduler.subscribe(_next, _error, _complete); + }); +}; diff --git a/perf/micro/current-thread-scheduler/operators/switchmapto.js b/perf/micro/current-thread-scheduler/operators/switchmapto.js new file mode 100644 index 0000000000..1684c3abf8 --- /dev/null +++ b/perf/micro/current-thread-scheduler/operators/switchmapto.js @@ -0,0 +1,20 @@ +var RxOld = require('rx'); +var RxNew = require('../../../../index'); + +module.exports = function (suite) { + var oldSwitchMapToWithCurrentThreadScheduler = RxOld.Observable.range(0, 25, RxOld.Scheduler.currentThread) + .flatMapLatest(RxOld.Observable.range(0, 10, RxOld.Scheduler.currentThread)); + var newSwitchMapToWithCurrentThreadScheduler = RxNew.Observable.range(0, 25, RxNew.Scheduler.queue) + .switchMapTo(RxNew.Observable.range(0, 10, RxNew.Scheduler.queue)); + + function _next(x) { } + function _error(e) { } + function _complete() { } + return suite + .add('old switchMapTo with current thread scheduler', function () { + oldSwitchMapToWithCurrentThreadScheduler.subscribe(_next, _error, _complete); + }) + .add('new switchMapTo with current thread scheduler', function () { + newSwitchMapToWithCurrentThreadScheduler.subscribe(_next, _error, _complete); + }); +}; diff --git a/perf/micro/immediate-scheduler/operators/switchmapto-resultselector.js b/perf/micro/immediate-scheduler/operators/switchmapto-resultselector.js new file mode 100644 index 0000000000..27b399559e --- /dev/null +++ b/perf/micro/immediate-scheduler/operators/switchmapto-resultselector.js @@ -0,0 +1,21 @@ +var RxOld = require('rx'); +var RxNew = require('../../../../index'); + +module.exports = function (suite) { + var resultSelector = function (x, y, ix, iy) { return x + y + ix + iy; }; + var oldSwitchMapToWithImmediateScheduler = RxOld.Observable.range(0, 25, RxOld.Scheduler.immediate) + .flatMapLatest(RxOld.Observable.range(0, 10, RxOld.Scheduler.immediate), resultSelector); + var newSwitchMapToWithImmediateScheduler = RxNew.Observable.range(0, 25) + .switchMapTo(RxNew.Observable.range(0, 10), resultSelector); + + function _next(x) { } + function _error(e) { } + function _complete() { } + return suite + .add('old switchMapTo with resultSelector and immediate scheduler', function () { + oldSwitchMapToWithImmediateScheduler.subscribe(_next, _error, _complete); + }) + .add('new switchMapTo with resultSelector and immediate scheduler', function () { + newSwitchMapToWithImmediateScheduler.subscribe(_next, _error, _complete); + }); +}; diff --git a/perf/micro/immediate-scheduler/operators/switchmapto.js b/perf/micro/immediate-scheduler/operators/switchmapto.js new file mode 100644 index 0000000000..a4f0b6c3bc --- /dev/null +++ b/perf/micro/immediate-scheduler/operators/switchmapto.js @@ -0,0 +1,20 @@ +var RxOld = require('rx'); +var RxNew = require('../../../../index'); + +module.exports = function (suite) { + var oldSwitchMapToWithImmediateScheduler = RxOld.Observable.range(0, 25, RxOld.Scheduler.immediate) + .flatMapLatest(RxOld.Observable.range(0, 10, RxOld.Scheduler.immediate)); + var newSwitchMapToWithImmediateScheduler = RxNew.Observable.range(0, 25) + .switchMapTo(RxNew.Observable.range(0, 10)); + + function _next(x) { } + function _error(e) { } + function _complete() { } + return suite + .add('old switchMapTo with immediate scheduler', function () { + oldSwitchMapToWithImmediateScheduler.subscribe(_next, _error, _complete); + }) + .add('new switchMapTo with immediate scheduler', function () { + newSwitchMapToWithImmediateScheduler.subscribe(_next, _error, _complete); + }); +};