()
| 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() { |
nothing calls this directly
no test coverage detected