Skip to content

Commit

Permalink
uncomment tests for custom type fields (#1515)
Browse files Browse the repository at this point in the history
  • Loading branch information
cbellot000 authored Apr 24, 2024
1 parent b777188 commit d2545d4
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 72 deletions.
6 changes: 5 additions & 1 deletion .github/workflows/scripts/separate_long_core_tests.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ New-Item -Path ".\" -Name "test_workflow" -ItemType "directory"
New-Item -Path ".\" -Name "test_remote_workflow" -ItemType "directory"
New-Item -Path ".\" -Name "test_remote_operator" -ItemType "directory"
New-Item -Path ".\" -Name "test_service" -ItemType "directory"
New-Item -Path ".\" -Name "test_custom_type_field" -ItemType "directory"
Copy-Item -Path "tests\conftest.py" -Destination ".\test_launcher\"
Copy-Item -Path "tests\conftest.py" -Destination ".\test_server\"
Copy-Item -Path "tests\conftest.py" -Destination ".\test_local_server\"
Expand All @@ -14,6 +15,7 @@ Copy-Item -Path "tests\conftest.py" -Destination ".\test_workflow\"
Copy-Item -Path "tests\conftest.py" -Destination ".\test_remote_workflow\"
Copy-Item -Path "tests\conftest.py" -Destination ".\test_remote_operator\"
Copy-Item -Path "tests\conftest.py" -Destination ".\test_service\"
Copy-Item -Path "tests\conftest.py" -Destination ".\test_custom_type_field\"
Copy-Item -Path "tests\test_launcher.py" -Destination ".\test_launcher\"
Copy-Item -Path "tests\test_server.py" -Destination ".\test_server\"
Copy-Item -Path "tests\test_local_server.py" -Destination ".\test_local_server\"
Expand All @@ -22,11 +24,13 @@ Copy-Item -Path "tests\test_workflow.py" -Destination ".\test_workflow\"
Copy-Item -Path "tests\test_remote_workflow.py" -Destination ".\test_remote_workflow\"
Copy-Item -Path "tests\test_remote_operator.py" -Destination ".\test_remote_operator\"
Copy-Item -Path "tests\test_service.py" -Destination ".\test_service\"
Copy-Item -Path "tests\test_custom_type_field.py" -Destination ".\test_custom_type_field\"
Remove-Item -Path "tests\test_server.py"
Remove-Item -Path "tests\test_launcher.py"
Remove-Item -Path "tests\test_local_server.py"
Remove-Item -Path "tests\test_multi_server.py"
Remove-Item -Path "tests\test_workflow.py"
Remove-Item -Path "tests\test_remote_workflow.py"
Remove-Item -Path "tests\test_remote_operator.py"
Remove-Item -Path "tests\test_service.py"
Remove-Item -Path "tests\test_service.py"
Remove-Item -Path "tests\test_custom_type_field.py"
13 changes: 13 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -351,6 +351,19 @@ jobs:
uses: ansys/pydpf-actions/[email protected]
if: always()

- name: "Test API test_custom_type_field"
uses: nick-fields/retry@v2
with:
timeout_minutes: 2
max_attempts: 2
shell: bash
command: |
pytest $DEBUG $COVERAGE $RERUNS --junitxml=../tests/junit/test-results11.xml test_custom_type_field/.
- name: "Kill all servers"
uses: ansys/pydpf-actions/[email protected]
if: always()

- name: "Upload Test Results"
uses: actions/upload-artifact@v3
with:
Expand Down
143 changes: 72 additions & 71 deletions tests/test_custom_type_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,77 +114,78 @@ def test_set_get_field_def_custom_type_field(server_type):
assert field.name == "thing"


# @conftest.raises_for_servers_version_under("5.0")
# def test_mutable_data_custom_type_field(server_clayer):
# field = dpf.core.CustomTypeField(np.float64, nentities=20, server=server_clayer)
# field_def = dpf.core.FieldDefinition(server=server_clayer)
# field_def.dimensionality = dpf.core.Dimensionality({3}, dpf.core.natures.vector)
# field.field_definition = field_def
# scop = dpf.core.Scoping(ids=[1, 2, 3, 4], location="faces", server=server_clayer)
# field.scoping = scop
#
# data = np.empty((24,), dtype=np.float64)
# for i in range(0, 24):
# data[i] = i
# field.data = data
# field._data_pointer = [0, 6, 12, 18]
#
# vec = field.get_entity_data(0)
# assert np.allclose(vec, np.array(range(0, 6)).reshape(2, 3))
#
# vec[0][0] = 1
# vec[1][2] = 4
#
# assert np.allclose(vec, np.array([1, 1, 2, 3, 4, 4]).reshape(2, 3))
#
# vec.commit()
#
# assert np.allclose(field.get_entity_data(0), np.array([1, 1, 2, 3, 4, 4]).reshape(2, 3))
#
# vec = field.get_entity_data_by_id(2)
# assert np.allclose(vec, np.array(range(6, 12)).reshape(2, 3))
#
# vec[0][0] = 1
# vec[1][2] = 4
# assert np.allclose(vec, np.array([1, 7, 8, 9, 10, 4]).reshape(2, 3))
# vec = None
# assert np.allclose(field.get_entity_data_by_id(2), np.array([1, 7, 8, 9, 10, 4]).reshape(2, 3)
# )

# # not using a fixture on purpose: the instance of simple field SHOULD be owned by each test
# def get_float_field(server_clayer):
# field = dpf.core.CustomTypeField(np.float64, nentities=20, server=server_clayer)
# field_def = dpf.core.FieldDefinition(server=server_clayer)
# field_def.dimensionality = dpf.core.Dimensionality({3}, dpf.core.natures.vector)
# field.field_definition = field_def
# scop = dpf.core.Scoping(ids=[1, 2, 3, 4], location="faces", server=server_clayer)
# field.scoping = scop
#
# data = np.empty((24,), dtype=np.float64)
# for i in range(0, 24):
# data[i] = i
# field.data = data
# field._data_pointer = [0, 6, 12, 18]
# return field


# @conftest.raises_for_servers_version_under("5.0")
# def test_mutable_data_pointer_custom_type_field(server_clayer):
# float_field = get_float_field(server_clayer)
# assert np.allclose(float_field.get_entity_data(0), np.array(range(0, 6)).reshape(2, 3))
# assert np.allclose(float_field.get_entity_data(1), np.array(range(6, 12)).reshape(2, 3))
# vec = float_field._data_pointer
# vec[1] = 9
# vec[2] = 15
# vec.commit()
#
# assert np.allclose(float_field.get_entity_data(0), np.array(range(0, 9)).reshape(3, 3))
# assert np.allclose(float_field.get_entity_data(1), np.array(range(9, 15)).reshape(2, 3))
# vec[1] = 6
# vec[2] = 12
# vec = None
# assert np.allclose(float_field.get_entity_data(0), np.array(range(0, 6)).reshape(2, 3))
# assert np.allclose(float_field.get_entity_data(1), np.array(range(6, 12)).reshape(2, 3))
@conftest.raises_for_servers_version_under("5.0")
def test_mutable_data_custom_type_field(server_clayer):
field = dpf.core.CustomTypeField(np.float64, nentities=20, server=server_clayer)
field_def = dpf.core.FieldDefinition(server=server_clayer)
field_def.dimensionality = dpf.core.Dimensionality({3}, dpf.core.natures.vector)
field.field_definition = field_def
scop = dpf.core.Scoping(ids=[1, 2, 3, 4], location="faces", server=server_clayer)
field.scoping = scop

data = np.empty((24,), dtype=np.float64)
for i in range(0, 24):
data[i] = i
field.data = data
field._data_pointer = [0, 6, 12, 18]

vec = field.get_entity_data(0)
assert np.allclose(vec, np.array(range(0, 6)).reshape(2, 3))

vec[0][0] = 1
vec[1][2] = 4

assert np.allclose(vec, np.array([1, 1, 2, 3, 4, 4]).reshape(2, 3))

vec.commit()

assert np.allclose(field.get_entity_data(0), np.array([1, 1, 2, 3, 4, 4]).reshape(2, 3))

vec = field.get_entity_data_by_id(2)
assert np.allclose(vec, np.array(range(6, 12)).reshape(2, 3))

vec[0][0] = 1
vec[1][2] = 4
assert np.allclose(vec, np.array([1, 7, 8, 9, 10, 4]).reshape(2, 3))
vec = None
assert np.allclose(field.get_entity_data_by_id(2), np.array([1, 7, 8, 9, 10, 4]).reshape(2, 3)
)


# not using a fixture on purpose: the instance of simple field SHOULD be owned by each test
def get_float_field(server_clayer):
field = dpf.core.CustomTypeField(np.float64, nentities=20, server=server_clayer)
field_def = dpf.core.FieldDefinition(server=server_clayer)
field_def.dimensionality = dpf.core.Dimensionality({3}, dpf.core.natures.vector)
field.field_definition = field_def
scop = dpf.core.Scoping(ids=[1, 2, 3, 4], location="faces", server=server_clayer)
field.scoping = scop

data = np.empty((24,), dtype=np.float64)
for i in range(0, 24):
data[i] = i
field.data = data
field._data_pointer = [0, 6, 12, 18]
return field


@conftest.raises_for_servers_version_under("5.0")
def test_mutable_data_pointer_custom_type_field(server_clayer):
float_field = get_float_field(server_clayer)
assert np.allclose(float_field.get_entity_data(0), np.array(range(0, 6)).reshape(2, 3))
assert np.allclose(float_field.get_entity_data(1), np.array(range(6, 12)).reshape(2, 3))
vec = float_field._data_pointer
vec[1] = 9
vec[2] = 15
vec.commit()

assert np.allclose(float_field.get_entity_data(0), np.array(range(0, 9)).reshape(3, 3))
assert np.allclose(float_field.get_entity_data(1), np.array(range(9, 15)).reshape(2, 3))
vec[1] = 6
vec[2] = 12
vec = None
assert np.allclose(float_field.get_entity_data(0), np.array(range(0, 6)).reshape(2, 3))
assert np.allclose(float_field.get_entity_data(1), np.array(range(6, 12)).reshape(2, 3))


@conftest.raises_for_servers_version_under("5.0")
Expand Down

0 comments on commit d2545d4

Please sign in to comment.