def test_decks(): """Test some string decks""" deckstr = """ OIL WATER GAS EQUIL 2000 200 2200 / """ deck = EclFiles.str2deck(deckstr) df = equil.deck2df(deck) assert df["OWC"].values == 2200 assert len(df) == 1 assert "IGNORE1" not in df deckstr = """ OIL WATER EQUIL 2000 200 2200 / """ deck = EclFiles.str2deck(deckstr) df = equil.deck2df(deck) assert df["OWC"].values == 2200 assert len(df) == 1 assert "IGNORE1" not in df deckstr = """ GAS WATER EQUIL 2000 200 2200 / """ deck = EclFiles.str2deck(deckstr) df = equil.deck2df(deck) assert df["GWC"].values == 2200 assert "OWC" not in df assert len(df) == 1 assert "IGNORE2" not in df deckstr = """ GAS OIL EQUIL 2000 200 2200 1 2100 3 / """ deck = EclFiles.str2deck(deckstr) df = equil.deck2df(deck) assert df["GOC"].values == 2100 assert "GWC" not in df assert "OWC" not in df assert len(df) == 1 assert "IGNORE2" not in df
def test_ntequl(): """Test that we can infer NTEQUL when not supplied""" deckstr = """ GAS OIL EQUIL 2000 200 2200 1 2100 3 / 3000 200 2200 1 2100 3 / """ df = equil.df(deckstr) assert set(df["GOC"].values) == set([2100, 2100]) assert len(df) == 2 assert df["EQLNUM"].min() == 1 assert df["EQLNUM"].max() == 2 # Supply correct NTEQUL instead of estimating df = equil.deck2df(deckstr, 2) assert len(df) == 2 inc = equil.df2ecl(df, withphases=True) df_from_inc = equil.df(inc) pd.testing.assert_frame_equal(df, df_from_inc, check_dtype=False) # Supplying wrong NTEQUIL: df = equil.deck2df(deckstr, 1) # We are not able to catch this situation.. assert len(df) == 1 # But this will fail: with pytest.raises(ValueError): equil.deck2df(deckstr, 3) deckstr = """ GAS OIL EQLDIMS 2 / EQUIL 2000 200 2200 1 2100 3 / 3000 200 2200 1 2100 3 / """ df = equil.df(deckstr) assert set(df["GOC"].values) == set([2100, 2100]) assert len(df) == 2 inc = equil.df2ecl(df, withphases=True) df_from_inc = equil.df(inc) pd.testing.assert_frame_equal(df, df_from_inc, check_dtype=False)
def test_ntequl(): """Test that we can infer NTEQUL when not supplied""" deckstr = """ GAS OIL EQUIL 2000 200 2200 1 2100 3 / 3000 200 2200 1 2100 3 / """ df = equil.deck2df(deckstr) assert set(df["GOC"].values) == set([2100, 2100]) assert len(df) == 2 # Supply correct NTEQUL instead of estimating df = equil.deck2df(deckstr, 2) assert len(df) == 2 # Supplying wrong NTEQUIL: df = equil.deck2df(deckstr, 1) # We are not able to catch this situation.. assert len(df) == 1 # But this will fail: with pytest.raises(ValueError): equil.deck2df(deckstr, 3) deckstr = """ GAS OIL EQLDIMS 2 / EQUIL 2000 200 2200 1 2100 3 / 3000 200 2200 1 2100 3 / """ df = equil.deck2df(deckstr) assert set(df["GOC"].values) == set([2100, 2100]) assert len(df) == 2
def test_equil2df(): """Test that dataframes are produced""" eclfiles = EclFiles(DATAFILE) equildf = equil.deck2df(eclfiles.get_ecldeck()) assert not equildf.empty