MCPcopy Create free account
hub / github.com/PyO3/rust-numpy / view_without_base_object

Function view_without_base_object

src/borrow/shared.rs:528–554  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

526
527 #[test]
528 fn view_without_base_object() {
529 Python::attach(|py| {
530 let array = PyArray::<f64, _>::zeros(py, (1, 2, 3), false);
531
532 let locals = [("array", &array)].into_py_dict(py).unwrap();
533 let view = py
534 .eval(c_str!("array[:,:,0]"), None, Some(&locals))
535 .unwrap()
536 .cast_into::<PyArray2<f64>>()
537 .unwrap();
538 assert_ne!(
539 view.as_ptr().cast::<c_void>(),
540 array.as_ptr().cast::<c_void>()
541 );
542
543 let base = unsafe { (*view.as_array_ptr()).base };
544 assert_eq!(base as *mut c_void, array.as_ptr().cast::<c_void>());
545
546 let base_address = base_address(py, view.as_array_ptr());
547 assert_ne!(base_address, view.as_ptr().cast::<c_void>());
548 assert_eq!(base_address, base.cast::<c_void>());
549
550 let data_range = data_range(py, view.as_array_ptr());
551 assert_eq!(data_range.0, array.data() as *mut c_char);
552 assert_eq!(data_range.1, unsafe { array.data().add(4) } as *mut c_char);
553 });
554 }
555
556 #[test]
557 fn view_with_base_object() {

Callers

nothing calls this directly

Calls 4

zerosFunction · 0.85
base_addressFunction · 0.85
data_rangeFunction · 0.85
as_array_ptrMethod · 0.80

Tested by

no test coverage detected