KingNET.WebUI/Scripts/linqjs/test/functional.js

(完整代码) 1KB

/// <reference path="testrunner.htm"/>

module("Functional");

test("Let", function ()
{
    var sum = Enumerable.Range(1, 10)
        .Let(function (e)
        {
            return e.Zip(e, function (a, b) { return { a: a, b: b} });
        })
        .Select("$.a + $.b")
        .Sum();
    equal(sum, 110);
});

test("Share", function ()
{
    var share = Enumerable.Range(1, 10).Share();
    var ar1 = share.Take(4).ToArray();
    var ar2 = share.ToArray();
    var ar3 = share.ToArray();
    deepEqual(ar1, [1, 2, 3, 4]);
    deepEqual(ar2, [5, 6, 7, 8, 9, 10]);
    deepEqual(ar3, []);
});

test("MemoizeAll", function ()
{
    var count = 0;
    var mem = Enumerable.Range(1, 5)
        .Select(function (x) { count++; return x; })
        .MemoizeAll();
    var ar1 = mem.ToArray();
    var ar2 = mem.ToArray();
    deepEqual(ar1, [1, 2, 3, 4, 5]);
    deepEqual(ar2, [1, 2, 3, 4, 5]);
    equal(5, count);

    mem = Enumerable.From([1, 2, undefined, 3, 4])
        .MemoizeAll();

    ar1 = mem.ToArray();
    ar2 = mem.ToArray();
    deepEqual(ar1, [1, 2, undefined, 3, 4]);
    deepEqual(ar2, [1, 2, undefined, 3, 4]);
});

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。