deno.land / x / linq@4.0.2 / test / enumerable.js

نووسراو ببینە
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
import { test, testModule, deepEqual, equal, notEqual, strictNotEqual } from './testutils.js'import Enumerable from '../linq.js'
testModule("Enumerable");
test("choice", function () { let actual = Enumerable.choice(1, 10, 31, 42).take(10).toArray(); notEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10], "random test. if failed retry"); equal(actual.length, 10);
actual = Enumerable.choice([1, 10, 31, 42]).take(10).toArray(); notEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10], "random test. if failed retry"); equal(actual.length, 10);
var seq = Enumerable.make(1).concat([10]).concat([31]).concat([42]);
actual = Enumerable.choice(seq).take(10).toArray(); notEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10], "random test. if failed retry"); equal(actual.length, 10);});
test("cycle", function () { let actual = Enumerable.cycle(1, 10, 31, 42).take(10).toArray(); deepEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10]); actual = Enumerable.cycle([1, 2, 3, 4, 5]).take(10).toArray(); deepEqual(actual, [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]);
var seq = Enumerable.make(1).concat([10]).concat([31]).concat([42]); actual = Enumerable.cycle(seq).take(10).toArray(); deepEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10]);
actual = Enumerable.cycle(Enumerable.range(1, 5)).take(10).toArray(); deepEqual(actual, [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]);
deepEqual(Enumerable.cycle(1, 2, 3).take(5).toArray(), [1, 2, 3, 1, 2]);});
test("empty", function () { let actual = Enumerable.empty().toArray(); deepEqual(actual, []);});
test("from", function () { let actual = Enumerable.from("temp").toArray(); deepEqual(actual, ["t", "e", "m", "p"]);
actual = Enumerable.from(3).toArray(); deepEqual(actual, [3]);
actual = Enumerable.from([1, 2, 3, 4, 5]).toArray(); deepEqual(actual, [1, 2, 3, 4, 5]);
actual = Enumerable.from({ foo: "bar", func: function () { } }).toArray(); deepEqual(actual, [{ key: "foo", value: "bar" }]);});
test("make", function () { let actual = Enumerable.make("hoge").toArray(); deepEqual(actual, ["hoge"]);});
test("matches", function () { let actual = Enumerable.matches("xbcyBCzbc", /(.)bc/i).select("$.index+$[1]").toArray(); deepEqual(actual, ["0x", "3y", "6z"]); actual = Enumerable.matches("xbcyBCzbc", "(.)bc").select("$.index+$[1]").toArray();; deepEqual(actual, ["0x", "6z"]); actual = Enumerable.matches("xbcyBCzbc", "(.)bc", "i").select("$.index+$[1]").toArray();; deepEqual(actual, ["0x", "3y", "6z"]);});
test("range", function () { let actual = Enumerable.range(1, 10).toArray(); deepEqual(actual, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]); actual = Enumerable.range(1, 5, 3).toArray(); deepEqual(actual, [1, 4, 7, 10, 13]);
deepEqual(Enumerable.range(3, 4).toArray(), [3, 4, 5, 6]); deepEqual(Enumerable.range(-2, 4).toArray(), [-2, -1, 0, 1]); deepEqual(Enumerable.range(-2, 4, 2).toArray(), [-2, 0, 2, 4]);});
test("rangeDown", function () { let actual = Enumerable.rangeDown(1, 10).toArray(); deepEqual(actual, [1, 0, -1, -2, -3, -4, -5, -6, -7, -8]); actual = Enumerable.rangeDown(1, 5, 3).toArray(); deepEqual(actual, [1, -2, -5, -8, -11]);
deepEqual(Enumerable.rangeDown(3, 5).toArray(), [3, 2, 1, 0, -1]); deepEqual(Enumerable.rangeDown(-2, 4).toArray(), [-2, -3, -4, -5]); deepEqual(Enumerable.rangeDown(-2, 4, 2).toArray(), [-2, -4, -6, -8]);});
test("rangeTo", function () { let actual = Enumerable.rangeTo(5, 10).toArray(); deepEqual(actual, [5, 6, 7, 8, 9, 10]); actual = Enumerable.rangeTo(1, 10, 3).toArray(); deepEqual(actual, [1, 4, 7, 10]); actual = Enumerable.rangeTo(-2, -8).toArray(); deepEqual(actual, [-2, -3, -4, -5, -6, -7, -8]); actual = Enumerable.rangeTo(-2, -8, 2).toArray(); deepEqual(actual, [-2, -4, -6, -8]);
deepEqual(Enumerable.rangeTo(1, 4).toArray(), [1, 2, 3, 4]); deepEqual(Enumerable.rangeTo(-3, 6).toArray(), [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6]); deepEqual(Enumerable.rangeTo(2, -5).toArray(), [2, 1, 0, -1, -2, -3, -4, -5]); deepEqual(Enumerable.rangeTo(1, 5, 3).toArray(), [1, 4]); deepEqual(Enumerable.rangeTo(1, -5, 3).toArray(), [1, -2, -5]); deepEqual(Enumerable.rangeTo(1, -6, 3).toArray(), [1, -2, -5]);
deepEqual(Enumerable.rangeTo(4, 4).toArray(), [4]); deepEqual(Enumerable.rangeTo(4, 4, 3).toArray(), [4]);
strictNotEqual(Enumerable.rangeTo(4, 4), 4); strictNotEqual(Enumerable.rangeTo(4, 4, 3), 4);});
test("repeat", function () { let actual = Enumerable.repeat("temp").take(3).toArray(); deepEqual(actual, ["temp", "temp", "temp"]); actual = Enumerable.repeat("temp", 5).toArray(); deepEqual(actual, ["temp", "temp", "temp", "temp", "temp"]);});
test("repeatWithFinalize", function () { var fin; let actual = Enumerable.repeatWithFinalize( function () { return "temp"; }, function () { fin = "final"; }) .take(3).toArray(); deepEqual(actual, ["temp", "temp", "temp"]); equal("final", fin);});
test("generate", function () { let actual = Enumerable.generate(function () { return "temp" }).take(3).toArray(); deepEqual(actual, ["temp", "temp", "temp"]); actual = Enumerable.generate(function () { return "temp" }, 5).toArray(); deepEqual(actual, ["temp", "temp", "temp", "temp", "temp"]);});
test("toInfinity", function () { let actual = Enumerable.toInfinity().where("i=>i%2==0").take(10).toArray(); deepEqual(actual, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]); actual = Enumerable.toInfinity(101).take(5).toArray(); deepEqual(actual, [101, 102, 103, 104, 105]); actual = Enumerable.toInfinity(101, 5).take(5).toArray(); deepEqual(actual, [101, 106, 111, 116, 121]);});
test("toNegativeInfinity", function () { let actual = Enumerable.toNegativeInfinity().where("i=>i%2==0").take(10).toArray(); deepEqual(actual, [0, -2, -4, -6, -8, -10, -12, -14, -16, -18]); actual = Enumerable.toNegativeInfinity(3).take(10).toArray(); deepEqual(actual, [3, 2, 1, 0, -1, -2, -3, -4, -5, -6]); actual = Enumerable.toNegativeInfinity(3, 5).take(4).toArray(); deepEqual(actual, [3, -2, -7, -12]);});
test("unfold", function () { let actual = Enumerable.unfold(5, "$+3").take(5).toArray(); deepEqual(actual, [5, 8, 11, 14, 17]);});
test("defer", function () { var xs = [];
var r = Enumerable.range(1, 5) .doAction(function (x) { xs.push(x); });
var de = Enumerable.defer(function () { return r; });
equal(xs.length, 0);
deepEqual(de.toArray(), [1, 2, 3, 4, 5]); deepEqual(xs, [1, 2, 3, 4, 5]);});
linq

Version Info

Tagged at
7 months ago