|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
-
- #[allow(unused)]
- #[cfg(test)]
- mod tests {
- use serde::Deserialize;
-
- #[derive(Debug, Deserialize)]
- struct Trade {
- pub time: i64,
- pub price: f64,
- pub amount: f64,
- }
-
- #[test]
- fn serde_deserialize_json_example() {
- assert!(matches!(
- serde_json::from_str::<Trade>(r#"{"time":1527811201900505632,"price":7492.279785,"amount":0.048495,"exch":"bits","server_time":0,"side":null}"#),
- Ok(Trade { time: 1527811201900505632, price: 7492.279785, amount: 0.048495 })
- ));
-
- }
-
- #[test]
- fn serde_deserialize_csv_example() {
- let csv = "time,amount,exch,price,server_time,side\n\
- 1527811201900505632,0.048495,bits,7492.279785,0,";
-
- let mut csv_reader = csv::Reader::from_reader(csv.as_bytes());
-
- let headers = csv_reader
- .headers()
- .expect("parsing row headers failed")
- .clone();
-
- let mut row = csv::StringRecord::new();
-
- assert!(matches!(
- csv_reader.read_record(&mut row),
- Ok(true)
- ));
-
- assert!(matches!(
- row.deserialize(Some(&headers)),
- Ok(Trade { time: 1527811201900505632, price: 7492.279785, amount: 0.048495 })
- ));
-
- assert!(matches!(
- csv_reader.read_record(&mut row),
- Ok(false)
- ));
- }
-
- #[test]
- fn memory_size_of_trades_struct() {
- use markets::crypto::{Exchange, Ticker, Side};
-
- struct Trade {
- pub time: u64,
- pub price: f64,
- pub amount: f64,
- pub exch: Exchange,
- pub ticker: Ticker,
- pub server_time: Option<u64>,
- pub side: Option<Side>,
- }
-
- assert_eq!(std::mem::size_of::<Trade>(), 48);
- assert_eq!(std::mem::size_of::<Ticker>(), 2);
- }
- }
|