forked from DefinitelyTyped/DefinitelyTyped
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlinq-tests.ts
39 lines (36 loc) · 2.06 KB
/
linq-tests.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/// <reference path='../jasmine/jasmine-1.2.d.ts'/>
/// <reference path='linq-2.2.d.ts'/>
// <reference path="c:/linq.js" /> tests were run from VisualStudio + Resharper7
describe("Linq.js tests", function () {
it("Projection and Filtering Methods", function () {
expect(Enumerable.From([1,2,3,4]).ToString(",")).toBe("1,2,3,4");
expect(Enumerable.Range(1, 4).Where((item: number) => item > 2).ToString(",")).toBe("3,4");
expect(Enumerable.Range(1, 4).Where("(item) => item > 2").ToString(",")).toBe("3,4");
expect(Enumerable.Range(1, 4).Where("$>2").ToString(",")).toBe("3,4");
expect(Enumerable.Range(1, 4).Select((item: number,index:number) => item+index).ToString(",")).toBe("1,3,5,7");
expect(Enumerable.Range(1, 4).Zip(Enumerable.Range(1, 10), (a: number,b:number) => a-b).ToString(",")).toBe("0,0,0,0");
});
it("Join Methods", function () {
expect(Enumerable.Range(1, 4).Join(Enumerable.From(["a", "aaa"]), (l) => l, (r: string) => r.length, (l, r) =>l + ":" + r).ToString(",")).toBe("1:a,3:aaa");
});
it("Set Methods", function () {
expect(Enumerable.Range(2, 4, 2).All((item: number) => item % 2 == 0)).toBe(true);
expect(Enumerable.Range(1, 4).Intersect(Enumerable.Range(3, 4)).ToString(",")).toBe("3,4");
});
it("Ordering Methods", function () {
expect(Enumerable.From(
[
{ name: "marcin", age:15},
{ name: "albert", age:51},
{ name: "marcin", age:30},
]).OrderBy((p) => p.name).ThenByDescending((p) => p.age).Select((p) => p.name+p.age).ToString(",")).toBe("albert51,marcin30,marcin15");
});
it("Grouping Methods", function () {
expect(Enumerable.From(["a","aa","aaa","a","a","aaa"])
.GroupBy((item:string) => item.length)
.Select((g: linq.Grouping) => { return { key: g.Key(), count: g.Count() }; })
.OrderBy(g => g.key)
.Select(g => g.key+":"+g.count)
.ToString(",")).toBe("1:3,2:1,3:2");
});
});