Exemple #1
0
def test_proxy():
    mdata = MAGICCInput("HISTRCP_CO2I_EMIS.IN")
    mdata.read(MAGICC6_DIR)

    # Get an attribute from the pandas DataFrame
    plot = mdata.plot
    assert plot.__module__ == "pandas.plotting._core"
Exemple #2
0
def test_direct_access():
    mdata = MAGICCInput("HISTRCP_CO2I_EMIS.IN")
    mdata.read(MAGICC6_DIR)

    result = mdata["CO2I_EMIS", "R5LAM", 1983]
    expected = mdata.df.xs(
        ("CO2I_EMIS", "SET", "GtC", "R5LAM"),
        level=["VARIABLE", "TODO", "UNITS", "REGION"],
        axis=1,
        drop_level=False,
    ).loc[[1983]]
    pd.testing.assert_frame_equal(result, expected)

    result = mdata["CO2I_EMIS", "R5LAM"]
    expected = mdata.df.xs(
        ("CO2I_EMIS", "SET", "GtC", "R5LAM"),
        level=["VARIABLE", "TODO", "UNITS", "REGION"],
        axis=1,
        drop_level=False,
    )
    pd.testing.assert_frame_equal(result, expected)

    result = mdata["CO2I_EMIS"]
    expected = mdata.df.xs(
        ("CO2I_EMIS", "SET", "GtC", slice(None)),
        level=["VARIABLE", "TODO", "UNITS", "REGION"],
        axis=1,
        drop_level=False,
    )
    pd.testing.assert_frame_equal(result, expected)

    result = mdata[1994]
    expected = mdata.df.loc[[1994]]
    pd.testing.assert_frame_equal(result, expected)
Exemple #3
0
def test_lazy_load():
    mdata = MAGICCInput("HISTRCP_CO2I_EMIS.IN")
    # I don't know where the file is yet..
    with MAGICC6() as magicc:
        # and now load the data
        mdata.read(magicc.run_dir)
        assert mdata.df is not None
Exemple #4
0
def test_early_call():
    mdata = MAGICCInput("HISTRCP_CO2I_EMIS.IN")

    with pytest.raises(ValueError):
        mdata["CO2I"]["R5LAM"]

    with pytest.raises(ValueError):
        mdata.plot()
Exemple #5
0
def test_load_magicc6_conc():
    mdata = MAGICCInput()
    mdata.read(MAGICC6_DIR, "HISTRCP_CO2_CONC.IN")

    assert (mdata.df.columns.get_level_values("UNITS") == "ppm").all()
    assert mdata.df.index.names == ["YEAR"]
    assert mdata.df.columns.names == ["VARIABLE", "TODO", "UNITS", "REGION"]
    np.testing.assert_allclose(
        mdata.df["CO2_CONC", "SET", "ppm", "GLOBAL"][1048], 2.80435733e+002)
Exemple #6
0
def test_MAGICCInput_init(test_filename):
    if test_filename is None:
        mdata = MAGICCInput()
        assert mdata.name is None
    else:
        mdata = MAGICCInput(test_filename)
        assert mdata.name is test_filename

    assert mdata.df is None
    assert mdata.metadata == {}
Exemple #7
0
def test_load_magicc7_emis():
    mdata = MAGICCInput()
    mdata.read(MAGICC7_DIR, "HISTSSP_CO2I_EMIS.IN")

    assert (
        mdata.metadata["contact"] ==
        "Zebedee Nicholls, Australian-German Climate and Energy College, University of Melbourne, [email protected]"
    )
    assert (mdata.df.columns.get_level_values("UNITS") == "GtC").all()
    np.testing.assert_allclose(mdata.df["CO2I", "SET", "GtC", "R6REF"][2013],
                               0.6638)
    np.testing.assert_allclose(mdata.df["CO2I", "SET", "GtC", "R6ASIA"][2000],
                               1.6911)
Exemple #8
0
def test_load_magicc6_emis():
    mdata = MAGICCInput()
    assert mdata.is_loaded == False
    mdata.read(MAGICC6_DIR, "HISTRCP_CO2I_EMIS.IN")
    assert mdata.is_loaded == True

    for key in ["units", "firstdatarow", "dattype"]:
        with pytest.raises(KeyError):
            mdata.metadata[key]

    assert isinstance(mdata.metadata["header"], str)
    assert isinstance(mdata.df, pd.DataFrame)
    assert mdata.df.index.names == ["YEAR"]
    assert mdata.df.columns.names == ["VARIABLE", "TODO", "UNITS", "REGION"]
    np.testing.assert_allclose(
        mdata.df["CO2I_EMIS", "SET", "GtC", "R5ASIA"][2000], 1.7682027e+000)
Exemple #9
0
def test_load_prename():
    mdata = MAGICCInput("HISTSSP_CO2I_EMIS.IN")
    mdata.read(MAGICC7_DIR)

    assert (mdata.df.columns.get_level_values("UNITS") == "GtC").all()

    mdata.read(MAGICC6_DIR, "HISTRCP_CO2_CONC.IN")
    assert (mdata.df.columns.get_level_values("UNITS") == "ppm").all()
    assert not (mdata.df.columns.get_level_values("UNITS") == "GtC").any()
Exemple #10
0
def test_CONC_IN_file_read_write_functionally_identical(
        starting_fpath, starting_fname, temp_dir):
    mi_writer = MAGICCInput()
    mi_writer.read(filepath=starting_fpath, filename=starting_fname)

    mi_writer.write(join(temp_dir, starting_fname))

    mi_written = MAGICCInput()
    mi_written.read(filepath=temp_dir, filename=starting_fname)
    nml_written = f90nml.read(join(temp_dir, starting_fname))

    mi_initial = MAGICCInput()
    mi_initial.read(filepath=starting_fpath, filename=starting_fname)
    nml_initial = f90nml.read(join(temp_dir, starting_fname))

    assert mi_written.metadata == mi_initial.metadata
    pd.testing.assert_frame_equal(mi_written.df, mi_initial.df)
    assert sorted(nml_written["thisfile_specifications"]) == sorted(
        nml_initial["thisfile_specifications"])
Exemple #11
0
def test_default_path():
    mdata = MAGICCInput("HISTRCP_CO2I_EMIS.IN")
    mdata.read()
Exemple #12
0
def test_invalid_name():
    mdata = MAGICCInput()
    with pytest.raises(ValueError):
        mdata.read("/tmp", "MYNONEXISTANT.IN")
Exemple #13
0
def test_no_name():
    mdata = MAGICCInput()
    with pytest.raises(AssertionError):
        mdata.read("/tmp")