-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathMovingAvgTest.fs
36 lines (26 loc) · 1.44 KB
/
MovingAvgTest.fs
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
module Tests.Ma
open System
open Xunit
open MyTrades.Analytics
open MovingAvarage
[<Fact>]
let ``Tet SMA With 10 Values`` () =
let prices = [ {Value = 3m ; Date =new DateTime(2015, 03, 1)};
{Value = 4m ; Date =new DateTime(2015, 03, 2)};
{Value = 5m ; Date =new DateTime(2015, 03, 3)};
{Value = 6m ; Date =new DateTime(2015, 03, 4)};
{Value = 7m ; Date =new DateTime(2015, 03, 5)};
{Value = 6m ; Date =new DateTime(2015, 03, 6)};
{Value = 5m ; Date =new DateTime(2015, 03, 7)};
{Value = 9m ; Date =new DateTime(2015, 03, 8)} ];
let mavgs = SimpleMovingAverage prices 5
Assert.Equal(4, (Seq.length mavgs))
let magvsArray = Seq.toArray mavgs
Assert.Equal(5m, (magvsArray |> Array.item 0).Value);
Assert.Equal(new DateTime(2015, 03, 5), (magvsArray |> Array.item 0).Date);
Assert.Equal(5.6m, (magvsArray |> Array.item 1).Value);
Assert.Equal(new DateTime(2015, 03, 6), (magvsArray |> Array.item 1).Date);
Assert.Equal(5.8m, (magvsArray |> Array.item 2).Value);
Assert.Equal(new DateTime(2015, 03, 7), (magvsArray |> Array.item 2).Date);
Assert.Equal(6.6m, (magvsArray |> Array.item 3).Value);
Assert.Equal(new DateTime(2015, 03, 8), (magvsArray |> Array.item 3).Date);