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 {
23 Assert.That(o, Is.InstanceOf<decimal>());
24 Assert.That((decimal)o % 2, Is.EqualTo(0));
25 }
26 );
27 }
28 }
29
33 [Test]
34 public void WhereTest()
35 {
36 IEnumerable d = Enumerable.Range(0, 100);
37
38 foreach (object? o in d.Where("x=>x%2==0"))
39 {
40 Assert.Multiple(
41 () =>
42 {
43 Assert.That(o, Is.InstanceOf<int>());
44 Assert.That((int)o % 2, Is.EqualTo(0));
45 }
46 );
47 }
48 }
49
53 [Test]
54 public void LastTest()
55 {
56 IEnumerable d = Enumerable.Range(0, 100);
57 object o = d.Last("x=>x%2==0");
58 Assert.That(o, Is.InstanceOf<int>());
59 Assert.That(o, Is.EqualTo(98));
60 }
61
65 [Test]
66 public void FirstTest()
67 {
68 IEnumerable d = Enumerable.Range(0, 100);
69 object o = d.First("x=>x%2==0");
70 Assert.That(o, Is.InstanceOf<int>());
71 Assert.That(o, Is.EqualTo(0));
72 }
73
77 [Test]
78 public void LastOrDefaultTest()
79 {
80 IEnumerable d = Enumerable.Empty<BadObject>();
81 object? o = d.LastOrDefault("x=>x%2==0");
82 Assert.That(o, Is.Null);
83 }
84
88 [Test]
89 public void FirstOrDefaultTest()
90 {
91 IEnumerable d = Enumerable.Empty<BadObject>();
92 object? o = d.FirstOrDefault("x=>x%2==0");
93
94 Assert.That(o, Is.Null);
95 }
96
100 [Test]
101 public void TakeTest()
102 {
103 IEnumerable d = Enumerable.Range(0, 100);
104 object[] o = d.Take(10).Cast<object>().ToArray();
105 Assert.That(o, Has.Length.EqualTo(10));
106 }
107
111 [Test]
112 public void SkipTest()
113 {
114 IEnumerable d = Enumerable.Range(0, 100);
115 object[] o = d.Skip(10).Cast<object>().ToArray();
116 Assert.That(o, Has.Length.EqualTo(90));
117 }
118
122 [Test]
123 public void TakeLastTest()
124 {
125 IEnumerable d = Enumerable.Range(0, 100);
126 object[] o = d.TakeLast(10).Cast<object>().ToArray();
127 Assert.That(o, Has.Length.EqualTo(10));
128 }
129
133 [Test]
134 public void SkipLastTest()
135 {
136 IEnumerable d = Enumerable.Range(0, 100);
137 object[] o = d.SkipLast(10).Cast<object>().ToArray();
138 Assert.That(o, Has.Length.EqualTo(90));
139 }
140
141
145 [Test]
146 public void SelectManyTest()
147 {
148 List<BadObject> a = new BadObject[]
149 {
150 1,
151 2,
152 }.ToList();
153 IEnumerable d = new BadObject[]
154 {
155 new BadArray(a),
156 new BadArray(a),
157 };
158 object[] o = d.SelectMany("x=>x").Cast<object>().ToArray();
159 Assert.That(o, Has.Length.EqualTo(4));
160 }
161
165 [Test]
166 public void SkipWhileTest()
167 {
168 IEnumerable d = Enumerable.Range(0, 100);
169 object[] o = d.SkipWhile("x=>x < 10").Cast<object>().ToArray();
170 Assert.That(o, Has.Length.EqualTo(90));
171 }
172
176 [Test]
177 public void TakeWhileTest()
178 {
179 IEnumerable d = Enumerable.Range(0, 100);
180 object[] o = d.TakeWhile("x=>x < 10").Cast<object>().ToArray();
181 Assert.That(o, Has.Length.EqualTo(10));
182 }
183
187 [Test]
188 public void AllTest()
189 {
190 IEnumerable d = Enumerable.Range(0, 100);
191
192 // ReSharper disable once PossibleMultipleEnumeration
193 bool o = d.All("x=>x < 10");
194
195 // ReSharper disable once PossibleMultipleEnumeration
196 bool o1 = d.All("x=>x < 100");
197 Assert.Multiple(
198 () =>
199 {
200 Assert.That(o, Is.False);
201 Assert.That(o1, Is.True);
202 }
203 );
204 }
205
209 [Test]
210 public void AnyTest()
211 {
212 IEnumerable d = Enumerable.Range(0, 100);
213
214 // ReSharper disable once PossibleMultipleEnumeration
215 bool o = d.Any("x=>x < 0");
216
217 // ReSharper disable once PossibleMultipleEnumeration
218 bool o1 = d.Any("x=>x < 100");
219 Assert.That(o, Is.False);
220 Assert.That(o1, Is.True);
221 }
222}
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.