コード例 #1
0
ファイル: builtins.js プロジェクト: sethbridges/streamlinejs
			function* _qsort(_, beg, end) {
				if (beg >= end) return;

				if (end == beg + 1) {
					if ((yield galaxy.invoke(null, compare, [_, array[beg], array[end]], 0)) > 0) {
						var tmp = array[beg];
						array[beg] = array[end];
						array[end] = tmp;
					}
					return;
				}

				var mid = Math.floor((beg + end) / 2);
				var o = array[mid];
				var nbeg = beg;
				var nend = end;

				while (nbeg <= nend) {
					while (nbeg < end && (yield galaxy.invoke(null, compare, [_, array[nbeg], o], 0)) < 0) nbeg++;
					while (beg < nend && (yield galaxy.invoke(null, compare, [_, o, array[nend]], 0)) < 0) nend--;

					if (nbeg <= nend) {
						var tmp = array[nbeg];
						array[nbeg] = array[nend];
						array[nend] = tmp;
						nbeg++;
						nend--;
					}
				}

				if (nbeg < end) (yield _qsort(_, nbeg, end));
				if (beg < nend) (yield _qsort(_, beg, nend));
			}
コード例 #2
0
ファイル: builtins.js プロジェクト: sethbridges/streamlinejs
		value: (function(unstarred__) {  function F(_, options, fn, thisObj) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, options, fn, thisObj) {
			if (typeof options === "function") thisObj = fn, fn = options, options = 1;
			var par = _parallel(options);
			thisObj = thisObj !== undefined ? thisObj : this;
			var len = this.length;
			if (par === 1 || len <= 1) {
				for (var i = 0; i < len; i++) {
					if (has.call(this, i) && (yield galaxy.invoke(fn, "call", [thisObj, _, this[i]], 1))) return true;
				}
			} else {
				var fun = funnel(par);
				var futures = this.map(function(elt) {
					return fun(null, (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
						return (yield galaxy.invoke(fn, "call", [thisObj, _, elt], 1));
					}, 0)));
				});
				for (var i = 0; i < len; i++) {
					if (has.call(this, i) && (yield galaxy.invoke(futures, i, [_], 0))) {
						fun.close();
						return true;
					}
				}
			}
			return false;
		}, 0))
コード例 #3
0
ファイル: stack-test.js プロジェクト: AlaRuba/RoboBrainViz
function* B(_, code){
	if (code == 7) 
		(yield galaxy.invoke(null, fail, [_, code], 0));
	(yield C(_, code));
	(yield galaxy.invoke(null, nextTick, [_], 0));
	(yield C(_, code));
	(yield D(_, code));
}
コード例 #4
0
ファイル: stack-test.js プロジェクト: ivanpenchev/noject
    function

*
    F(_, code)
    {
        var f1 = A_(null, code);
        var f2 = A_(null, code + 1);
        yield ( (yield fstreamline__.invoke(null, f1, [_], 0)) + " & " + (yield fstreamline__.invoke(null, f2, [_], 0)));
    }
コード例 #5
0
ファイル: stack-test.js プロジェクト: ivanpenchev/noject
    function

*
    B(_, code)
    {
        if (code == 7)
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
        (yield C(_, code));
        (yield fstreamline__.invoke(null, nextTick, [_], 0));
        (yield C(_, code));
        (yield D(_, code));
    }
コード例 #6
0
ファイル: stack-test.js プロジェクト: AlaRuba/RoboBrainViz
function* E(_, code){
	try {
		(yield galaxy.invoke(null, fail, [_, code], 0));
	} 
	catch (ex) {
		if (code % 3 == 1) 
			(yield galaxy.invoke(null, fail, [_, code], 0));
		else if (code % 3 == 2) 
			(yield A(_, code));
		else 
			return "OK " + code;
	}
}
コード例 #7
0
ファイル: builtins.js プロジェクト: sethbridges/streamlinejs
		value: (function(unstarred__) {  function F(_, options, fn, thisObj) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, options, fn, thisObj) {
			if (typeof options === "function") thisObj = fn, fn = options, options = 1;
			var par = _parallel(options);
			thisObj = thisObj !== undefined ? thisObj : this;
			var len = this.length;
			if (par === 1 || len <= 1) {
				for (var i = 0; i < len; i++) {
					if (has.call(this, i)) (yield galaxy.invoke(fn, "call", [thisObj, _, this[i], i], 1));
				}
			} else {
				(yield galaxy.invoke(this, "map_", [_, par, fn, thisObj], 0));
			}
			return this;
		}, 0))
