diff options
author | Laurent Mazare <laurent.mazare@gmail.com> | 2023-07-27 09:28:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-27 09:28:47 +0100 |
commit | f291065f6cac82827a47a736ebf78e4fc9c7c569 (patch) | |
tree | d8d7df22f561842bc5ea65f2b7ea3628d89336ab /candle-core/tests/indexing_tests.rs | |
parent | 209f06d7c37503892eac7e0cffe491657de1ab8a (diff) | |
download | candle-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.rs | 13 |
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(()) } |