@@ -674,7 +674,7 @@ def test_change_datatype_dfs0(tmp_path: Path) -> None:
674
674
assert np .allclose (org , new , rtol = 1e-08 , atol = 1e-10 , equal_nan = True )
675
675
676
676
677
- def test_derived_variables (tmp_path : Path ) -> None :
677
+ def test_transform_variables (tmp_path : Path ) -> None :
678
678
from mikeio .generic import DerivedItem , transform
679
679
680
680
infilename = "tests/testdata/oresundHD_run1.dfsu"
@@ -688,7 +688,7 @@ def test_derived_variables(tmp_path: Path) -> None:
688
688
)
689
689
]
690
690
691
- transform (infilename , outfilename , vars = items )
691
+ transform (infilename , outfilename , vars = items , keep_existing_items = False )
692
692
dfs = mikeio .Dfsu2DH (outfilename )
693
693
assert dfs .items [0 ].type == mikeio .EUMType .Current_Speed
694
694
assert len (dfs .items ) == 1
@@ -703,9 +703,29 @@ def test_derived_variables(tmp_path: Path) -> None:
703
703
704
704
outfilename2 = tmp_path / "existing_and_speed.dfsu"
705
705
706
- transform (infilename , outfilename2 , vars = sel_items )
706
+ transform (infilename , outfilename2 , vars = sel_items , keep_existing_items = False )
707
707
dfs2 = mikeio .Dfsu2DH (outfilename2 )
708
708
assert dfs2 .items [0 ].name == "Total water depth" # existing item
709
709
assert dfs2 .items [1 ].name == "U velocity" # existing item
710
710
assert dfs2 .items [2 ].name == "V velocity" # existing item
711
711
assert dfs2 .items [3 ].name == "Current Speed" # derived item
712
+
713
+
714
+ def test_transform_can_include_existing_items (tmp_path : Path ) -> None :
715
+ from mikeio .generic import DerivedItem , transform
716
+
717
+ infilename = "tests/testdata/oresundHD_run1.dfsu"
718
+ outfilename = tmp_path / "need_for_speed.dfsu"
719
+
720
+ items = [
721
+ DerivedItem (
722
+ name = "Current Speed" ,
723
+ type = mikeio .EUMType .Current_Speed ,
724
+ func = lambda x : np .sqrt (x ["U velocity" ] ** 2 + x ["V velocity" ] ** 2 ),
725
+ )
726
+ ]
727
+
728
+ transform (infilename , outfilename , vars = items , keep_existing_items = True )
729
+ dfs = mikeio .Dfsu2DH (outfilename )
730
+ assert dfs .items [- 1 ].type == mikeio .EUMType .Current_Speed
731
+ assert len (dfs .items ) == 5
0 commit comments