コード例 #8
0
asyncTest("reduceRight", 3, (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
	var result = (yield galaxy.invoke(flows, "reduceRight", [_, [1, 2, 3, 4], (function(unstarred__) {  function F(_, v, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, v, val) {
		return v * (yield delay(_, val));
	}, 0)), 1], 0));
	strictEqual(result, 24);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "reduceRight_", [_, (function(unstarred__) {  function F(_, v, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, v, val) {
		return v * (yield delay(_, val));
	}, 0)), 1], 0));
	strictEqual(result, 24);
	var result = (yield galaxy.invoke(sparse(), "reduceRight_", [_, (function(unstarred__) {  function F(_, v, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, v, val) {
		return v + '/' + (yield delay(_, val));
	}, 0)), ''], 0));
	strictEqual(result, '/99/44/33');
	start();
}, 0)));
コード例 #9
0
ファイル: flows-test.js プロジェクト: benbria/streamlinejs
asyncTest("reduceRight", 3, galaxy.unstar(function*(_) {
	var result = (yield galaxy.invoke(flows, "reduceRight", [_, [1, 2, 3, 4], galaxy.unstar(function*(_, v, val) {
		return v * (yield delay(_, val));
	}, 0), 1], 0));
	strictEqual(result, 24);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "reduceRight_", [_, galaxy.unstar(function*(_, v, val) {
		return v * (yield delay(_, val));
	}, 0), 1], 0));
	strictEqual(result, 24);
	var result = (yield galaxy.invoke(sparse(), "reduceRight_", [_, galaxy.unstar(function*(_, v, val) {
		return v + '/' + (yield delay(_, val));
	}, 0), ''], 0));
	strictEqual(result, '/99/44/33');
	start();
}, 0));
コード例 #10
0
	exports.setImmediate = galaxy.unstar(function*(_, fn, thisObj) {
		(yield galaxy.invoke(null, (function(cb) {
			setImmediate(function() {
				fn.bind(thisObj)(  cb);
			});
		}), [_], 0));
	}, 0);
コード例 #11
0
ファイル: stack-test.js プロジェクト: ivanpenchev/noject
    function

*
    D(_, code)
    {
        if (code == 9)
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
    }
コード例 #12
0
ファイル: stack-test.js プロジェクト: ivanpenchev/noject
    function

*
    E(_, code)
    {
        try {
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
        }
        catch (ex) {
            if (code % 3 == 1)
                (yield fstreamline__.invoke(null, fail, [_, code], 0));
            else if (code % 3 == 2)
                (yield A(_, code));
            else
                yield ( "OK " + code);
        }
    }
コード例 #13
0
ファイル: builtins.js プロジェクト: sethbridges/streamlinejs
		value: (function(unstarred__) {  function F(_, fn, v, thisObj) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, fn, v, thisObj) {
			thisObj = thisObj !== undefined ? thisObj : this;
			var len = this.length;
			for (var i = len - 1; i >= 0; i--) {
				if (has.call(this, i)) v = (yield galaxy.invoke(fn, "call", [thisObj, _, v, this[i], i, this], 1));
			}
			return v;
		}, 0))
