Compare commits

..

No commits in common. "6e0ea441e40395ce5e8fe5a1b22d7829a0adb583" and "349ae52629d77a47197899849a3947466c8b8781" have entirely different histories.

View File

@ -232,17 +232,10 @@ impl<T: Clone + PartialEq> Frame<T> {
}
(RowIndex::Date(vals), RowIndexLookup::Date(lookup))
}
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)
Some(RowIndex::Range(_)) => {
panic!(
"Frame::new: Cannot explicitly provide a Range index. Use None for default range."
);
}
None => {
// Default to a sequential range index.
@ -1124,10 +1117,10 @@ mod tests {
Frame::new(matrix, vec!["X", "Y"], Some(index));
}
#[test]
#[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
#[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
Frame::new(matrix, vec!["A", "B"], Some(index));
}