/ PlanarDev / test / test_tradesohlcv.jl
test_tradesohlcv.jl
 1  using Test
 2  
 3  function _test_tradesohlcv_1()
 4      @eval begin
 5          using .Planar.Misc.JSON
 6          using .Planar.Misc.TimeTicks
 7          using .Planar.Engine.Processing
 8          using .Planar.Engine.LiveMode.Watchers
 9          if !(isdefined(Main, :wi))
10              wi = Watchers.WatchersImpls
11          end
12          if !(isdefined(Main, :pro))
13              pro = Processing
14          end
15      end
16      trades = JSON.parsefile(joinpath(PROJECT_PATH, "test", "stubs", "trades.json"))
17      trades = wi.fromdict.(CcxtTrade, String, trades)
18      (df, _, _) = pro.TradesOHLCV.trades_to_ohlcv(trades, tf"1m")
19      @views begin
20          @test NamedTuple(df[1, :]) == (;
21              timestamp=DateTime("2023-02-11T18:37:00"),
22              open=21658.0,
23              high=21658.0,
24              low=21657.9,
25              close=21658.0,
26              volume=15.135999999999994,
27          )
28          @test NamedTuple(df[2, :]) == (;
29              timestamp=DateTime("2023-02-11T18:38:00"),
30              open=21657.9,
31              high=21670.0,
32              low=21657.9,
33              close=21670.0,
34              volume=58.114999999999945,
35          )
36          @test NamedTuple(df[3, :]) == (;
37              timestamp=DateTime("2023-02-11T18:39:00"),
38              open=21670.0,
39              high=21671.7,
40              low=21665.7,
41              close=21665.7,
42              volume=52.07599999999998,
43          )
44          @test NamedTuple(df[4, :]) == (;
45              timestamp=DateTime("2023-02-11T18:40:00"),
46              open=21665.7,
47              high=21665.8,
48              low=21661.5,
49              close=21661.5,
50              volume=28.878000000000004,
51          )
52      end
53  end
54  
55  test_tradesohlcv() = @testset "tradesohlcv" begin
56      _test_tradesohlcv_1()
57  end