|
2 | 2 |
|
3 | 3 | import flow360 as fl |
4 | 4 | from flow360 import SI_unit_system, u |
5 | | -from flow360.component.simulation.outputs.output_fields import generate_predefined_udf |
| 5 | +from flow360.component.simulation.outputs.output_fields import ( |
| 6 | + generate_predefined_udf, |
| 7 | + remove_fields_subsumed_by_primitive_vars, |
| 8 | +) |
6 | 9 |
|
7 | 10 |
|
8 | 11 | @pytest.fixture |
@@ -137,3 +140,47 @@ def test_generate_field_udf_no_match(simulation_params): |
137 | 140 | """Test behavior when no matching predefined expression is found.""" |
138 | 141 | result = generate_predefined_udf("non_existent_field_for_udf", simulation_params) |
139 | 142 | assert result is None |
| 143 | + |
| 144 | + |
| 145 | +class TestRemoveFieldsSubsumedByPrimitiveVars: |
| 146 | + def test_removes_pressure_and_velocity_when_primitive_vars_present(self): |
| 147 | + fields = ["Cp", "primitiveVars", "pressure", "velocity", "Mach"] |
| 148 | + result = remove_fields_subsumed_by_primitive_vars(fields) |
| 149 | + assert "primitiveVars" in result |
| 150 | + assert "pressure" not in result |
| 151 | + assert "velocity" not in result |
| 152 | + assert "Cp" in result |
| 153 | + assert "Mach" in result |
| 154 | + |
| 155 | + def test_keeps_pressure_and_velocity_when_no_primitive_vars(self): |
| 156 | + fields = ["pressure", "velocity", "Cp"] |
| 157 | + result = remove_fields_subsumed_by_primitive_vars(fields) |
| 158 | + assert result == ["pressure", "velocity", "Cp"] |
| 159 | + |
| 160 | + def test_preserves_velocity_magnitude_when_velocity_removed(self): |
| 161 | + fields = ["primitiveVars", "velocity", "velocity_magnitude", "pressure"] |
| 162 | + result = remove_fields_subsumed_by_primitive_vars(fields) |
| 163 | + assert "velocity" not in result |
| 164 | + assert "pressure" not in result |
| 165 | + assert "velocity_magnitude" in result |
| 166 | + assert "primitiveVars" in result |
| 167 | + |
| 168 | + def test_no_op_on_empty_list(self): |
| 169 | + assert remove_fields_subsumed_by_primitive_vars([]) == [] |
| 170 | + |
| 171 | + def test_primitive_vars_only(self): |
| 172 | + fields = ["primitiveVars"] |
| 173 | + result = remove_fields_subsumed_by_primitive_vars(fields) |
| 174 | + assert result == ["primitiveVars"] |
| 175 | + |
| 176 | + def test_removes_pressure_only_when_velocity_absent(self): |
| 177 | + fields = ["primitiveVars", "pressure", "Cp"] |
| 178 | + result = remove_fields_subsumed_by_primitive_vars(fields) |
| 179 | + assert "pressure" not in result |
| 180 | + assert result == ["primitiveVars", "Cp"] |
| 181 | + |
| 182 | + def test_removes_velocity_only_when_pressure_absent(self): |
| 183 | + fields = ["primitiveVars", "velocity", "Mach"] |
| 184 | + result = remove_fields_subsumed_by_primitive_vars(fields) |
| 185 | + assert "velocity" not in result |
| 186 | + assert result == ["primitiveVars", "Mach"] |
0 commit comments