fix(data): expose actual snapshot row counts without cloning data
This commit is contained in:
@@ -2250,6 +2250,17 @@ impl DataSet {
|
|||||||
.unwrap_or(&[])
|
.unwrap_or(&[])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Counts market, factor, candidate, benchmark and corporate-action rows without cloning them.
|
||||||
|
pub fn snapshot_row_counts(&self) -> (usize, usize, usize, usize, usize) {
|
||||||
|
(
|
||||||
|
self.market_by_date.values().map(Vec::len).sum(),
|
||||||
|
self.factor_by_date.values().map(Vec::len).sum(),
|
||||||
|
self.candidate_by_date.values().map(Vec::len).sum(),
|
||||||
|
self.benchmark_by_date.len(),
|
||||||
|
self.corporate_actions_by_date.values().map(Vec::len).sum(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
pub fn execution_quotes_on(&self, date: NaiveDate, symbol: &str) -> &[IntradayExecutionQuote] {
|
pub fn execution_quotes_on(&self, date: NaiveDate, symbol: &str) -> &[IntradayExecutionQuote] {
|
||||||
self.execution_quotes_by_date
|
self.execution_quotes_by_date
|
||||||
.get(&date)
|
.get(&date)
|
||||||
@@ -5474,6 +5485,10 @@ mod tests {
|
|||||||
)
|
)
|
||||||
.expect("daily bundle dataset");
|
.expect("daily bundle dataset");
|
||||||
|
|
||||||
|
let row_count = dates.len() * symbols.len();
|
||||||
|
let expected_counts = (row_count, row_count, row_count, dates.len(), dates.len());
|
||||||
|
assert_eq!(flat.snapshot_row_counts(), expected_counts);
|
||||||
|
assert_eq!(grouped.snapshot_row_counts(), expected_counts);
|
||||||
assert_eq!(flat.calendar().days(), grouped.calendar().days());
|
assert_eq!(flat.calendar().days(), grouped.calendar().days());
|
||||||
assert_eq!(flat.benchmark_code(), grouped.benchmark_code());
|
assert_eq!(flat.benchmark_code(), grouped.benchmark_code());
|
||||||
for date in dates {
|
for date in dates {
|
||||||
|
|||||||
Reference in New Issue
Block a user