nautilus_testkit/
common.rs1use std::path::PathBuf;
17
18use nautilus_core::paths::get_test_data_path;
19
20use crate::files::ensure_file_exists_or_download_http;
21
22#[must_use]
28pub fn get_test_data_file_path(path: &str) -> String {
29 get_test_data_path()
30 .join(path)
31 .to_str()
32 .unwrap()
33 .to_string()
34}
35
36#[must_use]
42#[allow(unused_mut)]
43pub fn get_nautilus_test_data_file_path(filename: &str) -> String {
44 let mut path = get_test_data_path().join("nautilus");
45
46 #[cfg(feature = "high-precision")]
47 {
48 path = path.join("128-bit");
49 }
50 #[cfg(not(feature = "high-precision"))]
51 {
52 path = path.join("64-bit");
53 }
54
55 path.join(filename).to_str().unwrap().to_string()
56}
57
58#[must_use]
60pub fn get_test_data_large_checksums_filepath() -> PathBuf {
61 get_test_data_path().join("large").join("checksums.json")
62}
63
64#[must_use]
70pub fn ensure_test_data_exists(filename: &str, url: &str) -> PathBuf {
71 let filepath = get_test_data_path().join("large").join(filename);
72 let checksums_filepath = get_test_data_large_checksums_filepath();
73 ensure_file_exists_or_download_http(&filepath, url, Some(&checksums_filepath)).unwrap();
74 filepath
75}
76
77#[must_use]
79pub fn ensure_data_exists_tardis_deribit_book_l2() -> PathBuf {
80 let filename = "tardis_deribit_incremental_book_L2_2020-04-01_BTC-PERPETUAL.csv.gz";
81 let base_url = "https://datasets.tardis.dev";
82 let url = format!("{base_url}/v1/deribit/incremental_book_L2/2020/04/01/BTC-PERPETUAL.csv.gz");
83 ensure_test_data_exists(filename, &url)
84}
85
86#[must_use]
88pub fn ensure_data_exists_tardis_binance_snapshot5() -> PathBuf {
89 let filename = "tardis_binance-futures_book_snapshot_5_2020-09-01_BTCUSDT.csv.gz";
90 let base_url = "https://datasets.tardis.dev";
91 let url = format!("{base_url}/v1/binance-futures/book_snapshot_5/2020/09/01/BTCUSDT.csv.gz");
92 ensure_test_data_exists(filename, &url)
93}
94
95#[must_use]
97pub fn ensure_data_exists_tardis_binance_snapshot25() -> PathBuf {
98 let filename = "tardis_binance-futures_book_snapshot_25_2020-09-01_BTCUSDT.csv.gz";
99 let base_url = "https://datasets.tardis.dev";
100 let url = format!("{base_url}/v1/binance-futures/book_snapshot_25/2020/09/01/BTCUSDT.csv.gz");
101 ensure_test_data_exists(filename, &url)
102}
103
104#[must_use]
105pub fn ensure_data_exists_tardis_huobi_quotes() -> PathBuf {
106 let filename = "tardis_huobi-dm-swap_quotes_2020-05-01_BTC-USD.csv.gz";
107 let base_url = "https://datasets.tardis.dev";
108 let url = format!("{base_url}/v1/huobi-dm-swap/quotes/2020/05/01/BTC-USD.csv.gz");
109 ensure_test_data_exists(filename, &url)
110}
111
112#[must_use]
113pub fn ensure_data_exists_tardis_bitmex_trades() -> PathBuf {
114 let filename = "tardis_bitmex_trades_2020-03-01_XBTUSD.csv.gz";
115 let base_url = "https://datasets.tardis.dev";
116 let url = format!("{base_url}/v1/bitmex/trades/2020/03/01/XBTUSD.csv.gz");
117 ensure_test_data_exists(filename, &url)
118}