コード例 #1
0
ファイル: test_type_convert.py プロジェクト: ieaves/tenzing
def pytest_generate_tests(metafunc):
    _test_suite = get_series()
    if metafunc.function.__name__ == "test_relations":
        _series_map = get_convert_map()

        all_relations_tested(_series_map)

        argsvalues = []
        for item in _test_suite:
            for source_type, relation_type, series_list in _series_map:
                if item in relation_type:
                    args = {
                        "id": f"{item.name}: {relation_type} -> {source_type}"
                    }
                    if item.name not in series_list:
                        args["marks"] = pytest.mark.xfail(raises=ValueError)

                    argsvalues.append(
                        pytest.param(source_type, relation_type, item, **args))

        metafunc.parametrize(
            argnames=["source_type", "relation_type", "series"],
            argvalues=argsvalues)
    if metafunc.function.__name__ in [
            "test_consistency",
            "test_side_effects",
            "test_multiple_inference",
    ]:
        argsvalues = []
        for series in _test_suite:
            args = {"id": f"{series.name}"}
            argsvalues.append(pytest.param(series, **args))

        metafunc.parametrize(argnames=["series"], argvalues=argsvalues)
コード例 #2
0
def pytest_generate_tests(metafunc):
    _test_suite = get_series()
    if metafunc.function.__name__ in [
            "test_consistency", "test_traversal_mutex"
    ]:
        argsvalues = []
        for series in _test_suite:
            args = {"id": series.name}
            argsvalues.append(pytest.param(series, **args))

        metafunc.parametrize(argnames=["series"], argvalues=argsvalues)
    if metafunc.function.__name__ == "test_inference":
        argsvalues = []
        inferred_series_type_map = infer_series_type_map()
        for series in _test_suite:
            expected_type = inferred_series_type_map[series.name]
            for test_type in typeset.types:
                args = {
                    "id":
                    "{name} x {type} expected {expected}".format(
                        name=series.name,
                        type=test_type,
                        expected=test_type == expected_type,
                    )
                }
                difference = test_type != expected_type
                argsvalues.append(
                    pytest.param(series, test_type, typeset, difference,
                                 **args))
        metafunc.parametrize(
            argnames=["series", "expected_type", "typeset", "difference"],
            argvalues=argsvalues,
        )
コード例 #3
0
def relations_transform_test():
    convert_map = get_convert_map()
    relation_tests = {
        get_relation(*conversions[0:2]): conversions[2]
        for conversions in convert_map
    }

    series_dict = {s.name: s for s in get_series()}
    performance_list = []
    for relation, names in relation_tests.items():
        test_series = {name: series_dict[name] for name in names}
        performance_list.extend(
            profile_relation_transform(relation, test_series))
    df = pd.DataFrame.from_records(performance_list)
    grouper = "relation"
    df[grouper] = df[grouper].astype(str)
    aggs = ["min", "max"]
    agg_labels = ["worst", "best"]
    summary_cols = ["series", "big O"]
    agg_df = df.groupby(grouper).agg(aggs).reset_index()[[grouper] +
                                                         summary_cols]
    agg_df.columns = ["_".join(col).strip("_") for col in agg_df.columns]
    colrenames = {
        f"{name}_{agg}": f"{rename} {name}"
        for name in summary_cols for agg, rename in zip(aggs, agg_labels)
    }
    agg_df.rename(columns=colrenames, inplace=True)
    df["normed run time"] = df["average run time"] / df[
        "average run time"].min()
    df = df.groupby(grouper)["normed run time"].describe().sort_values("50%")
    df = pd.merge(df, agg_df, on=grouper, how="left")
    return df
コード例 #4
0
def pytest_generate_tests(metafunc):
    _test_suite = get_series()
    if metafunc.function.__name__ in [
            "test_consistency", "test_traversal_mutex"
    ]:
        argsvalues = []
        for series in _test_suite:
            args = {"id": series.name}
            argsvalues.append(pytest.param(series, **args))

        metafunc.parametrize(argnames=["series"], argvalues=argsvalues)
コード例 #5
0
ファイル: test_type_convert.py プロジェクト: hjdddzaa/visions
def pytest_generate_tests(metafunc):
    _test_suite = get_series()
    if metafunc.function.__name__ in [
            "test_consistency",
            "test_side_effects",
            "test_multiple_inference",
    ]:
        argsvalues = []
        for series in _test_suite:
            args = {"id": str(series.name)}
            argsvalues.append(pytest.param(series, **args))

        metafunc.parametrize(argnames=["series"], argvalues=argsvalues)
