diff --git a/src/ansys/dpf/core/core.py b/src/ansys/dpf/core/core.py index 089fe71086a..a0433a6d958 100644 --- a/src/ansys/dpf/core/core.py +++ b/src/ansys/dpf/core/core.py @@ -292,7 +292,7 @@ def _deep_copy(dpf_entity, server=None): if stream_type == 1: out = serializer.get_output(0, types.bytes) else: - out = serializer.get_output(0, types.string) + out = serializer.outputs.serialized_string # Required for retro with 241 deserializer.connect(-1, stream_type) deserializer.connect(0, out) type_map = types_enum_to_types() diff --git a/tests/conftest.py b/tests/conftest.py index 84c6ce0e122..bd4afc54d66 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -260,6 +260,21 @@ def return_ds(server=None): return return_ds +@pytest.fixture() +def fluent_multiphase(): + """Return a function which creates a data sources + with a cas and a dat file of fluent multiphase case.""" + + def return_ds(server=None): + ds = core.DataSources(server=server) + files = examples.download_fluent_multi_phase(server=server) + ds.set_result_file_path(files["cas"], "cas") + ds.add_file_path(files["dat"], "dat") + return ds + + return return_ds + + @pytest.fixture() def cfx_heating_coil(): """Return a function which creates a data sources diff --git a/tests/test_field.py b/tests/test_field.py index 56a525ecd6c..dacf0785c9e 100644 --- a/tests/test_field.py +++ b/tests/test_field.py @@ -1298,22 +1298,43 @@ def test_field_no_inprocess_localfield(server_in_process, allkindofcomplexity): assert field == local_field -def test_deep_copy_2_field(server_type, server_in_process): - data = np.random.random(10) - field_a = dpf.core.field_from_array(data, server=server_type) - assert np.allclose(field_a.data, data) +if SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0: + def test_deep_copy_2_field(server_type, server_in_process): + data = np.random.random(10) + field_a = dpf.core.field_from_array(data, server=server_type) + assert np.allclose(field_a.data, data) - out = dpf.core.core._deep_copy(field_a, server_in_process) - assert np.allclose(out.data, data) + out = dpf.core.core._deep_copy(field_a, server_in_process) + assert np.allclose(out.data, data) -def test_deep_copy_2_field_remote(server_type, server_type_remote_process): - data = np.random.random(10) - field_a = dpf.core.field_from_array(data, server=server_type) - assert np.allclose(field_a.data, data) + def test_deep_copy_2_field_remote(server_type, server_type_remote_process): + data = np.random.random(10) + field_a = dpf.core.field_from_array(data, server=server_type) + assert np.allclose(field_a.data, data) - out = dpf.core.core._deep_copy(field_a, server_type_remote_process) - assert np.allclose(out.data, data) + out = dpf.core.core._deep_copy(field_a, server_type_remote_process) + assert np.allclose(out.data, data) + +elif conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_6_0: + # before server version 8.0 deep copying between a legacy grpc client and another client type + # is not supported. + def test_deep_copy_2_field(server_clayer, server_in_process): + data = np.random.random(10) + field_a = dpf.core.field_from_array(data, server=server_clayer) + assert np.allclose(field_a.data, data) + + out = dpf.core.core._deep_copy(field_a, server_in_process) + assert np.allclose(out.data, data) + + + def test_deep_copy_2_field_remote(server_type): + data = np.random.random(10) + field_a = dpf.core.field_from_array(data, server=server_type) + assert np.allclose(field_a.data, data) + + out = dpf.core.core._deep_copy(field_a, server_type) + assert np.allclose(out.data, data) @pytest.mark.skipif(not SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0, reason="Available for servers >=8.0") diff --git a/tests/test_meshregion.py b/tests/test_meshregion.py index 4bb6b6e7501..62fdfd99053 100644 --- a/tests/test_meshregion.py +++ b/tests/test_meshregion.py @@ -547,6 +547,7 @@ def test_has_element_shape_meshed_region(server_type): @pytest.mark.slow def test_mesh_deep_copy(allkindofcomplexity, server_type): + # Small mesh model = dpf.core.Model(allkindofcomplexity, server=server_type) mesh = model.metadata.meshed_region copy = mesh.deep_copy() @@ -575,6 +576,16 @@ def test_mesh_deep_copy(allkindofcomplexity, server_type): ) +@pytest.mark.skipif( + not conftest.SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_7_0, reason="Available with CFF starting 7.0" +) +def test_mesh_deep_copy_large(fluent_multiphase, server_type): + model = dpf.core.Model(fluent_multiphase(server=server_type), server=server_type) + mesh = model.metadata.meshed_region + copy = mesh.deep_copy() + assert np.allclose(copy.nodes.scoping.ids, mesh.nodes.scoping.ids) + + @pytest.mark.slow def test_mesh_deep_copy2(simple_bar_model, server_type): mesh = simple_bar_model.metadata.meshed_region diff --git a/tests/test_operator.py b/tests/test_operator.py index 0c45d47ca67..3ebdeb7a183 100644 --- a/tests/test_operator.py +++ b/tests/test_operator.py @@ -19,6 +19,7 @@ SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_4_0, SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_5_0, SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_6_2, + SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0, ) # Check for ANSYS installation env var @@ -1337,6 +1338,7 @@ def test_connect_get_non_ascii_string(server_type): assert str == str_out +@pytest.mark.skipif(not SERVERS_VERSION_GREATER_THAN_OR_EQUAL_TO_8_0, reason="Available for servers >=8.0") def test_deep_copy_non_ascii_string(server_type): str = "\N{GREEK CAPITAL LETTER DELTA}" str_out = dpf.core.core._deep_copy(str, server_type)