コード例 #14
0
ファイル: flows-test.js プロジェクト: benbria/streamlinejs
asyncTest("filter", 9, galaxy.unstar(function*(_) {
	var result = (yield galaxy.invoke(flows, "filter", [_, [1, 2, 3, 4], galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0)], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0)], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, 2, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0)], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, {
		parallel: 2
	}, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0)], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, -1, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0)], 0));
	deepEqual(result, [1, 3]);
	result = (yield galaxy.invoke(sparse(), "filter_", [_, galaxy.unstar(function*(_, val, i) {
		return (yield delay(_, val)) % 2;
	}, 0)], 0));
	strictEqual(result.length, 2);
	deepEqual(result, [33, 99]);
	result = (yield galaxy.invoke(sparse(), "filter_", [_, -1, galaxy.unstar(function*(_, val, i) {
		return (yield delay(_, val)) % 2;
	}, 0)], 0));
	strictEqual(result.length, 2);
	deepEqual(result, [33, 99]);
	start();
}, 0));
コード例 #15
0
asyncTest("some false", 7, (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
	var result = (yield galaxy.invoke(flows, "some", [_, [1, 2, 3, 4], (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0))], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0))], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, 2, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0))], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, {
		parallel: 2
	}, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0))], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, -1, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0))], 0));
	strictEqual(result, false);
	result = (yield galaxy.invoke(sparse(), "some_", [_, (function(unstarred__) {  function F(_, val, i) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val, i) {
		return !((yield delay(_, val)) > 20);
	}, 0))], 0));
	strictEqual(result, false);
	result = (yield galaxy.invoke(sparse(), "some_", [_, -1, (function(unstarred__) {  function F(_, val, i) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val, i) {
		return !((yield delay(_, val)) > 20);
	}, 0))], 0));
	strictEqual(result, false);
	start();
}, 0)));
コード例 #16
0
asyncTest("filter", 9, (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
	var result = (yield galaxy.invoke(flows, "filter", [_, [1, 2, 3, 4], (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0))], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0))], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, 2, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0))], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, {
		parallel: 2
	}, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0))], 0));
	deepEqual(result, [1, 3]);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "filter_", [_, -1, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) % 2;
	}, 0))], 0));
	deepEqual(result, [1, 3]);
	result = (yield galaxy.invoke(sparse(), "filter_", [_, (function(unstarred__) {  function F(_, val, i) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val, i) {
		return (yield delay(_, val)) % 2;
	}, 0))], 0));
	strictEqual(result.length, 2);
	deepEqual(result, [33, 99]);
	result = (yield galaxy.invoke(sparse(), "filter_", [_, -1, (function(unstarred__) {  function F(_, val, i) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val, i) {
		return (yield delay(_, val)) % 2;
	}, 0))], 0));
	strictEqual(result.length, 2);
	deepEqual(result, [33, 99]);
	start();
}, 0)));
コード例 #17
0
ファイル: flows-test.js プロジェクト: benbria/streamlinejs
asyncTest("some false", 7, galaxy.unstar(function*(_) {
	var result = (yield galaxy.invoke(flows, "some", [_, [1, 2, 3, 4], galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0)], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0)], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, 2, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0)], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, {
		parallel: 2
	}, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0)], 0));
	strictEqual(result, false);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "some_", [_, -1, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 0;
	}, 0)], 0));
	strictEqual(result, false);
	result = (yield galaxy.invoke(sparse(), "some_", [_, galaxy.unstar(function*(_, val, i) {
		return !((yield delay(_, val)) > 20);
	}, 0)], 0));
	strictEqual(result, false);
	result = (yield galaxy.invoke(sparse(), "some_", [_, -1, galaxy.unstar(function*(_, val, i) {
		return !((yield delay(_, val)) > 20);
	}, 0)], 0));
	strictEqual(result, false);
	start();
}, 0));
コード例 #18
0
ファイル: flows-test.js プロジェクト: benbria/streamlinejs
asyncTest("every true", 7, galaxy.unstar(function*(_) {
	var result = (yield galaxy.invoke(flows, "every", [_, [1, 2, 3, 4], galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 5;
	}, 0)], 0));
	strictEqual(result, true);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "every_", [_, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 5;
	}, 0)], 0));
	strictEqual(result, true);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "every_", [_, 2, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 5;
	}, 0)], 0));
	strictEqual(result, true);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "every_", [_, {
		parallel: 2
	}, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 5;
	}, 0)], 0));
	strictEqual(result, true);
	var result = (yield galaxy.invoke([1, 2, 3, 4], "every_", [_, -1, galaxy.unstar(function*(_, val) {
		return (yield delay(_, val)) < 5;
	}, 0)], 0));
	strictEqual(result, true);
	result = (yield galaxy.invoke(sparse(), "every_", [_, galaxy.unstar(function*(_, val, i) {
		return (yield delay(_, val)) > 30;
	}, 0)], 0));
	strictEqual(result, true);
	result = (yield galaxy.invoke(sparse(), "every_", [_, -1, galaxy.unstar(function*(_, val, i) {
		return (yield delay(_, val)) > 30;
	}, 0)], 0));
	strictEqual(result, true);
	start();
}, 0));
コード例 #19
0
ファイル: stack-test.js プロジェクト: ivanpenchev/noject
    function

*
    H(_, code)
    {
        if (code % 2 == 0)
            (yield fstreamline__.invoke(null, nextTick, [_], 0));
        yield ( (yield G(_, code)));
    }
コード例 #20
0
ファイル: stack-test.js プロジェクト: ivanpenchev/noject
    function

*
    G(_, code)
    {
        if (code == 5)
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
        yield ( "" + code);
    }
