def test_str2df(): """Test parsing of a direct string""" swofstr = """ SWOF 0 0 1 1 1 1 0 0 / """ satdf = satfunc.df(swofstr) assert len(satdf) == 2 inc = satfunc.df2ecl_swof(satdf) df_from_inc = satfunc.df(inc) pd.testing.assert_frame_equal(satdf, df_from_inc) swofstr2 = """ -- RUNSPEC -- (this line is optional) TABDIMS 2 / -- PROPS -- (optional) SWOF 0 0 1 1 1 1 0 0 / 0 0 1 1 0.5 0.5 0.5 0.5 1 1 0 0 / """ satdf2 = satfunc.df(swofstr2) assert "SATNUM" in satdf assert len(satdf2["SATNUM"].unique()) == 2 assert len(satdf2) == 5 inc = satfunc.df2ecl(satdf) df_from_inc = satfunc.df(inc) pd.testing.assert_frame_equal(satdf, df_from_inc) # Try empty/bogus data: bogusdf = satfunc.deck2df("SWRF\n 0 /\n") # (warnings should be issued) assert bogusdf.empty # Test with bogus E100 keywords: tricky = satfunc.deck2df("FOO\n\nSWOF\n 0 0 0 1/ 1 1 1 0\n/\n") assert not tricky.empty assert len(tricky["SATNUM"].unique()) == 1
def test_str2df(): """Test parsing of a direct string""" swofstr = """ SWOF 0 0 1 1 1 1 0 0 / """ deck = EclFiles.str2deck(swofstr) satdf = satfunc.deck2df(deck) assert len(satdf) == 2 swofstr2 = """ -- RUNSPEC -- (this line is optional) TABDIMS 2 / -- PROPS -- (optional) SWOF 0 0 1 1 1 1 0 0 / 0 0 1 1 0.5 0.5 0.5 0.5 1 1 0 0 / """ deck2 = EclFiles.str2deck(swofstr2) satdf2 = satfunc.deck2df(deck2) assert "SATNUM" in satdf assert len(satdf2["SATNUM"].unique()) == 2 assert len(satdf2) == 5 # Try empty/bogus data: bogusdf = satfunc.deck2df("SWRF\n 0 /\n") # (warnings should be issued) assert bogusdf.empty # Test with bogus E100 keywords: tricky = satfunc.deck2df("FOO\n\nSWOF\n 0 0 0 1/ 1 1 1 0\n/\n") assert not tricky.empty assert len(tricky["SATNUM"].unique()) == 1
def test_sgof_satnuminferrer(tmpdir): """Test inferring of SATNUMS in SGOF strings""" sgofstr = """ SGOF 0 0 1 1 1 1 0 0 / 0 0 1 1 0.5 0.5 0.5 0.5 1 1 0 0 / 0 0 1 0 0.1 0.1 0.1 0.1 1 1 0 0 / """ tmpdir.chdir() assert inferdims.guess_dim(sgofstr, "TABDIMS", 0) == 3 sgofdf = satfunc.deck2df(sgofstr) assert "SATNUM" in sgofdf assert len(sgofdf["SATNUM"].unique()) == 3 assert len(sgofdf) == 8 # This illustrates how we cannot do it, CRITICAL # logging errors will be displayed: sgofdf = satfunc.deck2df(EclFiles.str2deck(sgofstr)) assert len(sgofdf["SATNUM"].unique()) == 1 # Write to file and try to parse it with command line: sgoffile = "__sgof_tmp.txt" with open(sgoffile, "w") as sgof_f: sgof_f.write(sgofstr) sys.argv = ["ecl2csv", "satfunc", sgoffile, "-o", sgoffile + ".csv"] ecl2csv.main() parsed_sgof = pd.read_csv(sgoffile + ".csv") assert len(parsed_sgof["SATNUM"].unique()) == 3
def test_satfunc2df(): """Test that dataframes are produced""" eclfiles = EclFiles(DATAFILE) satdf = satfunc.deck2df(eclfiles.get_ecldeck()) assert not satdf.empty assert "KEYWORD" in satdf # for all data assert "SATNUM" in satdf # for all data assert "SWOF" in satdf["KEYWORD"].unique() assert "SGOF" in satdf["KEYWORD"].unique() assert "SW" in satdf assert "KRW" in satdf assert "KROW" in satdf assert "SG" in satdf assert "KROG" in satdf assert satdf["SATNUM"].unique() == [1]
def test_satfunc2df(): """Test that dataframes are produced""" eclfiles = EclFiles(DATAFILE) satdf = satfunc.deck2df(eclfiles.get_ecldeck()) assert not satdf.empty assert "KEYWORD" in satdf # for all data assert "SATNUM" in satdf # for all data assert "SWOF" in satdf["KEYWORD"].unique() assert "SGOF" in satdf["KEYWORD"].unique() assert "SW" in satdf assert "KRW" in satdf assert "KROW" in satdf assert "SG" in satdf assert "KROG" in satdf assert satdf["SATNUM"].unique() == [1] inc = satfunc.df2ecl(satdf) df_from_inc = satfunc.df(inc) pd.testing.assert_frame_equal( satdf.sort_values(["SATNUM", "KEYWORD"]), df_from_inc.sort_values(["SATNUM", "KEYWORD"]), )