def test_multiply_constant(tmpdir): infilename = "tests/testdata/random.dfs0" outfilename = os.path.join(tmpdir.dirname, "mult.dfs0") scale(infilename, outfilename, factor=1.5) org = mikeio.read(infilename) scaled = mikeio.read(outfilename) orgvalue = org.data[0][0] expected = orgvalue * 1.5 scaledvalue = scaled.data[0][0] assert scaledvalue == pytest.approx(expected)
def test_add_constant(tmpdir): infilename = "tests/testdata/random.dfs0" outfilename = os.path.join(tmpdir.dirname, "add.dfs0") scale(infilename, outfilename, offset=100.0) org = mikeio.read(infilename) scaled = mikeio.read(outfilename) orgvalue = org.data[0][0] expected = orgvalue + 100.0 scaledvalue = scaled.data[0][0] assert scaledvalue == pytest.approx(expected)
def test_linear_transform_dfsu(tmpdir): infilename = "tests/testdata/HD2D.dfsu" outfilename = os.path.join(tmpdir.dirname, "linear.dfsu") scale(infilename, outfilename, offset=-20.0, factor=1.5) org = mikeio.read(infilename) scaled = mikeio.read(outfilename) orgvalue = org.data[0][0] expected = orgvalue * 1.5 - 20.0 scaledvalue = scaled.data[0][0] assert scaledvalue == pytest.approx(expected)
def test_multiply_constant_single_item_name(tmpdir): infilename = "tests/testdata/wind_north_sea.dfsu" outfilename = os.path.join(tmpdir.dirname, "multname.dfsu") scale(infilename, outfilename, factor=1.5, items=["Wind speed"]) org = mikeio.read(infilename) scaled = mikeio.read(outfilename) orgvalue_speed = org["Wind speed"][0, 0] expected_speed = orgvalue_speed * 1.5 scaledvalue_speed = scaled["Wind speed"][0, 0] assert scaledvalue_speed == pytest.approx(expected_speed) orgvalue_dir = org["Wind direction"][0, 0] expected_dir = orgvalue_dir scaledvalue_dir = scaled["Wind direction"][0, 0] assert scaledvalue_dir == pytest.approx(expected_dir)
def test_add_constant_delete_values_unchanged(tmpdir): infilename = "tests/testdata/gebco_sound.dfs2" outfilename = os.path.join(tmpdir.dirname, "adj.dfs2") scale(infilename, outfilename, offset=-2.1, items=["Elevation"]) org = mikeio.read(infilename) scaled = mikeio.read(outfilename) orgvalue = org["Elevation"][0, 0, 0] scaledvalue = scaled["Elevation"][0, 0, 0] assert scaledvalue == pytest.approx(orgvalue - 2.1) orgvalue = org["Elevation"][0, 100, 0] assert np.isnan(orgvalue) scaledvalue = scaled["Elevation"][0, 100, 0] assert np.isnan(scaledvalue)
def test_multiply_constant_single_item_number(tmpdir): infilename = "tests/testdata/wind_north_sea.dfsu" outfilename = os.path.join(tmpdir.dirname, "mult.dfsu") scale(infilename, outfilename, factor=1.5, item_numbers=[0]) org = mikeio.read(infilename) scaled = mikeio.read(outfilename) orgvalue_speed = org.data[0][0][0] expected_speed = orgvalue_speed * 1.5 scaledvalue_speed = scaled.data[0][0][0] assert scaledvalue_speed == pytest.approx(expected_speed) orgvalue_dir = org.data[1][0][0] expected_dir = orgvalue_dir scaledvalue_dir = scaled.data[1][0][0] assert scaledvalue_dir == pytest.approx(expected_dir)
def test_multiply_constant_delete_values_unchanged_2(tmpdir): infilename = "tests/testdata/random_two_item.dfs2" outfilename = os.path.join(tmpdir.dirname, "adj.dfs2") item_name = "testing water level" scale(infilename, outfilename, factor=1000.0, items=[item_name]) org = mikeio.read(infilename) scaled = mikeio.read(outfilename) orgvalue = org[item_name][0, 0, 0] scaledvalue = scaled[item_name][0, 0, 0] assert scaledvalue == pytest.approx(orgvalue * 1000.0) orgvalue = org[item_name][0, 10, 0] assert np.isnan(orgvalue) scaledvalue = scaled[item_name][0, 10, 0] assert np.isnan(scaledvalue)