mirror of
https://github.com/Magnus167/rustframe.git
synced 2025-08-20 04:19:59 +00:00
Merge branch 'main' into dataframe
This commit is contained in:
commit
9b480e8130
@ -232,10 +232,17 @@ impl<T: Clone + PartialEq> Frame<T> {
|
||||
}
|
||||
(RowIndex::Date(vals), RowIndexLookup::Date(lookup))
|
||||
}
|
||||
Some(RowIndex::Range(_)) => {
|
||||
panic!(
|
||||
"Frame::new: Cannot explicitly provide a Range index. Use None for default range."
|
||||
);
|
||||
Some(RowIndex::Range(ref r)) => {
|
||||
// If the length of the range does not match the number of rows, panic.
|
||||
if r.end.saturating_sub(r.start) != num_rows {
|
||||
panic!(
|
||||
"Frame::new: Range index length ({}) mismatch matrix rows ({})",
|
||||
r.end.saturating_sub(r.start),
|
||||
num_rows
|
||||
);
|
||||
}
|
||||
// return the range as is.
|
||||
(RowIndex::Range(r.clone()), RowIndexLookup::None)
|
||||
}
|
||||
None => {
|
||||
// Default to a sequential range index.
|
||||
@ -1129,10 +1136,10 @@ mod tests {
|
||||
Frame::new(matrix, vec!["X", "Y"], Some(index));
|
||||
}
|
||||
#[test]
|
||||
#[should_panic(expected = "Cannot explicitly provide a Range index")]
|
||||
fn frame_new_panic_explicit_range() {
|
||||
let matrix = create_test_matrix_f64();
|
||||
let index = RowIndex::Range(0..3); // User cannot provide Range directly
|
||||
#[should_panic(expected = "Frame::new: Range index length (4) mismatch matrix rows (3)")]
|
||||
fn frame_new_panic_invalid_explicit_range_index() {
|
||||
let matrix = create_test_matrix_f64(); // 3 rows
|
||||
let index = RowIndex::Range(0..4); // Range 0..4 but only 3 rows
|
||||
Frame::new(matrix, vec!["A", "B"], Some(index));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user