summaryrefslogtreecommitdiff
path: root/candle-core/tests/indexing_tests.rs
diff options
context:
space:
mode:
authorLaurent Mazare <laurent.mazare@gmail.com>2023-07-27 09:28:47 +0100
committerGitHub <noreply@github.com>2023-07-27 09:28:47 +0100
commitf291065f6cac82827a47a736ebf78e4fc9c7c569 (patch)
treed8d7df22f561842bc5ea65f2b7ea3628d89336ab /candle-core/tests/indexing_tests.rs
parent209f06d7c37503892eac7e0cffe491657de1ab8a (diff)
downloadcandle-f291065f6cac82827a47a736ebf78e4fc9c7c569.tar.gz
candle-f291065f6cac82827a47a736ebf78e4fc9c7c569.tar.bz2
candle-f291065f6cac82827a47a736ebf78e4fc9c7c569.zip
Do not panic on empty ranges. (#257)
Diffstat (limited to 'candle-core/tests/indexing_tests.rs')
-rw-r--r--candle-core/tests/indexing_tests.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/candle-core/tests/indexing_tests.rs b/candle-core/tests/indexing_tests.rs
index 6a71b8fb..122f63b0 100644
--- a/candle-core/tests/indexing_tests.rs
+++ b/candle-core/tests/indexing_tests.rs
@@ -58,6 +58,19 @@ fn range_index() -> Result<()> {
let result = tensor.i(..=1)?;
assert_eq!(result.dims(), &[2, 3]);
assert_eq!(result.to_vec2::<u32>()?, &[[0, 1, 2], [3, 4, 5]]);
+
+ // Empty range
+ let result = tensor.i(1..1)?;
+ assert_eq!(result.dims(), &[0, 3]);
+ let empty: [[u32; 3]; 0] = [];
+ assert_eq!(result.to_vec2::<u32>()?, &empty);
+
+ // Similar to PyTorch, allow empty ranges when the computed length is negative.
+ #[allow(clippy::reversed_empty_ranges)]
+ let result = tensor.i(1..0)?;
+ assert_eq!(result.dims(), &[0, 3]);
+ let empty: [[u32; 3]; 0] = [];
+ assert_eq!(result.to_vec2::<u32>()?, &empty);
Ok(())
}