コード例 #21
0
asyncTest("sort", 4, (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
	var array = [1, 2, 3, 4];
	(yield galaxy.invoke(flows, "sort", [_, array, (function(unstarred__) {  function F(_, a, b) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0))], 0));
	deepEqual(array, [1, 2, 3, 4], "In order array sort ok");
	(yield galaxy.invoke(array, "sort_", [_, (function(unstarred__) {  function F(_, a, b) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0))], 0));
	deepEqual(array, [1, 2, 3, 4], "In order array sort ok");
	array = [4, 3, 2, 1];
	(yield galaxy.invoke(array, "sort_", [_, (function(unstarred__) {  function F(_, a, b) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0))], 0));
	deepEqual(array, [1, 2, 3, 4], "Reverse array sort ok");
	array = [3, 1, 2, 4];
	(yield galaxy.invoke(array, "sort_", [_, (function(unstarred__) {  function F(_, a, b) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0))], 0));
	deepEqual(array, [1, 2, 3, 4], "Random array sort ok");
	start();
}, 0)));
コード例 #22
0
ファイル: flows-test.js プロジェクト: benbria/streamlinejs
asyncTest("sort", 4, galaxy.unstar(function*(_) {
	var array = [1, 2, 3, 4];
	(yield galaxy.invoke(flows, "sort", [_, array, galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0)], 0));
	deepEqual(array, [1, 2, 3, 4], "In order array sort ok");
	(yield galaxy.invoke(array, "sort_", [_, galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0)], 0));
	deepEqual(array, [1, 2, 3, 4], "In order array sort ok");
	array = [4, 3, 2, 1];
	(yield galaxy.invoke(array, "sort_", [_, galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0)], 0));
	deepEqual(array, [1, 2, 3, 4], "Reverse array sort ok");
	array = [3, 1, 2, 4];
	(yield galaxy.invoke(array, "sort_", [_, galaxy.unstar(function*(_, a, b) {
		return (yield delay(_, a - b));
	}, 0)], 0));
	deepEqual(array, [1, 2, 3, 4], "Random array sort ok");
	start();
}, 0));
コード例 #23
0
ファイル: stack-test.js プロジェクト: AlaRuba/RoboBrainViz
function* A(_, code){
	if (code == 1) 
		(yield galaxy.invoke(null, fail, [_, code], 0));
	if (code == 2) 
		(yield galaxy.invoke(null, fail, [_, code], 0));
	(yield galaxy.invoke(null, nextTick, [_], 0));
	if (code == 3) 
		(yield galaxy.invoke(null, fail, [_, code], 0));
	for (var i = 0; i < 6; i++) {
		if (code == i) 
			(yield galaxy.invoke(null, fail, [_, code], 0));
		(yield galaxy.invoke(null, nextTick, [_], 0));
	}
	if (code == 6) 
		(yield galaxy.invoke(null, fail, [_, code], 0));
	(yield galaxy.invoke(null, nextTick, [_], 0));
	(yield B(_, code));
	(yield galaxy.invoke(null, nextTick, [_], 0));
	return "END";
}
コード例 #24
0
ファイル: stack-test.js プロジェクト: AlaRuba/RoboBrainViz
function* T(_, fn, code, failFn){
	fail = failFn;
	var s = "{";
	try {
		return (yield galaxy.invoke(null, fn, [_, code], 0));
	} 
	catch (ex) {
		var s = ex.stack;
		s = s.split('\n').filter(function(l) { return l.indexOf('<<<') < 0; }).map(function(l){
			var m = /^\s+at (\w+).*:(\d+)\:[^:]+$/.exec(l);
			if (m) 
				return m[1] + ":" + m[2];
			return l;
		}).join('/');
		var end = s.indexOf('/T:');
		return end < 0 ? s + "-- end frame missing" : s.substring(0, end);
	}
}
コード例 #25
0
ファイル: flows-test.js プロジェクト: benbria/streamlinejs
asyncTest("each", 7, galaxy.unstar(function*(_) {
	var result = 1;
	(yield galaxy.invoke(flows, "each", [_, [1, 2, 3, 4], galaxy.unstar(function*(_, val) {
		result = result * (yield delay(_, val));
	}, 0)], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0)], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, 2, galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0)], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, {
		parallel: 2
	}, galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0)], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, -1, galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0)], 0));
	strictEqual(result, 24);
	result = '';
	(yield galaxy.invoke(sparse(), "forEach_", [_, galaxy.unstar(function*(_, val, i) {
		var v = (yield delay(_, val));
		result = result + '/' + i + ':' + v;
	}, 0)], 0));
	strictEqual(result, '/3:33/4:44/9:99');
	result = '';
	(yield galaxy.invoke(sparse(), "forEach_", [_, -1, galaxy.unstar(function*(_, val, i) {
		var v = (yield delay(_, val));
		result = result + '/' + i + ':' + v;
	}, 0)], 0));
	strictEqual(result, '/3:33/4:44/9:99');
	start();
}, 0));
コード例 #26
0
ファイル: stack-test.js プロジェクト: ivanpenchev/noject
    function

