Exemple #1
0
def test_append_time_domain(test_pd_df, test_df_mixed, other, time, inplace):

    df_year = IamDataFrame(test_pd_df[IAMC_IDX + [2005]],
                           meta=test_df_mixed.meta)
    df_time = IamDataFrame(test_pd_df[IAMC_IDX + [2010]].rename(
        {2010: time}, axis="columns"))

    # append `df_time` to `df_year`
    if other == "time":
        if inplace:
            obs = df_year.copy()
            obs.append(df_time, inplace=True)
        else:
            obs = df_year.append(df_time)
            # assert that original object was not modified
            assert df_year.year == [2005]

    # append `df_year` to `df_time`
    else:
        if inplace:
            obs = df_time.copy()
            obs.append(df_year, inplace=True)
        else:
            obs = df_time.append(df_year)
            # assert that original object was not modified
            assert df_time.time == pd.Index([datetime(2010, 7, 21)])

    assert_iamframe_equal(obs, test_df_mixed)
Exemple #2
0
def test_concat_time_domain(test_pd_df, test_df_mixed, time, reverse):

    df_year = IamDataFrame(test_pd_df[IAMC_IDX + [2005]],
                           meta=test_df_mixed.meta)
    df_time = IamDataFrame(test_pd_df[IAMC_IDX + [2010]].rename(
        {2010: time}, axis="columns"))

    # concat `df_time` to `df_year`
    if reverse:
        obs = concat([df_time, df_year])
    else:
        obs = concat([df_year, df_time])

    # assert that original objects were not modified
    assert df_year.year == [2005]
    assert df_time.time == pd.Index([datetime(2010, 7, 21)])

    assert_iamframe_equal(obs, test_df_mixed)
Exemple #3
0
def test_concat_non_default_index():
    # Test that merging two IamDataFrames with identical, non-standard index dimensions
    # preserves the index.

    df1 = IamDataFrame(
        pd.DataFrame(
            [["model_a", "scenario_a", "region_a", "variable_a", "unit", 1, 1]
             ],
            columns=IAMC_IDX + ["version", 2005],
        ),
        index=META_IDX + ["version"],
    )
    df2 = IamDataFrame(
        pd.DataFrame(
            [["model_a", "scenario_a", "region_a", "variable_a", "unit", 2, 2]
             ],
            columns=IAMC_IDX + ["version", 2005],
        ),
        index=META_IDX + ["version"],
    )
    exp = IamDataFrame(
        pd.DataFrame(
            [
                [
                    "model_a", "scenario_a", "region_a", "variable_a", "unit",
                    1, 1
                ],
                [
                    "model_a", "scenario_a", "region_a", "variable_a", "unit",
                    2, 2
                ],
            ],
            columns=IAMC_IDX + ["version", 2005],
        ),
        index=META_IDX + ["version"],
    )

    assert_iamframe_equal(exp, concat([df1, df2]))
Exemple #4
0
def test_concat_single_item(test_df):
    """Check that calling concat on a single-item list returns identical object"""
    obs = concat([test_df])
    assert_iamframe_equal(obs, test_df)