コード例 #6
0
def pytest_generate_tests(metafunc):
    _test_suite = get_series()
    if metafunc.function.__name__ == "test_contains":
        _series_map = get_contains_map()

        all_series_included(_test_suite, _series_map)

        argsvalues = []
        for item in _test_suite:
            for type, series_list in _series_map.items():
                args = {
                    "id":
                    "{item_name} x {item_type}".format(item_name=item.name,
                                                       item_type=type)
                }

                member = item.name in series_list
                argsvalues.append(pytest.param(item, type, member, **args))

        metafunc.parametrize(argnames=["series", "type", "member"],
                             argvalues=argsvalues)
コード例 #7
0
def pytest_generate_tests(metafunc):
    _test_suite = get_series()
    if metafunc.function.__name__ == "test_contains":
        _series_map = get_contains_map()

        all_series_included(_test_suite, _series_map)

        argsvalues = []
        for item in _test_suite:
            for type, series_list in _series_map.items():
                args = {
                    "id":
                    "{item_name} x {item_type}".format(item_name=item.name,
                                                       item_type=type)
                }
                if item.name not in series_list:
                    args["marks"] = pytest.mark.xfail(raises=AssertionError)

                argsvalues.append(pytest.param(item, type, **args))

        metafunc.parametrize(argnames=["series", "type"], argvalues=argsvalues)
コード例 #8
0
def pytest_generate_tests(metafunc):
    _test_suite = get_series()
    if metafunc.function.__name__ == "test_relations":
        _series_map = get_convert_map()

        all_relations_tested(_series_map)

        argsvalues = []
        for item in _test_suite:
            for source_type, relation_type, series_list in _series_map:
                if item in relation_type:
                    args = {
                        "id":
                        "{name}: {relation_type} -> {source_type}".format(
                            name=item.name,
                            relation_type=relation_type,
                            source_type=source_type,
                        )
                    }
                    member = item.name in series_list
                    argsvalues.append(
                        pytest.param(source_type, relation_type, item, member,
                                     **args))

        metafunc.parametrize(
            argnames=["source_type", "relation_type", "series", "member"],
            argvalues=argsvalues,
        )
    if metafunc.function.__name__ in [
            "test_consistency",
            "test_side_effects",
            "test_multiple_inference",
    ]:
        argsvalues = []
        for series in _test_suite:
            args = {"id": str(series.name)}
            argsvalues.append(pytest.param(series, **args))

        metafunc.parametrize(argnames=["series"], argvalues=argsvalues)
コード例 #9
0
def performance_report(membership=True):
    series_dict = {s.name: s for s in get_series()}
    conv_map = get_contains_map()
    performance_list = []

    for type, series_names in conv_map.items():
        if membership:
            # True: "series in type"
            test_series = {name: series_dict[name] for name in series_names}
        else:
            # False: "series in type"
            test_series = {
                s.name: s
                for s in series_dict.values() if s.name not in series_names
            }

        performance_list.extend(profile_type(type, test_series))

    df = pd.DataFrame.from_records(performance_list)

    df["type"] = df["type"].astype(str)
    aggs = ["min", "max"]
    agg_labels = ["worst", "best"]
    summary_cols = ["series", "big O"]
    agg_df = df.groupby("type").agg(aggs).reset_index()[["type"] +
                                                        summary_cols]
    agg_df.columns = ["_".join(col).strip("_") for col in agg_df.columns]
    colrenames = {
        f"{name}_{agg}": f"{rename} {name}"
        for name in summary_cols for agg, rename in zip(aggs, agg_labels)
    }
    agg_df.rename(columns=colrenames, inplace=True)
    df["normed run time"] = df["average run time"] / df[
        "average run time"].min()
    df = df.groupby("type")["normed run time"].describe().sort_values("50%")
    df = pd.merge(df, agg_df, on="type", how="left")
    return df
コード例 #10
0
ファイル: test_complete_set.py プロジェクト: hjdddzaa/visions
    File,
    Float,
    Generic,
    Geometry,
    Image,
    Integer,
    IPAddress,
    Object,
    Ordinal,
    Path,
    String,
    Time,
    TimeDelta,
)

series = get_series()

typeset = CompleteSet()

contains_map = {
    Integer: {
        "int_series",
        "Int64_int_series",
        "int_range",
        "Int64_int_nan_series",
        "int_series_boolean",
    },
    Count: {"np_uint32"},
    Path:
    {"path_series_linux", "path_series_linux_missing", "path_series_windows"},
    URL: {"url_series", "url_nan_series", "url_none_series"},