|
19 | 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 | 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21 | 21 | # SOFTWARE.
|
22 |
| - |
23 | 22 | import numpy as np
|
| 23 | +import pytest |
24 | 24 |
|
25 | 25 | from ansys.dpf import core as dpf
|
26 | 26 | from ansys.dpf.core import fields_factory
|
| 27 | +import conftest |
27 | 28 |
|
28 | 29 |
|
29 | 30 | def test_perf_vec_setters(server_type):
|
@@ -58,3 +59,48 @@ def test_perf_vec_getters(server_type):
|
58 | 59 | for index, chunk in enumerate(chunks):
|
59 | 60 | d = field.data[chunk]
|
60 | 61 | d = field.scoping.ids[chunk]
|
| 62 | + |
| 63 | + |
| 64 | +def test_update_empty_dpf_vector_prop_field(server_type): |
| 65 | + prop_field = dpf.PropertyField(server=server_type) |
| 66 | + prop_field.data = np.zeros((100)) |
| 67 | + prop_field.scoping.ids = list(range(1, 100)) |
| 68 | + assert np.allclose(prop_field.get_entity_data(1), [0]) |
| 69 | + dp = prop_field._data_pointer |
| 70 | + dp = None |
| 71 | + assert np.allclose(prop_field.get_entity_data(1), [0]) |
| 72 | + |
| 73 | + |
| 74 | +def test_update_empty_dpf_vector_field(server_type): |
| 75 | + field = dpf.Field(server=server_type) |
| 76 | + field.data = np.zeros((100), dtype=np.double) |
| 77 | + field.scoping.ids = list(range(1, 100)) |
| 78 | + assert np.allclose(field.get_entity_data(1), [0]) |
| 79 | + dp = field._data_pointer |
| 80 | + dp = None |
| 81 | + assert np.allclose(field.get_entity_data(1), [0]) |
| 82 | + |
| 83 | + |
| 84 | +@pytest.mark.skipif( |
| 85 | + not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_7_0, |
| 86 | + reason="change in memory ownership in server 7.0", |
| 87 | +) |
| 88 | +def test_update_empty_dpf_vector_string_field(server_type): |
| 89 | + string_field = dpf.StringField(server=server_type) |
| 90 | + string_field.data = ["high", "goodbye", "hello"] |
| 91 | + string_field.scoping.ids = list(range(1, 3)) |
| 92 | + assert string_field.get_entity_data(1) == ["goodbye"] |
| 93 | + dp = string_field._data_pointer |
| 94 | + dp = None |
| 95 | + assert string_field.get_entity_data(1) == ["goodbye"] |
| 96 | + |
| 97 | + |
| 98 | +@conftest.raises_for_servers_version_under("5.0") |
| 99 | +def test_update_empty_dpf_vector_custom_type_field(server_type): |
| 100 | + field = dpf.CustomTypeField(unitary_type=np.double, server=server_type) |
| 101 | + field.data = np.zeros((100), dtype=np.double) |
| 102 | + field.scoping.ids = list(range(1, 100)) |
| 103 | + assert np.allclose(field.get_entity_data(1), [0]) |
| 104 | + dp = field._data_pointer |
| 105 | + dp = None |
| 106 | + assert np.allclose(field.get_entity_data(1), [0]) |
0 commit comments