BadScript 2
Loading...
Searching...
No Matches
BadLinqTests.cs
Go to the documentation of this file.
1using System.Collections;
2
5
6namespace BadScript2.Tests;
7
8public class BadLinqTests
9{
13 [Test]
14 public void SelectTest()
15 {
16 IEnumerable d = Enumerable.Range(0, 100);
17
18 foreach (object? o in d.Select("x=>x*2"))
19 {
20 Assert.Multiple(() =>
21 {
22 Assert.That(o, Is.InstanceOf<decimal>());
23 Assert.That((decimal)o % 2, Is.EqualTo(0));
24 }
25 );
26 }
27 }
28
32 [Test]
33 public void WhereTest()
34 {
35 IEnumerable d = Enumerable.Range(0, 100);
36
37 foreach (object? o in d.Where("x=>x%2==0"))
38 {
39 Assert.Multiple(() =>
40 {
41 Assert.That(o, Is.InstanceOf<int>());
42 Assert.That((int)o % 2, Is.EqualTo(0));
43 }
44 );
45 }
46 }
47
51 [Test]
52 public void LastTest()
53 {
54 IEnumerable d = Enumerable.Range(0, 100);
55 object o = d.Last("x=>x%2==0");
56 Assert.That(o, Is.InstanceOf<int>());
57 Assert.That(o, Is.EqualTo(98));
58 }
59
63 [Test]
64 public void FirstTest()
65 {
66 IEnumerable d = Enumerable.Range(0, 100);
67 object o = d.First("x=>x%2==0");
68 Assert.That(o, Is.InstanceOf<int>());
69 Assert.That(o, Is.EqualTo(0));
70 }
71
75 [Test]
76 public void LastOrDefaultTest()
77 {
78 IEnumerable d = Enumerable.Empty<BadObject>();
79 object? o = d.LastOrDefault("x=>x%2==0");
80 Assert.That(o, Is.Null);
81 }
82
86 [Test]
87 public void FirstOrDefaultTest()
88 {
89 IEnumerable d = Enumerable.Empty<BadObject>();
90 object? o = d.FirstOrDefault("x=>x%2==0");
91
92 Assert.That(o, Is.Null);
93 }
94
98 [Test]
99 public void TakeTest()
100 {
101 IEnumerable d = Enumerable.Range(0, 100);
102
103 object[] o = d.Take(10)
104 .Cast<object>()
105 .ToArray();
106 Assert.That(o, Has.Length.EqualTo(10));
107 }
108
112 [Test]
113 public void SkipTest()
114 {
115 IEnumerable d = Enumerable.Range(0, 100);
116
117 object[] o = d.Skip(10)
118 .Cast<object>()
119 .ToArray();
120 Assert.That(o, Has.Length.EqualTo(90));
121 }
122
126 [Test]
127 public void TakeLastTest()
128 {
129 IEnumerable d = Enumerable.Range(0, 100);
130
131 object[] o = d.TakeLast(10)
132 .Cast<object>()
133 .ToArray();
134 Assert.That(o, Has.Length.EqualTo(10));
135 }
136
140 [Test]
141 public void SkipLastTest()
142 {
143 IEnumerable d = Enumerable.Range(0, 100);
144
145 object[] o = d.SkipLast(10)
146 .Cast<object>()
147 .ToArray();
148 Assert.That(o, Has.Length.EqualTo(90));
149 }
150
151
155 [Test]
156 public void SelectManyTest()
157 {
158 List<BadObject> a = new BadObject[] { 1, 2 }.ToList();
159 IEnumerable d = new BadObject[] { new BadArray(a), new BadArray(a) };
160
161 object[] o = d.SelectMany("x=>x")
162 .Cast<object>()
163 .ToArray();
164 Assert.That(o, Has.Length.EqualTo(4));
165 }
166
170 [Test]
171 public void SkipWhileTest()
172 {
173 IEnumerable d = Enumerable.Range(0, 100);
174
175 object[] o = d.SkipWhile("x=>x < 10")
176 .Cast<object>()
177 .ToArray();
178 Assert.That(o, Has.Length.EqualTo(90));
179 }
180
184 [Test]
185 public void TakeWhileTest()
186 {
187 IEnumerable d = Enumerable.Range(0, 100);
188
189 object[] o = d.TakeWhile("x=>x < 10")
190 .Cast<object>()
191 .ToArray();
192 Assert.That(o, Has.Length.EqualTo(10));
193 }
194
198 [Test]
199 public void AllTest()
200 {
201 IEnumerable d = Enumerable.Range(0, 100);
202
203 // ReSharper disable once PossibleMultipleEnumeration
204 bool o = d.All("x=>x < 10");
205
206 // ReSharper disable once PossibleMultipleEnumeration
207 bool o1 = d.All("x=>x < 100");
208
209 Assert.Multiple(() =>
210 {
211 Assert.That(o, Is.False);
212 Assert.That(o1, Is.True);
213 }
214 );
215 }
216
220 [Test]
221 public void AnyTest()
222 {
223 IEnumerable d = Enumerable.Range(0, 100);
224
225 // ReSharper disable once PossibleMultipleEnumeration
226 bool o = d.Any("x=>x < 0");
227
228 // ReSharper disable once PossibleMultipleEnumeration
229 bool o1 = d.Any("x=>x < 100");
230 Assert.That(o, Is.False);
231 Assert.That(o1, Is.True);
232 }
233}
Implements a Dynamic List/Array for the BadScript Language.
Definition BadArray.cs:17
The Base Class for all BadScript Objects.
Definition BadObject.cs:14
void AnyTest()
Tests the Linq.Any Function.
void TakeWhileTest()
Test the Linq.TakeWhile Function.
void FirstOrDefaultTest()
Tests the Linq.FirstOrDefault Function.
void SelectManyTest()
Tests the Linq.SelectMany Function.
void SkipTest()
Tests the Linq.Skip Function.
void LastTest()
Tests the LINQ.Last Function.
void FirstTest()
Tests the Linq.First Function.
void SkipWhileTest()
Tests the Linq.SkipWhile Function.
void TakeTest()
Tests the Linq.Take Function.
void SelectTest()
Tests the LINQ.Select Function.
void TakeLastTest()
Tests the Linq.TakeLast Function.
void WhereTest()
Tests the LINQ.Where Function.
void AllTest()
Tests the Linq.All Function.
void LastOrDefaultTest()
Tests the Linq.LastOrDefault Function.
void SkipLastTest()
Tests the Linq.SkipLast Function.
Contains the Runtime Objects.
Definition BadArray.cs:10
Contains the Linq Implementation and Extensions.