def test_div_decorator(small_mock1, small_mock2): gf1 = GraphFrame.from_literal(small_mock1) gf2 = GraphFrame.from_literal(small_mock2) assert len(gf1.graph) == 6 assert len(gf2.graph) == 7 gf3 = gf1 / gf2 assert len(gf3.graph) == 8 assert gf3.dataframe.loc[gf3.dataframe["_missing_node"] == 2].shape[0] == 2 # "R" assert gf3.dataframe.loc[gf3.dataframe["_missing_node"] == 1].shape[0] == 1 # "L" assert gf3.dataframe.loc[gf3.dataframe["_missing_node"] == 0].shape[0] == 5 # "" output = ConsoleRenderer(unicode=True, color=False).render( gf3.graph.roots, gf3.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, invert_colormap=False, ) assert "1.000 C" in output assert "inf B" in output assert u"nan D ▶" in output assert u"10.000 H ◀" in output
def test_tree(tau_profile_dir): """Sanity test a GraphFrame object with known data.""" gf = GraphFrame.from_tau(str(tau_profile_dir)) # check the tree for rank 0 output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "449.000 .TAU application" in output assert "4458.000 MPI_Finalize()" in output assert "218.000 MPI_Bcast()" in output # check the tree for rank 1 output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="", rank=1, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "419.000 .TAU application" in output assert "4894.000 MPI_Finalize()" in output assert "333.000 MPI_Bcast()" in output
def test_tree(calc_pi_hpct_db): gf = GraphFrame.from_hpctoolkit(str(calc_pi_hpct_db)) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, invert_colormap=False, ) assert "0.000 <program root> <unknown file>" in output assert ( "0.000 198:MPIR_Init_thread /tmp/dpkg-mkdeb.gouoc49UG7/src/mvapich/src/build/../src/mpi/init/initthread.c" in output ) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time (inc)", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, invert_colormap=False, ) assert "17989.000 interp.c:0 interp.c" in output assert ( "999238.000 230:psm_dofinalize /tmp/dpkg-mkdeb.gouoc49UG7/src/mvapich/src/build/../src/mpid/ch3/channels/psm/src/psm_exit.c" in output )
def test_tree(timemory_json_data): """Sanity test a GraphFrame object with known data.""" gf = GraphFrame.from_timemory(timemory_json_data) print(gf.tree("sum.wall_clock")) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="sum.wall_clock", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) print(output) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="sum.wall_clock", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) print(output)
def test_tree(lulesh_caliper_json): """Sanity test a GraphFrame object with known data.""" gf = GraphFrame.from_caliper(str(lulesh_caliper_json)) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "121489.000 main" in output assert "663.000 LagrangeElements" in output assert "21493.000 CalcTimeConstraintsForElems" in output output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time (inc)", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "662712.000 EvalEOSForElems" in output assert "2895319.000 LagrangeNodal" in output
def test_tree(hatchet_pyinstrument_json): """Sanity test a GraphFrame object with known data.""" gf = GraphFrame.from_pyinstrument(str(hatchet_pyinstrument_json)) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "0.000 <module> examples.py" in output assert "0.025 read hatchet/readers/caliper_reader.py" in output output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time (inc)", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "0.478 <module> examples.py" in output assert "0.063 from_caliper_json hatchet/graphframe.py" in output
def test_tree(mock_graph_literal): gf = GraphFrame.from_literal(mock_graph_literal) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "0.000 foo" in output assert "10.000 waldo" in output assert "15.000 garply" in output output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time (inc)", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "55.000 waldo" in output assert "15.000 garply" in output
def test_tree(hatchet_cycle_pstats): gf = GraphFrame.from_cprofile(str(hatchet_cycle_pstats)) output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "g pstats_reader_test.py" in output assert "<method 'disable' ...Profiler' objects> ~" in output output = ConsoleRenderer(unicode=True, color=False).render( gf.graph.roots, gf.dataframe, metric_column="time (inc)", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, colormap="RdYlGn", invert_colormap=False, ) assert "f pstats_reader_test.py" in output assert re.match("(.|\n)*recursive(.|\n)*recursive", output)
def test_sub_decorator(small_mock1, small_mock2, small_mock3): gf1 = GraphFrame.from_literal(small_mock1) gf2 = GraphFrame.from_literal(small_mock2) gf3 = GraphFrame.from_literal(small_mock3) assert len(gf1.graph) == 6 assert len(gf2.graph) == 7 gf4 = gf1 - gf2 assert len(gf4.graph) == 8 assert gf4.dataframe.loc[gf4.dataframe["_missing_node"] == 2].shape[0] == 2 # "R" assert gf4.dataframe.loc[gf4.dataframe["_missing_node"] == 1].shape[0] == 1 # "L" assert ( gf4.dataframe.loc[gf4.dataframe["_missing_node"] == 0].shape[0] == 5 ) # "" or same in both output = ConsoleRenderer(unicode=True, color=False).render( gf4.graph.roots, gf4.dataframe, metric_column="time", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, invert_colormap=False, ) assert "0.000 C" in output assert u"nan D ▶" in output assert u"10.000 H ◀" in output gf5 = gf1 - gf3 assert len(gf1.graph) == 6 assert len(gf3.graph) == 4 assert len(gf5.graph) == 6 assert gf5.dataframe.loc[gf5.dataframe["_missing_node"] == 2].shape[0] == 0 # "R" assert gf5.dataframe.loc[gf5.dataframe["_missing_node"] == 1].shape[0] == 2 # "L" assert gf5.dataframe.loc[gf5.dataframe["_missing_node"] == 0].shape[0] == 4 # "" output = ConsoleRenderer(unicode=True, color=False).render( gf5.graph.roots, gf5.dataframe, metric_column="time (inc)", precision=3, name_column="name", expand_name=False, context_column="file", rank=0, thread=0, depth=10000, highlight_name=False, invert_colormap=False, ) assert "0.000 A" in output assert u"5.000 C ◀" in output assert u"55.000 H ◀" in output