|
2 | 2 |
|
3 | 3 | import pytest |
4 | 4 |
|
5 | | -from pyvcell._internal.simdata.fielddata import FieldDataFileMetadata, create_fielddata_filename, parse_fielddata_filename |
| 5 | +from pyvcell._internal.simdata.fielddata import ( |
| 6 | + FieldDataFileMetadata, |
| 7 | + create_fielddata_canonical_filename, |
| 8 | + parse_fielddata_canonical_filename, |
| 9 | + create_fielddata_template_filename, |
| 10 | + parse_fielddata_template_filename, |
| 11 | +) |
6 | 12 | from pyvcell._internal.simdata.simdata_models import VariableType |
7 | 13 |
|
8 | 14 |
|
9 | | -def test_parse_fielddata_filename_good() -> None: |
| 15 | +def test_parse_fielddata_canonical_filename_good() -> None: |
10 | 16 | file_name = "SimID_286243594_0_DEMO_fieldData_Channel0_5_23_Volume.fdat" |
11 | 17 |
|
12 | 18 | # "DEMO_fieldData_Channel0" is ambiguous, assume "DEMO_fieldData" is the fielddata_name |
13 | 19 | fd_name = "DEMO_fieldData" |
14 | 20 | expected_var_name = "Channel0" |
15 | | - ret = parse_fielddata_filename(file_name=file_name, fielddata_name=fd_name) |
| 21 | + ret = parse_fielddata_canonical_filename(file_name=file_name, fielddata_name=fd_name) |
16 | 22 | assert ret == (286243594, 0, fd_name, expected_var_name, VariableType.VOLUME, 5.23) |
17 | 23 | # round trip - create filename from parsed values and compare |
18 | | - assert file_name == create_fielddata_filename(sim_id=ret[0], job_id=ret[1], fd_name=ret[2], var_name=ret[3], var_type=ret[4], time=ret[5]) |
| 24 | + assert file_name == create_fielddata_canonical_filename( |
| 25 | + sim_id=ret[0], job_id=ret[1], fd_name=ret[2], var_name=ret[3], var_type=ret[4], time=ret[5] |
| 26 | + ) |
19 | 27 |
|
20 | 28 | # "DEMO_fieldData_Channel0" is ambiguous, assume "DEMO" is the fielddata_name |
21 | 29 | fd_name = "DEMO" |
22 | 30 | expected_var_name = "fieldData_Channel0" |
23 | | - ret = parse_fielddata_filename(file_name=file_name, fielddata_name=fd_name) |
| 31 | + ret = parse_fielddata_canonical_filename(file_name=file_name, fielddata_name=fd_name) |
24 | 32 | assert ret == (286243594, 0, fd_name, expected_var_name, VariableType.VOLUME, 5.23) |
25 | 33 | # round trip - create filename from parsed values and compare |
26 | | - assert file_name == create_fielddata_filename(sim_id=ret[0], job_id=ret[1], fd_name=ret[2], var_name=ret[3], var_type=ret[4], time=ret[5]) |
| 34 | + assert file_name == create_fielddata_canonical_filename( |
| 35 | + sim_id=ret[0], job_id=ret[1], fd_name=ret[2], var_name=ret[3], var_type=ret[4], time=ret[5] |
| 36 | + ) |
27 | 37 |
|
28 | 38 | # make sure integer time is parsed correctly |
29 | 39 | file_name = "SimID_286243594_0_DEMO_fieldData_Channel0_5_0_Volume.fdat" |
30 | 40 | # DEMO_fieldData_Channel0 is f'{fielddata_name}_{var_name}' |
31 | 41 | fd_name = "DEMO_fieldData" |
32 | 42 | expected_var_name = "Channel0" |
33 | | - ret = parse_fielddata_filename(file_name=file_name, fielddata_name=fd_name) |
| 43 | + ret = parse_fielddata_canonical_filename(file_name=file_name, fielddata_name=fd_name) |
34 | 44 | assert ret == (286243594, 0, fd_name, expected_var_name, VariableType.VOLUME, 5.0) |
35 | 45 | # round trip - create filename from parsed values and compare |
36 | | - assert file_name == create_fielddata_filename(sim_id=ret[0], job_id=ret[1], fd_name=ret[2], var_name=ret[3], var_type=ret[4], time=ret[5]) |
| 46 | + assert file_name == create_fielddata_canonical_filename( |
| 47 | + sim_id=ret[0], job_id=ret[1], fd_name=ret[2], var_name=ret[3], var_type=ret[4], time=ret[5] |
| 48 | + ) |
37 | 49 |
|
38 | 50 |
|
39 | | -def test_parse_fielddata_filename_bad() -> None: |
| 51 | +def test_parse_fielddata_canonical_filename_bad() -> None: |
40 | 52 | file_name = "SimID_286243594_0_DEMO_fieldData_Channel0_5_23_Volume.fdat" |
41 | 53 |
|
42 | 54 | # bad fielddata_name |
43 | 55 | fd_name = "DEMO_fieldData2" |
44 | 56 | with pytest.raises(ValueError) as exc: |
45 | | - parse_fielddata_filename(file_name=file_name, fielddata_name=fd_name) |
46 | | - assert exc.value.args[0] == f'filename {file_name} with fielddata_name {fd_name} does not match expected format' |
| 57 | + parse_fielddata_canonical_filename(file_name=file_name, fielddata_name=fd_name) |
| 58 | + assert exc.value.args[0] == f"filename {file_name} with fielddata_name {fd_name} does not match expected format" |
47 | 59 |
|
48 | 60 | # bad prefix |
49 | 61 | file_name = "Sim_286243594_0_DEMO_fieldData_Channel0_5_23_Volume.fdat" |
50 | 62 | fd_name = "DEMO_fieldData" |
51 | 63 | with pytest.raises(ValueError) as exc: |
52 | | - parse_fielddata_filename(file_name=file_name, fielddata_name=fd_name) |
53 | | - assert exc.value.args[0] == f'filename {file_name} with fielddata_name {fd_name} does not match expected format' |
| 64 | + parse_fielddata_canonical_filename(file_name=file_name, fielddata_name=fd_name) |
| 65 | + assert exc.value.args[0] == f"filename {file_name} with fielddata_name {fd_name} does not match expected format" |
54 | 66 |
|
55 | 67 | # bad suffix |
56 | 68 | file_name = "SimID_286243594_0_DEMO_fieldData_Channel0_5_23_Volume.fda" |
57 | 69 | fd_name = "DEMO_fieldData" |
58 | 70 | with pytest.raises(ValueError) as exc: |
59 | | - parse_fielddata_filename(file_name=file_name, fielddata_name=fd_name) |
60 | | - assert exc.value.args[0] == f'filename {file_name} with fielddata_name {fd_name} does not match expected format' |
| 71 | + parse_fielddata_canonical_filename(file_name=file_name, fielddata_name=fd_name) |
| 72 | + assert exc.value.args[0] == f"filename {file_name} with fielddata_name {fd_name} does not match expected format" |
| 73 | + |
| 74 | + |
| 75 | +def test_parse_fielddata_template_filename_good() -> None: |
| 76 | + file_name = "SimID_SIMULATIONKEY_JOBINDEX_DEMO_fieldData_Channel0_5_23_Volume.fdat" |
| 77 | + |
| 78 | + # "DEMO_fieldData_Channel0" is ambiguous, assume "DEMO_fieldData" is the fielddata_name |
| 79 | + fd_name = "DEMO_fieldData" |
| 80 | + expected_var_name = "Channel0" |
| 81 | + ret = parse_fielddata_template_filename(file_name=file_name, fielddata_name=fd_name) |
| 82 | + assert ret == (fd_name, expected_var_name, VariableType.VOLUME, 5.23) |
| 83 | + # round trip - create filename from parsed values and compare |
| 84 | + assert file_name == create_fielddata_template_filename( |
| 85 | + fd_name=ret[0], var_name=ret[1], var_type=ret[2], time=ret[3] |
| 86 | + ) |
| 87 | + |
| 88 | + # "DEMO_fieldData_Channel0" is ambiguous, assume "DEMO" is the fielddata_name |
| 89 | + fd_name = "DEMO" |
| 90 | + expected_var_name = "fieldData_Channel0" |
| 91 | + ret = parse_fielddata_template_filename(file_name=file_name, fielddata_name=fd_name) |
| 92 | + assert ret == (fd_name, expected_var_name, VariableType.VOLUME, 5.23) |
| 93 | + # round trip - create filename from parsed values and compare |
| 94 | + assert file_name == create_fielddata_template_filename( |
| 95 | + fd_name=ret[0], var_name=ret[1], var_type=ret[2], time=ret[3] |
| 96 | + ) |
| 97 | + |
| 98 | + # make sure integer time is parsed correctly |
| 99 | + file_name = "SimID_SIMULATIONKEY_JOBINDEX_DEMO_fieldData_Channel0_5_0_Volume.fdat" |
| 100 | + # DEMO_fieldData_Channel0 is f'{fielddata_name}_{var_name}' |
| 101 | + fd_name = "DEMO_fieldData" |
| 102 | + expected_var_name = "Channel0" |
| 103 | + ret = parse_fielddata_template_filename(file_name=file_name, fielddata_name=fd_name) |
| 104 | + assert ret == (fd_name, expected_var_name, VariableType.VOLUME, 5.0) |
| 105 | + # round trip - create filename from parsed values and compare |
| 106 | + assert file_name == create_fielddata_template_filename( |
| 107 | + fd_name=ret[0], var_name=ret[1], var_type=ret[2], time=ret[3] |
| 108 | + ) |
| 109 | + |
| 110 | + |
| 111 | +def test_parse_fielddata_template_filename_bad() -> None: |
| 112 | + file_name = "SimID_SIMULATIONKEY_JOBINDEX_DEMO_fieldData_Channel0_5_23_Volume.fdat" |
| 113 | + |
| 114 | + # bad fielddata_name |
| 115 | + fd_name = "DEMO_fieldData2" |
| 116 | + with pytest.raises(ValueError) as exc: |
| 117 | + parse_fielddata_template_filename(file_name=file_name, fielddata_name=fd_name) |
| 118 | + assert exc.value.args[0] == f"filename {file_name} with fielddata_name {fd_name} does not match expected format" |
| 119 | + |
| 120 | + # bad prefix |
| 121 | + file_name = "Sim_SIMULATIONKEY_JOBINDEX_DEMO_fieldData_Channel0_5_23_Volume.fdat" |
| 122 | + fd_name = "DEMO_fieldData" |
| 123 | + with pytest.raises(ValueError) as exc: |
| 124 | + parse_fielddata_template_filename(file_name=file_name, fielddata_name=fd_name) |
| 125 | + assert exc.value.args[0] == f"filename {file_name} with fielddata_name {fd_name} does not match expected format" |
| 126 | + |
| 127 | + # bad suffix |
| 128 | + file_name = "SimID_SIMULATIONKEY_JOBINDEX_DEMO_fieldData_Channel0_5_23_Volume.fda" |
| 129 | + fd_name = "DEMO_fieldData" |
| 130 | + with pytest.raises(ValueError) as exc: |
| 131 | + parse_fielddata_template_filename(file_name=file_name, fielddata_name=fd_name) |
| 132 | + assert exc.value.args[0] == f"filename {file_name} with fielddata_name {fd_name} does not match expected format" |
| 133 | + |
61 | 134 |
|
62 | 135 | def test_read_fielddata_file_metadata(fielddata_file_path: Path) -> None: |
63 | 136 | fd_metadata = FieldDataFileMetadata(field_data_file=fielddata_file_path) |
|
0 commit comments