Skip to content

Commit d3e6304

Browse files
committed
Add tests of compilers
1 parent bbdcd80 commit d3e6304

10 files changed

Lines changed: 2164 additions & 10 deletions
Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
module ArithmeticOperationsCompilersTest
2+
3+
open FsUnit
4+
open NUnit.Framework
5+
open Xtensive.Orm
6+
open Xtensive.Orm.Tests
7+
open Model
8+
open Microsoft.FSharp.Linq
9+
10+
[<TestFixture>]
11+
type Fixture() =
12+
inherit AutoBuildTest()
13+
14+
override this.BuildConfiguration() =
15+
let config = base.BuildConfiguration ()
16+
config.Types.Register typeof<X>
17+
config
18+
19+
[<Test>]
20+
member this.AdditionStringTest() =
21+
use session = base.Domain.OpenSession ()
22+
use ts = session.OpenTransaction ()
23+
X (StringField = "John") |> ignore
24+
let alll = session.Query.All<X> ()
25+
let query =
26+
query {
27+
for x in alll do
28+
if (x.StringField + x.StringField) = "JohnJohn" then
29+
yield x
30+
}
31+
let list = query |> Seq.toArray
32+
Assert.That(list.Length, Is.EqualTo(1))
33+
let fetched = list.[0]
34+
Assert.That(fetched.StringField, Is.EqualTo("John"))
35+
36+
[<Test>]
37+
member this.AdditionDateTimeTest() =
38+
use session = base.Domain.OpenSession ()
39+
use ts = session.OpenTransaction ()
40+
X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
41+
let alll = session.Query.All<X> ()
42+
let query =
43+
query {
44+
for x in alll do
45+
if (x.DateTimeField + System.TimeSpan.FromDays(2)) > new System.DateTime(System.DateTime.Now.Year, 2, 15) then
46+
yield x
47+
}
48+
let list = query |> Seq.toArray
49+
Assert.That(list.Length, Is.EqualTo(1))
50+
let fetched = list.[0]
51+
Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
52+
53+
[<Test>]
54+
member this.AdditionTimeSpanTest() =
55+
use session = base.Domain.OpenSession ()
56+
use ts = session.OpenTransaction ()
57+
X (TimeSpanField = System.TimeSpan.FromTicks(111222333)) |> ignore
58+
let alll = session.Query.All<X> ()
59+
let query =
60+
query {
61+
for x in alll do
62+
if (x.TimeSpanField + System.TimeSpan.FromDays(2)) > System.TimeSpan.FromTicks(111222333) + System.TimeSpan.FromDays(1) then
63+
yield x
64+
}
65+
let list = query |> Seq.toArray
66+
Assert.That(list.Length, Is.EqualTo(1))
67+
let fetched = list.[0]
68+
Assert.That(fetched.TimeSpanField, Is.EqualTo(System.TimeSpan.FromTicks(111222333)))
69+
70+
[<Test>]
71+
member this.AdditionDecimalTest() =
72+
use session = base.Domain.OpenSession ()
73+
use ts = session.OpenTransaction ()
74+
X (DecimalField = decimal 16.0) |> ignore
75+
let alll = session.Query.All<X> ()
76+
let query =
77+
query {
78+
for x in alll do
79+
if x.DecimalField + x.DecimalField <= decimal 35 then
80+
yield x
81+
}
82+
let list = query |> Seq.toArray
83+
Assert.That(list.Length, Is.EqualTo(1))
84+
let fetched = list.[0]
85+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
86+
87+
[<Test>]
88+
member this.SubtractionDateTimeTest1() =
89+
use session = base.Domain.OpenSession ()
90+
use ts = session.OpenTransaction ()
91+
X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
92+
let alll = session.Query.All<X> ()
93+
let query =
94+
query {
95+
for x in alll do
96+
if (x.DateTimeField - System.TimeSpan.FromDays(2)) > new System.DateTime(System.DateTime.Now.Year, 2, 10) then
97+
yield x
98+
}
99+
let list = query |> Seq.toArray
100+
Assert.That(list.Length, Is.EqualTo(1))
101+
let fetched = list.[0]
102+
Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
103+
104+
[<Test>]
105+
member this.SubtractionDateTimeTest2() =
106+
use session = base.Domain.OpenSession ()
107+
use ts = session.OpenTransaction ()
108+
X (DateTimeField = new System.DateTime(System.DateTime.Now.Year, 2, 15)) |> ignore
109+
let alll = session.Query.All<X> ()
110+
let query =
111+
query {
112+
for x in alll do
113+
if (x.DateTimeField - new System.DateTime(System.DateTime.Now.Year, 2, 10)) > System.TimeSpan.FromDays(2) then
114+
yield x
115+
}
116+
let list = query |> Seq.toArray
117+
Assert.That(list.Length, Is.EqualTo(1))
118+
let fetched = list.[0]
119+
Assert.That(fetched.DateTimeField, Is.EqualTo(new System.DateTime(System.DateTime.Now.Year, 2, 15)))
120+
121+
[<Test>]
122+
member this.SubtractionTimeSpanTest() =
123+
use session = base.Domain.OpenSession ()
124+
use ts = session.OpenTransaction ()
125+
X (TimeSpanField = System.TimeSpan.FromTicks(111222333)) |> ignore
126+
let alll = session.Query.All<X> ()
127+
let query =
128+
query {
129+
for x in alll do
130+
if (x.TimeSpanField - System.TimeSpan.FromTicks(111222)) > System.TimeSpan.FromTicks(111222) then
131+
yield x
132+
}
133+
let list = query |> Seq.toArray
134+
Assert.That(list.Length, Is.EqualTo(1))
135+
let fetched = list.[0]
136+
Assert.That(fetched.TimeSpanField, Is.EqualTo(System.TimeSpan.FromTicks(111222333)))
137+
138+
[<Test>]
139+
member this.SubtractionDecimalTest() =
140+
use session = base.Domain.OpenSession ()
141+
use ts = session.OpenTransaction ()
142+
X (DecimalField = decimal 16.0) |> ignore
143+
let alll = session.Query.All<X> ()
144+
let query =
145+
query {
146+
for x in alll do
147+
if x.DecimalField - x.DecimalField + decimal 3 <= decimal 5 then
148+
yield x
149+
}
150+
let list = query |> Seq.toArray
151+
Assert.That(list.Length, Is.EqualTo(1))
152+
let fetched = list.[0]
153+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
154+
155+
[<Test>]
156+
member this.MultiplyDecimalTest() =
157+
use session = base.Domain.OpenSession ()
158+
use ts = session.OpenTransaction ()
159+
X (DecimalField = decimal 16.0) |> ignore
160+
let alll = session.Query.All<X> ()
161+
let query =
162+
query {
163+
for x in alll do
164+
if x.DecimalField * x.DecimalField <= decimal 350 then
165+
yield x
166+
}
167+
let list = query |> Seq.toArray
168+
Assert.That(list.Length, Is.EqualTo(1))
169+
let fetched = list.[0]
170+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))
171+
172+
[<Test>]
173+
member this.DivideDecimalTest() =
174+
use session = base.Domain.OpenSession ()
175+
use ts = session.OpenTransaction ()
176+
X (DecimalField = decimal 16.0) |> ignore
177+
let alll = session.Query.All<X> ()
178+
let query =
179+
query {
180+
for x in alll do
181+
if x.DecimalField / decimal 2 <= decimal 16 then
182+
yield x
183+
}
184+
let list = query |> Seq.toArray
185+
Assert.That(list.Length, Is.EqualTo(1))
186+
let fetched = list.[0]
187+
Assert.That(fetched.DecimalField, Is.EqualTo(decimal 16))

0 commit comments

Comments
 (0)