*
    A(_, code)
    {
        if (code == 1)
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
        if (code == 2)
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
        (yield fstreamline__.invoke(null, nextTick, [_], 0));
        if (code == 3)
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
        for (var i = 0; i < 6; i++) {
            if (code == i)
                (yield fstreamline__.invoke(null, fail, [_, code], 0));
            (yield fstreamline__.invoke(null, nextTick, [_], 0));
        }
        if (code == 6)
            (yield fstreamline__.invoke(null, fail, [_, code], 0));
        (yield fstreamline__.invoke(null, nextTick, [_], 0));
        (yield B(_, code));
        (yield fstreamline__.invoke(null, nextTick, [_], 0));
        yield ( "END");
    }
コード例 #27
0
asyncTest("each", 7, (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
	var result = 1;
	(yield galaxy.invoke(flows, "each", [_, [1, 2, 3, 4], (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		result = result * (yield delay(_, val));
	}, 0))], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0))], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, 2, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0))], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, {
		parallel: 2
	}, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0))], 0));
	strictEqual(result, 24);
	result = 1;
	(yield galaxy.invoke([1, 2, 3, 4], "forEach_", [_, -1, (function(unstarred__) {  function F(_, val) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val) {
		var v = (yield delay(_, val));
		result = result * v;
	}, 0))], 0));
	strictEqual(result, 24);
	result = '';
	(yield galaxy.invoke(sparse(), "forEach_", [_, (function(unstarred__) {  function F(_, val, i) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val, i) {
		var v = (yield delay(_, val));
		result = result + '/' + i + ':' + v;
	}, 0))], 0));
	strictEqual(result, '/3:33/4:44/9:99');
	result = '';
	(yield galaxy.invoke(sparse(), "forEach_", [_, -1, (function(unstarred__) {  function F(_, val, i) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_, val, i) {
		var v = (yield delay(_, val));
		result = result + '/' + i + ':' + v;
	}, 0))], 0));
	strictEqual(result, '/3:33/4:44/9:99');
	start();
}, 0)));
コード例 #28
0
ファイル: flows.js プロジェクト: ajimenezh/WebMusicPlayer
			this.collect = galaxy.unstar(function*(_, count, trim) {
				return (yield galaxy.invoke((function(callback) {
					if (typeof(callback) != "function") throw new Error("invalid call to collect: no callback");
					var results = trim ? [] : new Array(fns.length);
					count = count < 0 ? fns.length : Math.min(count, fns.length);
					if (count == 0) return callback(null, results);
					var collected = 0;
					for (var i = 0; i < fns.length; i++) {
						(function(i) {
							funnel(  function(err, result) {
								if (err) return callback(err);
								if (trim) results.push(result);
								else results[i] = result;
								if (++collected == count) return callback(null, results);
							}, fns[i]);
						})(i);
					}
				}), "call", [this, _], 1));
			}, 0);
コード例 #29
0
ファイル: flows-test.js プロジェクト: benbria/streamlinejs
asyncTest("collectAll with limit", 1, galaxy.unstar(function*(_) {
	var total = 0;
	var peak = 0;
	var count = 0;

	function doIt(i) {
		return galaxy.unstar(function*(_) {
			count++;
			peak = Math.max(count, peak);
			total = (yield delay(_, i)) + total;
			count--;
			return 2 * i;
		}, 0);
	}

	var results = (yield galaxy.invoke(flows.spray([doIt(1), doIt(2), doIt(3)], 2), "collectAll", [_], 0));
	deepEqual([total, peak, count, results], [6, 2, 0, [2, 4, 6]]);
	start();
}, 0));
コード例 #30
0
asyncTest("collectAll with limit", 1, (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
	var total = 0;
	var peak = 0;
	var count = 0;

	function doIt(i) {
		return (function(unstarred__) {  function F(_) {   return unstarred__.apply(this, arguments);  };  F.__starred__0 = unstarred__.__starred__0;  F.__starred__0.__unstarred__0 = F;  return F;})(galaxy.unstar(function*(_) {
			count++;
			peak = Math.max(count, peak);
			total = (yield delay(_, i)) + total;
			count--;
			return 2 * i;
		}, 0));
	}

	var results = (yield galaxy.invoke(flows.spray([doIt(1), doIt(2), doIt(3)], 2), "collectAll", [_], 0));
	deepEqual([total, peak, count, results], [6, 2, 0, [2, 4, 6]]);
	start();
}, 0)));