comparison UnitTests/Linq/MathFunctions.cs @ 0:f990fcb411a9

Копия текущей версии из github
author cin
date Thu, 27 Mar 2014 21:46:09 +0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:f990fcb411a9
1 using System;
2 using System.Linq;
3 using BLToolkit.Data.Linq;
4 using NUnit.Framework;
5
6 using BLToolkit.Data.DataProvider;
7
8 namespace Data.Linq
9 {
10 [TestFixture]
11 public class MathFunctions : TestBase
12 {
13 [Test]
14 public void Abs()
15 {
16 ForEachProvider(db => AreEqual(
17 from t in from p in Types select Math.Abs(p.MoneyValue) where t > 0 select t,
18 from t in from p in db.Types select Math.Abs(p.MoneyValue) where t > 0 select t));
19 }
20
21 [Test]
22 public void Acos()
23 {
24 ForEachProvider(new[] { ProviderName.Access }, db => AreEqual(
25 from t in from p in Types select Math.Floor(Math.Acos((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
26 from t in from p in db.Types select Math.Floor(Math.Acos((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
27 }
28
29 [Test]
30 public void Asin()
31 {
32 ForEachProvider(new[] { ProviderName.Access }, db => AreEqual(
33 from t in from p in Types select Math.Floor(Math.Asin((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
34 from t in from p in db.Types select Math.Floor(Math.Asin((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
35 }
36
37 [Test]
38 public void Atan()
39 {
40 ForEachProvider(db => AreEqual(
41 from t in from p in Types select Math.Floor(Math.Atan((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
42 from t in from p in db.Types select Math.Floor(Math.Atan((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
43 }
44
45 [Test]
46 public void Atan2()
47 {
48 ForEachProvider(new[] { ProviderName.Access }, db => AreEqual(
49 from t in from p in Types select Math.Floor(Math.Atan2((double)p.MoneyValue / 15, 0) * 15) where t != 0.1 select t,
50 from t in from p in db.Types select Math.Floor(Math.Atan2((double)p.MoneyValue / 15, 0) * 15) where t != 0.1 select t));
51 }
52
53 [Test]
54 public void Ceiling1()
55 {
56 ForEachProvider(db => AreEqual(
57 from t in from p in Types select Math.Ceiling(-(p.MoneyValue + 1)) where t != 0 select t,
58 from t in from p in db.Types select Math.Ceiling(-(p.MoneyValue + 1)) where t != 0 select t));
59 }
60
61 [Test]
62 public void Ceiling2()
63 {
64 ForEachProvider(db => AreEqual(
65 from t in from p in Types select Math.Ceiling(p.MoneyValue) where t != 0 select t,
66 from t in from p in db.Types select Math.Ceiling(p.MoneyValue) where t != 0 select t));
67 }
68
69 [Test]
70 public void Cos()
71 {
72 ForEachProvider(db => AreEqual(
73 from t in from p in Types select Math.Floor(Math.Cos((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
74 from t in from p in db.Types select Math.Floor(Math.Cos((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
75 }
76
77 [Test]
78 public void Cosh()
79 {
80 ForEachProvider(db => AreEqual(
81 from t in from p in Types select Math.Floor(Math.Cosh((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
82 from t in from p in db.Types select Math.Floor(Math.Cosh((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
83 }
84
85 [Test]
86 public void Cot()
87 {
88 ForEachProvider(db => AreEqual(
89 from t in from p in Types select Math.Floor(Sql.Cot((double)p.MoneyValue / 15).Value * 15) where t != 0.1 select t,
90 from t in from p in db.Types select Math.Floor(Sql.Cot((double)p.MoneyValue / 15).Value * 15) where t != 0.1 select t));
91 }
92
93 [Test]
94 public void Deegrees1()
95 {
96 ForEachProvider(db => AreEqual(
97 from t in from p in Types select Math.Floor(Sql.Degrees(p.MoneyValue).Value) where t != 0.1m select t,
98 from t in from p in db.Types select Math.Floor(Sql.Degrees(p.MoneyValue).Value) where t != 0.1m select t));
99 }
100
101 [Test]
102 public void Deegrees2()
103 {
104 ForEachProvider(db => AreEqual(
105 from t in from p in Types select Sql.Degrees((double)p.MoneyValue).Value where t != 0.1 select Math.Floor(t),
106 from t in from p in db.Types select Sql.Degrees((double)p.MoneyValue).Value where t != 0.1 select Math.Floor(t)));
107 }
108
109 [Test]
110 public void Deegrees3()
111 {
112 ForEachProvider(db => AreEqual(
113 from t in from p in Types select Sql.Degrees((int)p.MoneyValue).Value where t != 0.1 select t,
114 from t in from p in db.Types select Sql.Degrees((int)p.MoneyValue).Value where t != 0.1 select t));
115 }
116
117 [Test]
118 public void Exp()
119 {
120 ForEachProvider(db => AreEqual(
121 from t in from p in Types select Math.Floor(Math.Exp((double)p.MoneyValue)) where t != 0.1 select t,
122 from t in from p in db.Types select Math.Floor(Math.Exp((double)p.MoneyValue)) where t != 0.1 select t));
123 }
124
125 [Test]
126 public void Floor()
127 {
128 ForEachProvider(db => AreEqual(
129 from t in from p in Types select Math.Floor(-(p.MoneyValue + 1)) where t != 0 select t,
130 from t in from p in db.Types select Math.Floor(-(p.MoneyValue + 1)) where t != 0 select t));
131 }
132
133 [Test]
134 public void Log()
135 {
136 ForEachProvider(db => AreEqual(
137 from t in from p in Types select Math.Floor(Math.Log((double)p.MoneyValue)) where t != 0.1 select t,
138 from t in from p in db.Types select Math.Floor(Math.Log((double)p.MoneyValue)) where t != 0.1 select t));
139 }
140
141 [Test]
142 public void Log2()
143 {
144 ForEachProvider(db => AreEqual(
145 from t in from p in Types select Math.Floor(Math.Log((double)p.MoneyValue, 2)) where t != 0.1 select t,
146 from t in from p in db.Types select Math.Floor(Math.Log((double)p.MoneyValue, 2)) where t != 0.1 select t));
147 }
148
149 [Test]
150 public void Log10()
151 {
152 ForEachProvider(db => AreEqual(
153 from t in from p in Types select Math.Floor(Math.Log10((double)p.MoneyValue)) where t != 0.1 select t,
154 from t in from p in db.Types select Math.Floor(Math.Log10((double)p.MoneyValue)) where t != 0.1 select t));
155 }
156
157 [Test]
158 public void Max()
159 {
160 ForEachProvider(db => AreEqual(
161 from t in from p in Types select Math.Max(p.MoneyValue, 5) where t != 0 select t,
162 from t in from p in db.Types select Math.Max(p.MoneyValue, 5) where t != 0 select t));
163 }
164
165 [Test]
166 public void Min()
167 {
168 ForEachProvider(db => AreEqual(
169 from t in from p in Types select Math.Min(p.MoneyValue, 5) where t != 0 select t,
170 from t in from p in db.Types select Math.Min(p.MoneyValue, 5) where t != 0 select t));
171 }
172
173 [Test]
174 public void Pow()
175 {
176 ForEachProvider(db => AreEqual(
177 from t in from p in Types select Math.Floor(Math.Pow((double)p.MoneyValue, 3)) where t != 0 select t,
178 from t in from p in db.Types select Math.Floor(Math.Pow((double)p.MoneyValue, 3)) where t != 0 select t));
179 }
180
181 [Test]
182 public void Round1()
183 {
184 ForEachProvider(db => AreEqual(
185 from t in from p in Types select Math.Round(p.MoneyValue) where t != 0 select t,
186 from t in from p in db.Types select Math.Round(p.MoneyValue) where t != 0 select t));
187 }
188
189 [Test]
190 public void Round2()
191 {
192 ForEachProvider(db => AreEqual(
193 from t in from p in Types select Math.Round((double)p.MoneyValue) where t != 0 select t,
194 from t in from p in db.Types select Math.Round((double)p.MoneyValue) where t != 0 select t));
195 }
196
197 [Test]
198 public void Round3()
199 {
200 ForEachProvider(db => AreEqual(
201 from t in from p in Types select Math.Round(p.MoneyValue, 1) where t != 0 && t != 7 select t,
202 from t in from p in db.Types select Math.Round(p.MoneyValue, 1) where t != 0 && t != 7 select t));
203 }
204
205 [Test]
206 public void Round4()
207 {
208 ForEachProvider(db => AreEqual(
209 from t in from p in Types select Math.Round((double)p.MoneyValue, 1) where t != 0 select Math.Round(t, 5),
210 from t in from p in db.Types select Math.Round((double)p.MoneyValue, 1) where t != 0 select Math.Round(t, 5)));
211 }
212
213 [Test]
214 public void Round5()
215 {
216 ForEachProvider(db => AreEqual(
217 from t in from p in Types select Math.Round(p.MoneyValue, MidpointRounding.AwayFromZero) where t != 0 select t,
218 from t in from p in db.Types select Math.Round(p.MoneyValue, MidpointRounding.AwayFromZero) where t != 0 select t));
219 }
220
221 [Test]
222 public void Round6()
223 {
224 ForEachProvider(db => AreEqual(
225 from t in from p in Types select Math.Round((double)p.MoneyValue, MidpointRounding.AwayFromZero) where t != 0 select t,
226 from t in from p in db.Types select Math.Round((double)p.MoneyValue, MidpointRounding.AwayFromZero) where t != 0 select t));
227 }
228
229 [Test]
230 public void Round7()
231 {
232 ForEachProvider(db => AreEqual(
233 from t in from p in Types select Math.Round(p.MoneyValue, MidpointRounding.ToEven) where t != 0 select t,
234 from t in from p in db.Types select Math.Round(p.MoneyValue, MidpointRounding.ToEven) where t != 0 select t));
235 }
236
237 [Test]
238 public void Round8()
239 {
240 ForEachProvider(db => AreEqual(
241 from t in from p in Types select Math.Round((double)p.MoneyValue, MidpointRounding.ToEven) where t != 0 select t,
242 from t in from p in db.Types select Math.Round((double)p.MoneyValue, MidpointRounding.ToEven) where t != 0 select t));
243 }
244
245 [Test]
246 public void Round9()
247 {
248 ForEachProvider(new[] { ProviderName.SQLite }, db => AreEqual(
249 from t in from p in Types select Math.Round(p.MoneyValue, 1, MidpointRounding.AwayFromZero) where t != 0 select t,
250 from t in from p in db.Types select Math.Round(p.MoneyValue, 1, MidpointRounding.AwayFromZero) where t != 0 select t));
251 }
252
253 [Test]
254 public void Round10()
255 {
256 ForEachProvider(db => AreEqual(
257 from t in from p in Types select Math.Round(p.MoneyValue, 1, MidpointRounding.ToEven) where t != 0 && t != 7 select t,
258 from t in from p in db.Types select Math.Round(p.MoneyValue, 1, MidpointRounding.ToEven) where t != 0 && t != 7 select t));
259 }
260
261 [Test]
262 public void Round11()
263 {
264 ForEachProvider(db => AreEqual(
265 from t in from p in Types select Math.Round((double)p.MoneyValue, 1, MidpointRounding.ToEven) where t != 0 select Math.Round(t, 5),
266 from t in from p in db.Types select Math.Round((double)p.MoneyValue, 1, MidpointRounding.ToEven) where t != 0 select Math.Round(t, 5)));
267 }
268
269 [Test]
270 public void Round12()
271 {
272 var mp = MidpointRounding.AwayFromZero;
273
274 ForEachProvider(new[] { ProviderName.SQLite }, db => AreEqual(
275 from t in from p in Types select Math.Round(p.MoneyValue, 1, mp) where t != 0 && t != 7 select t,
276 from t in from p in db.Types select Math.Round(p.MoneyValue, 1, mp) where t != 0 && t != 7 select t));
277 }
278
279 [Test]
280 public void Sign()
281 {
282 ForEachProvider(db => AreEqual(
283 from t in from p in Types select Math.Sign(p.MoneyValue) where t != 0 select t,
284 from t in from p in db.Types select Math.Sign(p.MoneyValue) where t != 0 select t));
285 }
286
287 [Test]
288 public void Sin()
289 {
290 ForEachProvider(db => AreEqual(
291 from t in from p in Types select Math.Floor(Math.Sin((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
292 from t in from p in db.Types select Math.Floor(Math.Sin((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
293 }
294
295 [Test]
296 public void Sinh()
297 {
298 ForEachProvider(db => AreEqual(
299 from t in from p in Types select Math.Floor(Math.Sinh((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
300 from t in from p in db.Types select Math.Floor(Math.Sinh((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
301 }
302
303 [Test]
304 public void Sqrt()
305 {
306 ForEachProvider(db => AreEqual(
307 from t in from p in Types select Math.Floor(Math.Sqrt((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
308 from t in from p in db.Types select Math.Floor(Math.Sqrt((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
309 }
310
311 [Test]
312 public void Tan()
313 {
314 ForEachProvider(db => AreEqual(
315 from t in from p in Types select Math.Floor(Math.Tan((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
316 from t in from p in db.Types select Math.Floor(Math.Tan((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
317 }
318
319 [Test]
320 public void Tanh()
321 {
322 ForEachProvider(db => AreEqual(
323 from t in from p in Types select Math.Floor(Math.Tanh((double)p.MoneyValue / 15) * 15) where t != 0.1 select t,
324 from t in from p in db.Types select Math.Floor(Math.Tanh((double)p.MoneyValue / 15) * 15) where t != 0.1 select t));
325 }
326
327 [Test]
328 public void Truncate1()
329 {
330 ForEachProvider(db => AreEqual(
331 from t in from p in Types select Math.Truncate(p.MoneyValue) where t != 0.1m select t,
332 from t in from p in db.Types select Math.Truncate(p.MoneyValue) where t != 0.1m select t));
333 }
334
335 [Test]
336 public void Truncate2()
337 {
338 ForEachProvider(db => AreEqual(
339 from t in from p in Types select Math.Truncate((double)-p.MoneyValue) where t != 0.1 select t,
340 from t in from p in db.Types select Math.Truncate((double)-p.MoneyValue) where t != 0.1 select t));
341 }
342 }
343 }