Exemplo n.º 1
0
def test_joins(sql_join: str, pandas_join: str):
    my_frame = query(
        f"select * from digimon_mon_list {sql_join} join "
        "digimon_move_list on "
        "digimon_mon_list.attribute = digimon_move_list.attribute")
    pandas_frame1 = DIGIMON_MON_LIST
    pandas_frame2 = DIGIMON_MOVE_LIST
    pandas_frame = pandas_frame1.merge(pandas_frame2,
                                       on="Attribute",
                                       how=pandas_join)
    pandas_frame = fix_naming_inconsistencies(pandas_frame)
    tm.assert_frame_equal(pandas_frame, my_frame)
Exemplo n.º 2
0
def test_cross_joins():
    """
    Test right, left, inner, and outer joins
    :return:
    """
    my_frame = query("""select * from digimon_mon_list cross join
            digimon_move_list
           """)
    pandas_frame1 = DIGIMON_MON_LIST
    pandas_frame2 = DIGIMON_MOVE_LIST
    pandas_frame1["__"] = 0
    pandas_frame2["__"] = 0
    pandas_frame = pandas_frame1.merge(pandas_frame2, how="outer", on="__")
    pandas_frame = fix_naming_inconsistencies(pandas_frame)
    tm.assert_frame_equal(pandas_frame, my_frame)
Exemplo n.º 3
0
def test_join_wo_specifying_table(sql_join: str, pandas_join: str):
    """
    Test join where table isn't specified in join
    :return:
    """
    my_frame = query(f"""
        select * from digimon_mon_list {sql_join} join
        digimon_move_list
        on mon_attribute = move_attribute
        """)
    pandas_frame1 = DIGIMON_MON_LIST
    pandas_frame2 = DIGIMON_MOVE_LIST
    pandas_frame = pandas_frame1.merge(
        pandas_frame2,
        left_on="mon_attribute",
        right_on="move_attribute",
        how=pandas_join,
    )
    pandas_frame = fix_naming_inconsistencies(pandas_frame)
    tm.assert_frame_equal(pandas_frame, my_frame)